All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support
@ 2019-07-22 13:36 Fabio Estevam
  2019-07-22 13:36 ` [PATCH 2/2] ARM: imx_v6_v7_defconfig: Select the OV5645 camera driver Fabio Estevam
  2019-07-22 14:14 ` [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support Ezequiel Garcia
  0 siblings, 2 replies; 4+ messages in thread
From: Fabio Estevam @ 2019-07-22 13:36 UTC (permalink / raw)
  To: shawnguo; +Cc: Fabio Estevam, ezequiel, linux-arm-kernel

From: Ezequiel Garcia <ezequiel@collabora.com>

imx6qdl-wandboard can be connected to a OV5645 camera via
MIPI CSI port. Add support for it.

PAD_GPIO_6 has been originally used for the Ethernet FEC
ERR006687 workaround, but it needs to be used to provide the
camera sensor clock, so adjust it accordingly.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
 arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 73 ++++++++++++++++++++++--
 arch/arm64/boot/dts/freescale/Makefile   |  1 +
 2 files changed, 70 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
index 50d9a989e06a..2cfb4112a467 100644
--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
@@ -33,6 +33,30 @@
 		spdif-out;
 	};
 
+	reg_1p5v: regulator-1p5v {
+		compatible = "regulator-fixed";
+		regulator-name = "1P5V";
+		regulator-min-microvolt = <1500000>;
+		regulator-max-microvolt = <1500000>;
+		regulator-always-on;
+	};
+
+	reg_1p8v: regulator-1p8v {
+		compatible = "regulator-fixed";
+		regulator-name = "1P8V";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
+	};
+
+	reg_2p8v: regulator-2p8v {
+		compatible = "regulator-fixed";
+		regulator-name = "2P8V";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		regulator-always-on;
+	};
+
 	reg_2p5v: regulator-2p5v {
 		compatible = "regulator-fixed";
 		regulator-name = "2P5V";
@@ -94,6 +118,29 @@
 		VDDIO-supply = <&reg_3p3v>;
 		lrclk-strength = <3>;
 	};
+
+	camera@3c {
+		compatible = "ovti,ov5645";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ov5645>;
+		reg = <0x3c>;
+		clocks = <&clks IMX6QDL_CLK_CKO2>;
+		clock-names = "xclk";
+		clock-frequency = <24000000>;
+		vdddo-supply = <&reg_1p8v>;
+		vdda-supply = <&reg_2p8v>;
+		vddd-supply = <&reg_1p5v>;
+		enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
+
+		port {
+			ov5645_to_mipi_csi2: endpoint {
+				remote-endpoint = <&mipi_csi2_in>;
+				clock-lanes = <0>;
+				data-lanes = <1 2>;
+			};
+		};
+	};
 };
 
 &iomuxc {
@@ -128,7 +175,6 @@
 				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
 				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
 				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
-				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
 			>;
 		};
 
@@ -152,6 +198,14 @@
 			>;
 		};
 
+		pinctrl_ov5645: ov5645grp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_3__CCM_CLKO2		0x000b0
+				MX6QDL_PAD_GPIO_6__GPIO1_IO06		0x1b0b0
+				MX6QDL_PAD_KEY_COL4__GPIO4_IO14		0x1b0b0
+			>;
+		};
+
 		pinctrl_spdif: spdifgrp {
 			fsl,pins = <
 				MX6QDL_PAD_ENET_RXD0__SPDIF_OUT		0x1b0b0
@@ -226,12 +280,23 @@
 	pinctrl-0 = <&pinctrl_enet>;
 	phy-mode = "rgmii-id";
 	phy-reset-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
-	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
-			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
-	fsl,err006687-workaround-present;
 	status = "okay";
 };
 
