guowenxue
2024-07-20 c6d260b5008cd38e7dbda0c6f61489d6dfb286c5
Patch:IGKBoard-IMX8MP: Add OV5640 camera support

Signed-off-by: guowenxue <guowenxue@gmail.com>
1 files modified
92 ■■■■■ changed files
kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch 92 ●●●●● patch | view | raw | blame | history
kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch
@@ -10,10 +10,10 @@
+dtb-$(CONFIG_ARCH_MXC) += igkboard-imx8mp.dtb
diff --git a/arch/arm64/boot/dts/freescale/igkboard-imx8mp.dts b/arch/arm64/boot/dts/freescale/igkboard-imx8mp.dts
new file mode 100644
index 000000000..5e398c699
index 000000000..31490ac6a
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/igkboard-imx8mp.dts
@@ -0,0 +1,903 @@
@@ -0,0 +1,991 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree Source for LingYun IGKBoard(IoT Gateway Kits Board) - imx8mp
@@ -330,6 +330,33 @@
+        wlf,shared-lrclk;
+    };
+
+    ov5640_0: ov5640_mipi@3c {
+        compatible = "ovti,ov5640";
+        reg = <0x3c>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_csi0>;
+        clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
+        clock-names = "xclk";
+        assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
+        assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+        assigned-clock-rates = <24000000>;
+        csi_id = <0>;
+        powerdown-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+        reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+        mclk = <24000000>;
+        mclk_source = <0>;
+        mipi_csi;
+        status = "okay";
+
+        port {
+            ov5640_mipi_0_ep: endpoint {
+                remote-endpoint = <&mipi_csi0_ep>;
+                data-lanes = <1 2>;
+                clock-lanes = <0>;
+            };
+        };
+    };
+
+    ms1112@4a {
+        compatible = "ms,ms1112";
+        reg = <0x4a>;
@@ -389,6 +416,59 @@
+
+&sdma2 {
+    status = "okay";
+};
+
+/*+------------------------+
+  | MIPI-CSI OV5640 Camera |
+  +------------------------+*/
+
+&mipi_csi_0 {
+    #address-cells = <1>;
+    #size-cells = <0>;
+    status = "okay";
+
+    port@0 {
+        reg = <0>;
+        mipi_csi0_ep: endpoint {
+            remote-endpoint = <&ov5640_mipi_0_ep>;
+            data-lanes = <2>;
+            csis-hs-settle = <13>;
+            csis-clk-settle = <2>;
+            csis-wclk;
+        };
+    };
+};
+
+&vpu_g1 {
+    status = "okay";
+};
+
+&vpu_g2 {
+    status = "okay";
+};
+
+&vpu_vc8000e {
+    status = "okay";
+};
+
+&vpu_v4l2 {
+    status = "okay";
+};
+
+&cameradev {
+    status = "okay";
+};
+
+&isi_0 {
+    status = "okay";
+
+    cap_device {
+        status = "okay";
+    };
+
+    m2m_device {
+        status = "okay";
+    };
+};
+
+/*+------------------------+
@@ -783,6 +863,14 @@
+        >;
+    };
+
+    pinctrl_csi0: csi0_grp {
+         fsl,pins = <
+            MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11                         0x10 /* PWN */
+            MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06                         0x10 /* RST */
+            MX8MP_IOMUXC_GPIO1_IO15__CCM_CLKO2                          0x50 /* MCLK */
+        >;
+    };
+
+    pinctrl_pmic: pmicirq {
+        fsl,pins = <
+            MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03                         0x41