This series adds support for the OV5648 image sensor, as a V4L2 subdev driver. Changes since v6: - Removed unused ret declaration that caused a build warning. Changes since v5: - Removed extra tailing ret checks; - Fixed variables names in macros using container_of; - Set ctrls flags after handler error check; - Removed useless ret initializations and gotos; - Removed call to v4l2_device_unregister_subdev; Changes since v4: - Squashed tailing function calls in return; - Added Kconfig depend on PM since it's not optional; - Reordered runtime PM in init; - Reworked runtime PM order and added ctrls handler free in exit. Changes since v3: - Removed mipi_clk_rate variable that skipped through. Changes since v2: - Added link-frequencies endpoint property support; - Used NULL ctrl ops for pixel rate and link freq; - Extra cosmetic changes. Changes since v1: - Used runtime pm; - Used assigned-clock-rate; - Removed clock name; - Returned closest size in set_fmt; - Removed unneeded references to v4l2 controls; - Removed i2c device table; - Dual-licensed bindings; - Used SPDX tags. Paul Kocialkowski (2): dt-bindings: media: i2c: Add OV5648 bindings documentation media: i2c: Add support for the OV5648 image sensor .../bindings/media/i2c/ovti,ov5648.yaml | 115 + drivers/media/i2c/Kconfig | 13 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/ov5648.c | 2623 +++++++++++++++++ 4 files changed, 2752 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5648.yaml create mode 100644 drivers/media/i2c/ov5648.c -- 2.29.2