diff mbox

ARM: OMAP2+: LogicPD Torpedo: Add MT9P031 Support

Message ID 1452318612-30872-1-git-send-email-aford173@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Adam Ford Jan. 9, 2016, 5:50 a.m. UTC
The Logic PD Torpedo standard kits come with a SOM populated to us an
8-bit parallel camera interface.  This patch pin muxes the omap3-isp
pins, sets the MT9P031 clicks, and configures the i2c2 bus to communicate
with the mt9p031 on address 0x48.

I have not done a lot of testing, but when modprobing
mt9p031, then omap3-isp, the board responds with
MT9P031 detected at address 0x48.

Signed-off-by: Adam Ford <aford173@gmail.com>
---
 arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 53 +++++++++++++++++++++++
 1 file changed, 53 insertions(+)

Comments

Adam Ford Feb. 4, 2016, 11:57 a.m. UTC | #1
Gentle nudge.  I haven't seen this or any of my other patches make it
into linux-next yet.  I was hoping we could get them all in, so I can
start testing some other features of linux-next with some of these
patches.

Thanks,

adam

On Fri, Jan 8, 2016 at 11:50 PM, Adam Ford <aford173@gmail.com> wrote:
> The Logic PD Torpedo standard kits come with a SOM populated to us an
> 8-bit parallel camera interface.  This patch pin muxes the omap3-isp
> pins, sets the MT9P031 clicks, and configures the i2c2 bus to communicate
> with the mt9p031 on address 0x48.
>
> I have not done a lot of testing, but when modprobing
> mt9p031, then omap3-isp, the board responds with
> MT9P031 detected at address 0x48.
>
> Signed-off-by: Adam Ford <aford173@gmail.com>
> ---
>  arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 53 +++++++++++++++++++++++
>  1 file changed, 53 insertions(+)
>
> diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
> index fb13f18..60831b8 100644
> --- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
> +++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
> @@ -217,6 +217,24 @@
>                 >;
>         };
>
> +       isp_pins: pinmux_isp_pins {
> +               pinctrl-single,pins = <
> +                       OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT | MUX_MODE0)   /* cam_hs.cam_hs */
> +                       OMAP3_CORE1_IOPAD(0x210e, PIN_INPUT | MUX_MODE0)   /* cam_vs.cam_vs */
> +                       OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT | MUX_MODE0)   /* cam_xclka.cam_xclka */
> +                       OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT | MUX_MODE0)   /* cam_pclk.cam_pclk */
> +
> +                       OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT | MUX_MODE0)   /* cam_d0.cam_d0 */
> +                       OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT | MUX_MODE0)   /* cam_d1.cam_d1 */
> +                       OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT | MUX_MODE0)   /* cam_d2.cam_d2 */
> +                       OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE0)   /* cam_d3.cam_d3 */
> +                       OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE0)   /* cam_d4.cam_d4 */
> +                       OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE0)   /* cam_d5.cam_d5 */
> +                       OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0)   /* cam_d6.cam_d6 */
> +                       OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0)   /* cam_d7.cam_d7 */
> +               >;
> +       };
> +
>         dss_dpi_pins1: pinmux_dss_dpi_pins1 {
>                 pinctrl-single,pins = <
>                         OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
> @@ -268,6 +286,24 @@
>         };
>  };
>
> +&i2c2 {
> +       mt9p031@48 {
> +               compatible = "aptina,mt9p031";
> +               reg = <0x48>;
> +               clocks = <&isp 0>;
> +               vaa-supply = <&vaux4>;
> +               vdd-supply = <&vaux4>;
> +               vdd_io-supply = <&vaux4>;
> +               port {
> +                       mt9p031_out: endpoint {
> +                               input-clock-frequency = <24000000>;
> +                               pixel-clock-frequency = <72000000>;
> +                               remote-endpoint = <&ccdc_ep>;
> +                       };
> +               };
> +       };
> +};
> +
>  &i2c3 {
>         touchscreen: tsc2004@48 {
>                 compatible = "ti,tsc2004";
> @@ -289,6 +325,23 @@
>         };
>  };
>
> +&isp {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&isp_pins>;
> +       ports {
> +               port@0 {
> +                       reg = <0>;
> +                       ccdc_ep: endpoint {
> +                               remote-endpoint = <&mt9p031_out>;
> +                               bus-width = <8>;
> +                               hsync-active = <1>;
> +                               vsync-active = <1>;
> +                               pclk-sample = <0>;
> +                       };
> +               };
> +       };
> +};
> +
>  &uart1 {
>         interrupts-extended = <&intc 72 &omap3_pmx_core OMAP3_UART1_RX>;
>  };
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Feb. 8, 2016, 8:46 p.m. UTC | #2
* Adam Ford <aford173@gmail.com> [160204 03:58]:
> Gentle nudge.  I haven't seen this or any of my other patches make it
> into linux-next yet.  I was hoping we could get them all in, so I can
> start testing some other features of linux-next with some of these
> patches.

