From c6d260b5008cd38e7dbda0c6f61489d6dfb286c5 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Sat, 20 Jul 2024 16:38:05 +0800
Subject: [PATCH] Patch:IGKBoard-IMX8MP: Add OV5640 camera support

---
 kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch |   92 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 90 insertions(+), 2 deletions(-)

diff --git a/kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch b/kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch
index 273847e..11a82e4 100644
--- a/kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch
+++ b/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

--
Gitblit v1.9.1