+&mipi_csi {
+	status = "okay";
+
+	port@0 {
+		reg = <0>;
+
+		mipi_csi2_in: endpoint {
+			remote-endpoint = <&ov5645_to_mipi_csi2>;
+			clock-lanes = <0>;
+			data-lanes = <1 2>;
+		};
+	};
+};
+
 &spdif {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_spdif>;
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index c043aca66572..99627a499a73 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -23,6 +23,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-devkit.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mq-pico-pi.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-zii-ultra-rmb3.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-zii-ultra-zest.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qxp-mek.dtb
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] ARM: imx_v6_v7_defconfig: Select the OV5645 camera driver
  2019-07-22 13:36 [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support Fabio Estevam
@ 2019-07-22 13:36 ` Fabio Estevam
  2019-07-22 14:14 ` [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support Ezequiel Garcia
  1 sibling, 0 replies; 4+ messages in thread
From: Fabio Estevam @ 2019-07-22 13:36 UTC (permalink / raw)
  To: shawnguo; +Cc: Fabio Estevam, ezequiel, linux-arm-kernel

OV5645 camera sensor can be used on several i.MX boards, such as
imx6qdl-wandboard, imx7d-pico, imx6ul-pico, etc.

Select the OV5645 driver by default.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
 arch/arm/configs/imx_v6_v7_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
index a53b29251ed4..bd2e2f5d1c3a 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
@@ -272,6 +272,7 @@ CONFIG_VIDEO_IMX_PXP=y
 CONFIG_VIDEO_ADV7180=m
 CONFIG_VIDEO_OV2680=m
 CONFIG_VIDEO_OV5640=m
+CONFIG_VIDEO_OV5645=m
 CONFIG_IMX_IPUV3_CORE=y
 CONFIG_DRM=y
 CONFIG_DRM_PANEL_LVDS=y
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support
  2019-07-22 13:36 [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support Fabio Estevam
  2019-07-22 13:36 ` [PATCH 2/2] ARM: imx_v6_v7_defconfig: Select the OV5645 camera driver Fabio Estevam
@ 2019-07-22 14:14 ` Ezequiel Garcia
  2019-07-22 14:15   ` Fabio Estevam
  1 sibling, 1 reply; 4+ messages in thread
From: Ezequiel Garcia @ 2019-07-22 14:14 UTC (permalink / raw)
  To: Fabio Estevam, shawnguo; +Cc: linux-arm-kernel

On Mon, 2019-07-22 at 10:36 -0300, Fabio Estevam wrote:
> From: Ezequiel Garcia <ezequiel@collabora.com>
> 
> imx6qdl-wandboard can be connected to a OV5645 camera via
> MIPI CSI port. Add support for it.
> 
> PAD_GPIO_6 has been originally used for the Ethernet FEC
> ERR006687 workaround, but it needs to be used to provide the
> camera sensor clock, so adjust it accordingly.
> 
> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> ---
>  arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 73 ++++++++++++++++++++++--
>  arch/arm64/boot/dts/freescale/Makefile   |  1 +
>  2 files changed, 70 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
> index 50d9a989e06a..2cfb4112a467 100644
> --- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
> @@ -33,6 +33,30 @@
>  		spdif-out;
>  	};
>  
> +	reg_1p5v: regulator-1p5v {
> +		compatible = "regulator-fixed";
> +		regulator-name = "1P5V";
> +		regulator-min-microvolt = <1500000>;
> +		regulator-max-microvolt = <1500000>;
> +		regulator-always-on;
> +	};
> +
> +	reg_1p8v: regulator-1p8v {
> +		compatible = "regulator-fixed";
> +		regulator-name = "1P8V";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-always-on;
> +	};
> +
> +	reg_2p8v: regulator-2p8v {
> +		compatible = "regulator-fixed";
> +		regulator-name = "2P8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		regulator-always-on;
> +	};
> +
>  	reg_2p5v: regulator-2p5v {
>  		compatible = "regulator-fixed";
>  		regulator-name = "2P5V";
> @@ -94,6 +118,29 @@
>  		VDDIO-supply = <&reg_3p3v>;
>  		lrclk-strength = <3>;
>  	};
> +
> +	camera@3c {
> +		compatible = "ovti,ov5645";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_ov5645>;
> +		reg = <0x3c>;
> +		clocks = <&clks IMX6QDL_CLK_CKO2>;
> +		clock-names = "xclk";
> +		clock-frequency = <24000000>;
> +		vdddo-supply = <&reg_1p8v>;
> +		vdda-supply = <&reg_2p8v>;
> +		vddd-supply = <&reg_1p5v>;
> +		enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
> +
> +		port {
> +			ov5645_to_mipi_csi2: endpoint {
> +				remote-endpoint = <&mipi_csi2_in>;
> +				clock-lanes = <0>;
> +				data-lanes = <1 2>;
> +			};
> +		};
> +	};
>  };
>  
>  &iomuxc {
> @@ -128,7 +175,6 @@
>  				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
>  				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
>  				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
> -				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
>  			>;
>  		};
>  
> @@ -152,6 +198,14 @@
>  			>;
>  		};
>  
> +		pinctrl_ov5645: ov5645grp {
> +			fsl,pins = <
> +				MX6QDL_PAD_GPIO_3__CCM_CLKO2		0x000b0
> +				MX6QDL_PAD_GPIO_6__GPIO1_IO06		0x1b0b0
> +				MX6QDL_PAD_KEY_COL4__GPIO4_IO14		0x1b0b0
> +			>;
> +		};
> +
>  		pinctrl_spdif: spdifgrp {
>  			fsl,pins = <
>  				MX6QDL_PAD_ENET_RXD0__SPDIF_OUT		0x1b0b0
> @@ -226,12 +280,23 @@
>  	pinctrl-0 = <&pinctrl_enet>;
>  	phy-mode = "rgmii-id";
>  	phy-reset-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
> -	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
> -			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
> -	fsl,err006687-workaround-present;
>  	status = "okay";
>  };
>  
> +&mipi_csi {
> +	status = "okay";
> +
> +	port@0 {
> +		reg = <0>;
> +
> +		mipi_csi2_in: endpoint {
> +			remote-endpoint = <&ov5645_to_mipi_csi2>;
> +			clock-lanes = <0>;
> +			data-lanes = <1 2>;
> +		};
> +	};
> +};
> +
>  &spdif {
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&pinctrl_spdif>;
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index c043aca66572..99627a499a73 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -23,6 +23,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-devkit.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mq-pico-pi.dtb

Ooops, some unrelated imx8 managed to get here :-)

Thanks for submitting the patch!
Eze


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support
  2019-07-22 14:14 ` [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support Ezequiel Garcia
@ 2019-07-22 14:15   ` Fabio Estevam
  0 siblings, 0 replies; 4+ messages in thread
From: Fabio Estevam @ 2019-07-22 14:15 UTC (permalink / raw)
  To: Ezequiel Garcia
  Cc: Shawn Guo, moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

On Mon, Jul 22, 2019 at 11:14 AM Ezequiel Garcia <ezequiel@collabora.com> wrote:

> Ooops, some unrelated imx8 managed to get here :-)

Yes, I noticed this problem and sent a v2.

Regards,

Fabio Estevam

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-07-22 14:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-22 13:36 [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support Fabio Estevam
2019-07-22 13:36 ` [PATCH 2/2] ARM: imx_v6_v7_defconfig: Select the OV5645 camera driver Fabio Estevam
2019-07-22 14:14 ` [PATCH 1/2] ARM: dts: imx6qdl-wandboard: Add OV5645 camera support Ezequiel Garcia
2019-07-22 14:15   ` Fabio Estevam

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.