Sorry I've been stuck again dealing with fixes.. Hoping to be
able to apply patches for new stuff again within next few days.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Feb. 12, 2016, 9:47 p.m. UTC | #3
* Tony Lindgren <tony@atomide.com> [160208 12:47]:
> * Adam Ford <aford173@gmail.com> [160204 03:58]:
> > Gentle nudge.  I haven't seen this or any of my other patches make it
> > into linux-next yet.  I was hoping we could get them all in, so I can
> > start testing some other features of linux-next with some of these
> > patches.
> 
> Sorry I've been stuck again dealing with fixes.. Hoping to be
> able to apply patches for new stuff again within next few days.

Applying into omap-for-v4.6/dt finally thanks.

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
index fb13f18..60831b8 100644
--- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
+++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
@@ -217,6 +217,24 @@ 
 		>;
 	};
 
+	isp_pins: pinmux_isp_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT | MUX_MODE0)   /* cam_hs.cam_hs */
+			OMAP3_CORE1_IOPAD(0x210e, PIN_INPUT | MUX_MODE0)   /* cam_vs.cam_vs */
+			OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT | MUX_MODE0)   /* cam_xclka.cam_xclka */
+			OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT | MUX_MODE0)   /* cam_pclk.cam_pclk */
+
+			OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT | MUX_MODE0)   /* cam_d0.cam_d0 */
+			OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT | MUX_MODE0)   /* cam_d1.cam_d1 */
+			OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT | MUX_MODE0)   /* cam_d2.cam_d2 */
+			OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE0)   /* cam_d3.cam_d3 */
+			OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE0)   /* cam_d4.cam_d4 */
+			OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE0)   /* cam_d5.cam_d5 */
+			OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0)   /* cam_d6.cam_d6 */
+			OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0)   /* cam_d7.cam_d7 */
+		>;
+	};
+
 	dss_dpi_pins1: pinmux_dss_dpi_pins1 {
 		pinctrl-single,pins = <
 			OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
@@ -268,6 +286,24 @@ 
 	};
 };
 
+&i2c2 {
+	mt9p031@48 {
+		compatible = "aptina,mt9p031";
+		reg = <0x48>;
+		clocks = <&isp 0>;
+		vaa-supply = <&vaux4>;
+		vdd-supply = <&vaux4>;
+		vdd_io-supply = <&vaux4>;
+		port {
+			mt9p031_out: endpoint {
+				input-clock-frequency = <24000000>;
+				pixel-clock-frequency = <72000000>;
+				remote-endpoint = <&ccdc_ep>;
+			};
+		};
+	};
+};
+
 &i2c3 {
 	touchscreen: tsc2004@48 {
 		compatible = "ti,tsc2004";
@@ -289,6 +325,23 @@ 
 	};
 };
 
+&isp {
+	pinctrl-names = "default";
+	pinctrl-0 = <&isp_pins>;
+	ports {
+		port@0 {
+			reg = <0>;
+			ccdc_ep: endpoint {
+				remote-endpoint = <&mt9p031_out>;
+				bus-width = <8>;
+				hsync-active = <1>;
+				vsync-active = <1>;
+				pclk-sample = <0>;
+			};
+		};
+	};
+};
+
 &uart1 {
 	interrupts-extended = <&intc 72 &omap3_pmx_core OMAP3_UART1_RX>;
 };