summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksandr Suvorov <oleksandr.suvorov@toradex.com>2021-06-17 13:09:03 +0300
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2021-06-30 06:49:42 +0000
commite58a8429ff28788d0eb03815503eb5ca3bb828c1 (patch)
tree765ead9c7c719e0f2817c7c797a0b4032090315d
parent98b7f58bc5bf859f5201635e7112d99356218820 (diff)
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 <oleksandr.suvorov@toradex.com>
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-eval.dts27
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts27
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts27
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi87
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 = <&reg_1p8v>;
- AVDD-supply = <&reg_2p5v>;
- DVDD-supply = <&reg_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 = <&reg_1p8v>;
- AVDD-supply = <&reg_2p5v>;
- DVDD-supply = <&reg_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 = <&reg_1p8v>;
- AVDD-supply = <&reg_2p5v>;
- DVDD-supply = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_ov5640_1v8_d_o_vdd>;
+ AVDD-supply = <&reg_ov5640_2v8_a_vdd>;
+ DVDD-supply = <&reg_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>;