| * Freescale V4L2 Capture for i.MX6DQ/i.MX6SDL |
| |
| Required board properties for IPUv3 capture: |
| - clocks: should include the clock provided by i.MX6 to sensor |
| - clock-names: sensor clock's name should be "ipux_csiy" |
| x should be 1 or 2 for i.MX6DQ; should be 1 for i.MX6SDL |
| y is 0 or 1 for i.MX6DQ/i.MX6SDL |
| Note: other detailed information for IPUv3, please refer to |
| Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt |
| |
| Required properties for v4l2_capture |
| - compatible: should be "fsl,imx6q-v4l2-capture" |
| - ipu_id: ipu id for v4l2 capture device |
| should be 0 or 1 for i.MX6DQ; should be 0 for i.MX6SDL |
| - csi_id: csi id for v4l2 capture device |
| should be 0 or 1 for i.MX6DQ/i.MX6SDL |
| - mclk_source: should be 0 or 1. two mclk sources at most now |
| - status: should be set to "okay" to enable this device |
| |
| Required properties for sensor |
| - compatible: "<vendor>,<sensor>" |
| please check the supported sensor in the Supported Sensor fields. |
| - reg: sensor I2C slave address |
| - pinctrl-names: should be "default" for parallel sensor |
| - pinctrl-0: should depend on the connection between sensor and i.MX |
| connection between sensor and i.MX could be MIPI-CSI2 or legacy parallel |
| - clocks: should be the clock source provided to sensor. |
| - clock-names: should be "csi_mclk" |
| - DOVDD-supply: set according to the board. |
| - AVDD-supply: set according to the board. |
| - DVDD-supply: set according to the board. |
| - pwn-gpios: set according to the board. |
| - rst-gpios: set according to the board. |
| - csi_id: csi id for v4l2 capture device |
| should be 0 or 1 for i.MX6DQ/i.MX6SDL. |
| - mclk: should the value of mclk clock send out the sensor. unit is Hz. |
| - mclk_source: should be 0 or 1 and should be the same as the setting in |
| v4l2_capture. |
| - cvbs: 1 for CVBS input, 0 YPbPr input. This property is only needed for |
| adv7180 tv decoder. |
| |
| Supported Sensor |
| - ov5640 |
| - ov5642 |
| - ov5640_mipi |
| - adv7180 |
| |
| |
| Example for IPUv3 including capture settings on imx6q-sabresd.dts: |
| ipu1: ipu@02400000 { /* IPU1 */ |
| compatible = "fsl,imx6q-ipuv3"; |
| reg = <0x02400000 0x400000>; |
| interrupts = <0 5 0x04>, < 0 6 0x04>; |
| clocks = <&clks 130>, <&clks 131>, <&clks 132>, <&clks 39>, <&clks 40>, <&clks 169>; |
| clock-names = "ipu1", "ipu1_di0", "ipu1_di1", "ipu1_di0_sel", "ipu1_di1_sel", "ipu1_csi0"; |
| status = "disabled"; |
| }; |
| |
| Examples for v4l2_capture: |
| v4l2_cap { |
| compatible = "fsl,imx6q-v4l2-capture"; |
| ipu_id = <0>; |
| csi_id = <0>; |
| mclk_source = <0>; |
| status = "okay"; |
| }; |
| |
| Examples for sensors: |
| ov5642: ov5642@3c { |
| compatible = "ovti,ov5642"; |
| reg = <0x3c>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_ipu1_2>; |
| clocks = <&clks 201>; |
| clock-names = "csi_mclk"; |
| DOVDD-supply = <&vgen4_reg>; /* 1.8v */ |
| AVDD-supply = <&vgen3_reg>; /* 2.8v, on rev C board is VGEN3 */ |
| DVDD-supply = <&vgen2_reg>; /* 1.5v*/ |
| pwn-gpios = <&gpio1 16 1>; /* active low: SD1_DAT0 */ |
| rst-gpios = <&gpio1 17 0>; /* active high: SD1_DAT1 */ |
| csi_id = <0>; |
| mclk = <24000000>; |
| mclk_source = <0>; |
| }; |
| |
| adv7180: adv7180@21 { |
| compatible = "adv,adv7180"; |
| reg = <0x21>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_ipu1_3>; |
| clocks = <&clks 201>; |
| clock-names = "csi_mclk"; |
| DOVDD-supply = <®_3p3v>; /* 3.3v, enabled via 2.8 VGEN6 */ |
| AVDD-supply = <®_3p3v>; /* 1.8v */ |
| DVDD-supply = <®_3p3v>; /* 1.8v */ |
| PVDD-supply = <®_3p3v>; /* 1.8v */ |
| pwn-gpios = <&max7310_b 2 0>; |
| csi_id = <0>; |
| mclk = <24000000>; |
| mclk_source = <0>; |
| cvbs = <1>; |
| }; |