Add IMX219 CMOS image sensor support
From: | Andrey Konovalov <andrey.konovalov-AT-linaro.org> | |
To: | mchehab-AT-kernel.org, robh+dt-AT-kernel.org | |
Subject: | [PATCH v2 0/2] Add IMX219 CMOS image sensor support | |
Date: | Fri, 27 Dec 2019 15:21:12 +0300 | |
Message-ID: | <20191227122114.23075-1-andrey.konovalov@linaro.org> | |
Cc: | linux-media-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, peter.griffin-AT-linaro.org, ezequiel-AT-collabora.com, Andrey Konovalov <andrey.konovalov-AT-linaro.org> | |
Archive-link: | Article |
This patchset adds support for IMX219 CMOS image sensor from Sony. Sony IMX219 is an 8MPix, 1/4.0-inch CMOS active pixel digital image sensor with an active array size of 3280H x 2464V. It is programmable through I2C interface. Image data are sent through MIPI CSI-2, which can be configured as either 2 or 4 data lanes, but this driver currently only supports 2 lanes. The currently supported resolutions are 3280x2464 @ 15fps, 1920x1080 @ 30fps (cropped FOV), and 1640x1232 (2x2 binned) @ 30fps. The driver has been tested with Raspberry Pi Camera Module v2 connected to Raspberry Pi Zero W. Changes since v1 [1]: dt-bindings: - license updated to (GPL-2.0-only OR BSD-2-Clause) - non-standard 'camera-clk' property has got type, description, properties, and required - 'clock-lanes', 'data-lanes', and 'clock-noncontinuous' moved to the correct node, the syntax has been fixed - 'port' added to required properties - minor corrections to some other property descriptions imx219 sensor driver: - fixed width variables replaced with '[unsigned] int' where appropriate - excessive comments dropped - imx219_get_format_code() returns 'codes[...]', and doesn't use an extra internal variable any more - initializing 'ret' to 0 in the beginning of imx219_set_ctrl() dropped - uses IMX219_XCLK_FREQ macro instead of hardcoded number - IMX219_REG_ORIENTATION is dropped from the mode_*x*_regs[] tables as it is written by the control handler - imx219_stop_streaming() return value changed to void - calling imx219_power_on() moved from imx219_identify_module() to imx219_probe(), and calling imx219_power_off() in the probe() error path has been added. This simplifies imx219_identify_module(), and ensures that the sensor is powered off after probe() and until streaming is started - comment referring to "xclr" pin changed to call it "enable pin" vs "power down pin" to better match the "OUT_HIGH" pin configuration Thanks, Andrey [1] https://patchwork.kernel.org/cover/11284783/ Andrey Konovalov (1): dt-bindings: media: i2c: Add IMX219 CMOS sensor binding Dave Stevenson (1): media: i2c: Add driver for Sony IMX219 sensor .../devicetree/bindings/media/i2c/imx219.yaml | 134 ++ MAINTAINERS | 8 + drivers/media/i2c/Kconfig | 12 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/imx219.c | 1240 +++++++++++++++++ 5 files changed, 1395 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/i2c/imx219.yaml create mode 100644 drivers/media/i2c/imx219.c -- 2.17.1