Commit e2c16156 authored by Steve Longerbeam's avatar Steve Longerbeam Committed by Shawn Guo
Browse files

ARM: dts: imx53-smd: Add OV5642 video capture support



Add video capture support from the OV5642 to IPU CSI0 on
the i.MX53 SMD.

Signed-off-by: default avatarSteve Longerbeam <slongerbeam@gmail.com>
[fabio: remove unnecessary 'regulator-always-on' from camera regulators]
Signed-off-by: default avatarFabio Estevam <festevam@gmail.com>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent e5ad3230
Loading
Loading
Loading
Loading
+73 −0
Original line number Diff line number Diff line
@@ -185,6 +185,31 @@
			>;
		};

		pinctrl_ipu_csi0: ipucsi0grp {
			fsl,pins = <
				MX53_PAD_CSI0_DAT12__IPU_CSI0_D_12    0x1c4
				MX53_PAD_CSI0_DAT13__IPU_CSI0_D_13    0x1c4
				MX53_PAD_CSI0_DAT14__IPU_CSI0_D_14    0x1c4
				MX53_PAD_CSI0_DAT15__IPU_CSI0_D_15    0x1c4
				MX53_PAD_CSI0_DAT16__IPU_CSI0_D_16    0x1c4
				MX53_PAD_CSI0_DAT17__IPU_CSI0_D_17    0x1c4
				MX53_PAD_CSI0_DAT18__IPU_CSI0_D_18    0x1c4
				MX53_PAD_CSI0_DAT19__IPU_CSI0_D_19    0x1c4
				MX53_PAD_CSI0_PIXCLK__IPU_CSI0_PIXCLK 0x1e4
				MX53_PAD_CSI0_VSYNC__IPU_CSI0_VSYNC   0x1e4
				MX53_PAD_CSI0_MCLK__IPU_CSI0_HSYNC    0x1e4
				MX53_PAD_CSI0_DATA_EN__IPU_CSI0_DATA_EN 0x1e4
			>;
		};

		pinctrl_ov5642: ov5642grp {
			fsl,pins = <
				MX53_PAD_NANDF_WP_B__GPIO6_9   0x1e4
				MX53_PAD_NANDF_RB0__GPIO6_10   0x1e4
				MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK 0x1c4
			>;
		};

		pinctrl_uart1: uart1grp {
			fsl,pins = <
				MX53_PAD_CSI0_DAT10__UART1_TXD_MUX	0x1e4
@@ -256,11 +281,47 @@
	camera: ov5642@3c {
		compatible = "ovti,ov5642";
		reg = <0x3c>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ov5642>;
		assigned-clocks = <&clks IMX5_CLK_SSI_EXT1_SEL>,
				  <&clks IMX5_CLK_SSI_EXT1_COM_SEL>;
		assigned-clock-parents = <&clks IMX5_CLK_PLL2_SW>,
					 <&clks IMX5_CLK_SSI_EXT1_PODF>;
		assigned-clock-rates = <0>, <24000000>;
		clocks = <&clks IMX5_CLK_SSI_EXT1_GATE>;
		clock-names = "xclk";
		DVDD-supply = <&ldo9_reg>;
		AVDD-supply = <&ldo7_reg>;
		reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>;
		powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_HIGH>;

		port {
			ov5642_to_ipu_csi0: endpoint {
				remote-endpoint = <&ipu_csi0_from_parallel_sensor>;
				bus-width = <8>;
				hsync-active = <1>;
				vsync-active = <1>;
			};
		};
	};

	pmic: dialog@48 {
		compatible = "dlg,da9053", "dlg,da9052";
		reg = <0x48>;
		interrupt-parent = <&gpio7>;
		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;

		regulators {
			ldo7_reg: ldo7 {
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3600000>;
			};

			ldo9_reg: ldo9 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3650000>;
			};
		};
	};
};

@@ -271,3 +332,15 @@
	phy-reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
	status = "okay";
};

&ipu_csi0_from_parallel_sensor {
	remote-endpoint = <&ov5642_to_ipu_csi0>;
	data-shift = <12>; /* Lines 19:12 used */
	hsync-active = <1>;
	vsync-active = <1>;
};

&ipu_csi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ipu_csi0>;
};