mbox series

[0/2] Add IMX296 CMOS image sensor support

Message ID 20191011035613.13598-1-manivannan.sadhasivam@linaro.org
Headers show
Series Add IMX296 CMOS image sensor support | expand

Message

Manivannan Sadhasivam Oct. 11, 2019, 3:56 a.m. UTC
Hello,

This patchset adds support for IMX296 CMOS image sensor from Sony.
Sensor can be programmed through I2C and 4-wire interface but the
current driver only supports I2C interface. The sensor is
capable of outputting frames in CSI2 format (1 Lane). In the case
of sensor resolution, driver only supports 1440x1088 at 30 FPS.

The driver has been validated using Framos IMX296 module interfaced to
96Boards Dragonboard410c.

Thanks,
Mani

Manivannan Sadhasivam (2):
  dt-bindings: media: i2c: Add IMX296 CMOS sensor binding
  media: i2c: Add IMX296 CMOS image sensor driver

 .../devicetree/bindings/media/i2c/imx296.txt  |  55 ++
 MAINTAINERS                                   |   8 +
 drivers/media/i2c/Kconfig                     |  11 +
 drivers/media/i2c/Makefile                    |   1 +
 drivers/media/i2c/imx296.c                    | 733 ++++++++++++++++++
 5 files changed, 808 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/imx296.txt
 create mode 100644 drivers/media/i2c/imx296.c

-- 
2.17.1

Comments

Rob Herring (Arm) Oct. 15, 2019, 10:45 p.m. UTC | #1
On Fri, Oct 11, 2019 at 09:26:12AM +0530, Manivannan Sadhasivam wrote:
> Add devicetree binding for IMX296 CMOS image sensor.

> 

> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

> ---

>  .../devicetree/bindings/media/i2c/imx296.txt  | 55 +++++++++++++++++++

>  1 file changed, 55 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/media/i2c/imx296.txt


You should know by now, use DT schema format please.

> diff --git a/Documentation/devicetree/bindings/media/i2c/imx296.txt b/Documentation/devicetree/bindings/media/i2c/imx296.txt

> new file mode 100644

> index 000000000000..25d3b15162c1

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/media/i2c/imx296.txt

> @@ -0,0 +1,55 @@

> +* Sony IMX296 1/2.8-Inch CMOS Image Sensor

> +

> +The Sony IMX296 is a 1/2.9-Inch active pixel type CMOS Solid-state image

> +sensor with square pixel array and 1.58 M effective pixels. This chip features

> +a global shutter with variable charge-integration time. It is programmable

> +through I2C and 4-wire interfaces. The sensor output is available via CSI-2

> +serial data output (1 Lane).

> +

> +Required Properties:

> +- compatible: Should be "sony,imx296"

> +- reg: I2C bus address of the device

> +- clocks: Reference to the mclk clock.

> +- clock-names: Should be "mclk".

> +- clock-frequency: Frequency of the mclk clock in Hz.

> +- vddo-supply: Interface power supply.

> +- vdda-supply: Analog power supply.

> +- vddd-supply: Digital power supply.

> +

> +Optional Properties:

> +- reset-gpios: Sensor reset GPIO

> +

> +The imx296 device node should contain one 'port' child node with

> +an 'endpoint' subnode. For further reading on port node refer to

> +Documentation/devicetree/bindings/media/video-interfaces.txt.

> +

> +Required Properties on endpoint:

> +- data-lanes: check ../video-interfaces.txt


This should only be required when not using all the lanes on the device.

> +- remote-endpoint: check ../video-interfaces.txt


Don't really need to document this.

> +

> +Example:

> +	&i2c1 {

> +		...

> +		imx296: camera-sensor@1a {

> +			compatible = "sony,imx296";

> +			reg = <0x1a>;

> +

> +			reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;

> +			pinctrl-names = "default";

> +			pinctrl-0 = <&camera_rear_default>;

> +

> +			clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;

> +			clock-names = "mclk";

> +			clock-frequency = <37125000>;

> +

> +			vddo-supply = <&camera_vddo_1v8>;

> +			vdda-supply = <&camera_vdda_3v3>;

> +			vddd-supply = <&camera_vddd_1v2>;

> +

> +			port {

> +				imx296_ep: endpoint {

> +					data-lanes = <1>;

> +					remote-endpoint = <&csiphy0_ep>;

> +				};

> +			};

> +		};

> -- 

> 2.17.1

>