[v4,0/2] Add Omnivision OV4689 image sensor driver

Message ID 20221022162042.14113-1-mike.rudenko@gmail.com
Headers
Series Add Omnivision OV4689 image sensor driver |

Message

Mikhail Rudenko Oct. 22, 2022, 4:20 p.m. UTC
  Hi,

this is the fourth revision of the Omnivision OV4689 driver. In this
revision I have addressed most of the suggestions from the reviews of
v3. See detailed changelog below.

Changes in v4:
  - driver: drop OF from Kconfig (Sakari)
  - driver: remove ifdef CONFIG_ (Sakari)
  - driver: unsigned int in ov4689_map_gain in ov4689_map_gain (Sakari)
  - driver: remove num_ranges and use ARRAY_SIZE instead (Sakari)
  - driver: make ov4689_remove return void
  - driver: move selection bounds to struct ov4689_mode (Sakari)
  - driver: remove braces in if (IS_ERR(ov4689->xvclk)) (Sakari)
  - driver: fix ov4689_cal_delay (Sakari)
  - driver: remove MODULE_DEVICE_TABLE(i2c, ov4689_id) (Sakari)
  - driver: update copyright (Jacopo)
  - driver: drop device.h include (Jacopo)
  - driver: h_blank_dev -> h_blank_def (Jacopo)
  - driver: change -EPROBE_DEFER to -EINVAL if fwnode_graph_get_next_endpoint fails (Jacopo)
  - driver: dev_err_probe() for devm_regulator_bulk_get() result (Christophe)
  - driver: reimplement error handling in ov4689_check_sensor_id (Christophe)
  - driver: fix ./scripts/checkpatch.pl --strict --max-line-length=80 warnings (Sakari)
  - bindings: collect Krzysztof's R-b


Changes in v3:
  - set 1st patch title to: "media: dt-bindings: i2c: document OV4689"
  - schema: drop clock-names
  - driver: use dem_clk_get(NULL)
  - schema: remove maxItems from powerdown-gpios
  - schema: make gpios optional
  - driver: use devm_gpiod_get_optional()
  - driver: remove __ prefixes from function names
  - driver: switch to .probe_new
  - driver: remove of_match_ptr
  - driver: add and use enum ov4689_mode_id
  - driver: make xvclk optional & try to get frequency from ACPI
  - driver: drop #if defined(CONFIG_MEDIA_CONTROLLER) in remove
  - driver: use ARRAY_SIZE(ov4689_supply_names) instead of define
  - driver: remove unused controls from struct ov4689
  - driver: use 504000000 instead of OV4689_LINK_FREQ_500MHZ
  - driver: compare link frequencies with menu array clock-frequency
  - driver: replace |= with ret = ret ?:
  - driver: merge power on/off into pm callbacks
  - driver: use actual clock rate in ov4689_cal_delay
  - driver: set up controls after writing register table in s_stream()
  - driver: remap sensor gain to linear and monotonous logical gain
  - driver: set pixel_rate to 480000000
  - driver: set HTS so that we have 30.00 fps and fix HBLANK reporting

Changes in v2:
  - bindings: reword descriptions
  - bindings: move clock description to clocks property
  - bindings: add data-lanes and link-frequencies properties to port
  - driver: validate media bus configuration when probing


Mikhail Rudenko (2):
  media: dt-bindings: i2c: document OV4689
  media: i2c: add support for OV4689

 .../bindings/media/i2c/ovti,ov4689.yaml       |  134 +++
 MAINTAINERS                                   |    8 +
 drivers/media/i2c/Kconfig                     |   13 +
 drivers/media/i2c/Makefile                    |    1 +
 drivers/media/i2c/ov4689.c                    | 1026 +++++++++++++++++
 5 files changed, 1182 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov4689.yaml
 create mode 100644 drivers/media/i2c/ov4689.c

--
2.38.1