* [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 = <®_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 = <®_1p8v>;
+ vdda-supply = <®_2p8v>;
+ vddd-supply = <®_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 = <®_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 = <®_1p8v>;
> + vdda-supply = <®_2p8v>;
> + vddd-supply = <®_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.