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

From: Mikhail Rudenko
Date: Sat Oct 22 2022 - 12:21:07 EST


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