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