From e58a8429ff28788d0eb03815503eb5ca3bb828c1 Mon Sep 17 00:00:00 2001 From: Oleksandr Suvorov Date: Thu, 17 Jun 2021 13:09:03 +0300 Subject: ARM: dts: apalis-imx6: fix ov5640 mipi csi stuff Move all ov5640-related stuff to the main devicetree. Fix the mclk frequency (22 -> 24MHz). Related-to: ELB-3883 Signed-off-by: Oleksandr Suvorov --- arch/arm/boot/dts/imx6q-apalis-eval.dts | 27 --------- arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts | 27 --------- arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts | 27 --------- arch/arm/boot/dts/imx6qdl-apalis.dtsi | 87 +++++++++++++++++++++++++-- 4 files changed, 82 insertions(+), 86 deletions(-) diff --git a/arch/arm/boot/dts/imx6q-apalis-eval.dts b/arch/arm/boot/dts/imx6q-apalis-eval.dts index 5cd15186b8fd..6eeeeabf52b4 100644 --- a/arch/arm/boot/dts/imx6q-apalis-eval.dts +++ b/arch/arm/boot/dts/imx6q-apalis-eval.dts @@ -196,33 +196,6 @@ cvbs = <1>; status = "okay"; }; - - ov5640_mipi@3c { - compatible = "ovti,ov564x_mipi"; - reg = <0x3c>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_cam_mclk>; - clocks = <&clks IMX6QDL_CLK_CKO2>; - clock-names = "csi_mclk"; - DOVDD-supply = <®_1p8v>; - AVDD-supply = <®_2p5v>; - DVDD-supply = <®_1p8v>; - pwn-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; - rst-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; - ipu_id = <0>; - csi_id = <1>; - mclk = <22000000>; - mclk_source = <0>; - status = "okay"; - }; -}; - -&mipi_csi { - ipu_id = <0>; - csi_id = <1>; - v_channel = <0>; - lanes = <2>; - status = "okay"; }; &pcie { diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts index fe7f1ac76db4..d62587f9dbb3 100644 --- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts +++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts @@ -200,33 +200,6 @@ cvbs = <1>; status = "okay"; }; - - ov5640_mipi@3c { - compatible = "ovti,ov564x_mipi"; - reg = <0x3c>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_cam_mclk>; - clocks = <&clks IMX6QDL_CLK_CKO2>; - clock-names = "csi_mclk"; - DOVDD-supply = <®_1p8v>; - AVDD-supply = <®_2p5v>; - DVDD-supply = <®_1p8v>; - pwn-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; - rst-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; - ipu_id = <0>; - csi_id = <1>; - mclk = <22000000>; - mclk_source = <0>; - status = "okay"; - }; -}; - -&mipi_csi { - ipu_id = <0>; - csi_id = <1>; - v_channel = <0>; - lanes = <2>; - status = "okay"; }; &pcie { diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts index 26c95bee5813..ad70fb6ef707 100644 --- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts +++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts @@ -224,33 +224,6 @@ cvbs = <1>; status = "okay"; }; - - ov5640_mipi@3c { - compatible = "ovti,ov564x_mipi"; - reg = <0x3c>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_cam_mclk>; - clocks = <&clks IMX6QDL_CLK_CKO2>; - clock-names = "csi_mclk"; - DOVDD-supply = <®_1p8v>; - AVDD-supply = <®_2p5v>; - DVDD-supply = <®_1p8v>; - pwn-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; - rst-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; - ipu_id = <0>; - csi_id = <1>; - mclk = <22000000>; - mclk_source = <0>; - status = "okay"; - }; -}; - -&mipi_csi { - ipu_id = <0>; - csi_id = <1>; - v_channel = <0>; - lanes = <2>; - status = "okay"; }; &pcie { diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi index bd78fd450785..6d93e8824d3d 100644 --- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi +++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi @@ -71,6 +71,12 @@ status = "disabled"; }; + clk_ov5640_osc: clk_ov5640_osc_int { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + }; + /* * HDMI_TX_DDC: I2C2_DDC_SDA/SCL on MXM3 205/207 */ @@ -187,6 +193,26 @@ regulator-always-on; }; + reg_ov5640_1v8_d_o_vdd: regulator-ov5640-1v8-d-o-vdd { + compatible = "regulator-fixed"; + regulator-name = "DOVDD/DVDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + /* Note: The CSI module uses on-board 3.3V_SW supply */ + vin-supply = <®_module_3v3>; + }; + + reg_ov5640_2v8_a_vdd: regulator-ov5640-2v8-a-vdd { + compatible = "regulator-fixed"; + regulator-name = "AVDD/AFVDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + /* Note: The CSI module uses on-board 3.3V_SW supply */ + vin-supply = <®_module_3v3>; + }; + reg_usb_otg_vbus: regulator-usb-otg-vbus { compatible = "regulator-fixed"; pinctrl-names = "default"; @@ -257,6 +283,30 @@ status = "disabled"; }; + v4l2_cap_0 { + compatible = "fsl,imx6q-v4l2-capture"; + ipu_id = <0>; + csi_id = <0>; + mclk_source = <0>; + status = "okay"; + }; + + v4l2_cap_1 { // second parallel camera + compatible = "fsl,imx6q-v4l2-capture"; + ipu_id = <1>; + csi_id = <1>; + mclk_source = <0>; + status = "okay"; + }; + + v4l2_cap_2 { // mipi-csi2 camera + compatible = "fsl,imx6q-v4l2-capture"; + ipu_id = <0>; + csi_id = <1>; + mclk_source = <0>; + status = "okay"; + }; + vdac: vdac@0 { compatible = "fsl,vdac"; ipu_id = <1>; @@ -266,11 +316,6 @@ pinctrl-0 = <&pinctrl_ipu2_vdac>; status = "disabled"; }; - - v4l2_out { - compatible = "fsl,mxc_v4l2_output"; - status = "okay"; - }; }; &audmux { @@ -745,6 +790,29 @@ scl-gpios = <&gpio3 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio3 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; status = "disabled"; + + ov5640_csi_cam: camera@3c { + compatible = "ovti,ov564x_mipi"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_cam_mclk>; + reg = <0x3c>; + /* + * By default use the internal on-cam clock source + * (Compatible with Toradex OV5640 v1.1b and later) + */ + clocks = <&clk_ov5640_osc>; + clock-names = "csi_mclk"; + DOVDD-supply = <®_ov5640_1v8_d_o_vdd>; + AVDD-supply = <®_ov5640_2v8_a_vdd>; + DVDD-supply = <®_ov5640_1v8_d_o_vdd>; + pwn-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; + rst-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; + ipu_id = <0>; + csi_id = <1>; + mclk = <24000000>; + mclk_source = <0>; + status = "disabled"; + }; }; &ldb { @@ -864,6 +932,15 @@ }; }; +&mipi_csi { + csi_id = <1>; + ipu_id = <0>; + lanes = <2>; + v_channel = <0>; + + status = "disabled"; +}; + &pcie { /* Gen2 does not work on Apalis iMX6 */ fsl,max-link-speed = <1>; -- cgit v1.2.3