This patch adds the device tree nodes for csi, video multiplexer and mipi-csi
besides the graph connecting the necessary endpoints to make the media capture
entities to work in imx7 Warp board.

Also add the pin control related with the mipi_csi in that board.

Signed-off-by: Rui Miguel Silva <rui.si...@linaro.org>
---
 arch/arm/boot/dts/imx7s-warp.dts | 80 ++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/imx7s.dtsi     | 27 +++++++++++
 2 files changed, 107 insertions(+)

diff --git a/arch/arm/boot/dts/imx7s-warp.dts b/arch/arm/boot/dts/imx7s-warp.dts
index 8a30b148534d..91d06adf7c24 100644
--- a/arch/arm/boot/dts/imx7s-warp.dts
+++ b/arch/arm/boot/dts/imx7s-warp.dts
@@ -310,6 +310,79 @@
        status = "okay";
 };
 
+&gpr {
+       csi_mux {
+               compatible = "video-mux";
+               mux-controls = <&mux 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       csi_mux_from_parallel_sensor: endpoint {
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       csi_mux_from_mipi_vc0: endpoint {
+                               remote-endpoint = <&mipi_vc0_to_csi_mux>;
+                       };
+               };
+
+               port@2 {
+                       reg = <2>;
+
+                       csi_mux_to_csi: endpoint {
+                               remote-endpoint = <&csi_from_csi_mux>;
+                       };
+               };
+       };
+};
+
+&csi {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@0 {
+               reg = <0>;
+
+               csi_from_csi_mux: endpoint {
+                       remote-endpoint = <&csi_mux_to_csi>;
+               };
+       };
+};
+
+&mipi_csi {
+       clock-frequency = <166000000>;
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@0 {
+               reg = <0>;
+
+               mipi_from_sensor: endpoint {
+                       remote-endpoint = <&ov2680_to_mipi>;
+                       data-lanes = <1>;
+                       csis-hs-settle = <3>;
+                       csis-clk-settle = <0>;
+                       csis-wclk;
+               };
+       };
+
+       port@1 {
+               reg = <1>;
+
+               mipi_vc0_to_csi_mux: endpoint {
+                       remote-endpoint = <&csi_mux_from_mipi_vc0>;
+               };
+       };
+};
+
 &wdog1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_wdog>;
@@ -357,6 +430,13 @@
                >;
        };
 
+       pinctrl_mipi_csi: mipi_csi {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO03__GPIO1_IO3     0x14
+                       MX7D_PAD_ENET1_RGMII_TD0__GPIO7_IO6     0x14
+               >;
+       };
+
        pinctrl_sai1: sai1grp {
                fsl,pins = <
                        MX7D_PAD_SAI1_RX_DATA__SAI1_RX_DATA0    0x1f
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
index 3027d6a62021..6b49b73053f9 100644
--- a/arch/arm/boot/dts/imx7s.dtsi
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -46,6 +46,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/reset/imx7-reset.h>
 #include "imx7d-pinfunc.h"
 
 / {
@@ -753,6 +754,17 @@
                                status = "disabled";
                        };
 
+                       csi: csi@30710000 {
+                               compatible = "fsl,imx7-csi";
+                               reg = <0x30710000 0x10000>;
+                               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                               <&clks IMX7D_CSI_MCLK_ROOT_CLK>,
+                                               <&clks IMX7D_CLK_DUMMY>;
+                               clock-names = "axi", "mclk", "dcic";
+                               status = "disabled";
+                       };
+
                        lcdif: lcdif@30730000 {
                                compatible = "fsl,imx7d-lcdif", 
"fsl,imx28-lcdif";
                                reg = <0x30730000 0x10000>;
@@ -762,6 +774,21 @@
                                clock-names = "pix", "axi";
                                status = "disabled";
                        };
+
+                       mipi_csi: mipi-csi@30750000 {
+                               compatible = "fsl,imx7-mipi-csi2";
+                               reg = <0x30750000 0x10000>;
+                               interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_MIPI_CSI_ROOT_CLK>,
+                                               <&clks 
IMX7D_MIPI_DPHY_ROOT_CLK>;
+                               clock-names = "mipi", "phy";
+                               power-domains = <&pgc_mipi_phy>;
+                               phy-supply = <&reg_1p0d>;
+                               resets = <&src IMX7_RESET_MIPI_PHY_MRST>;
+                               reset-names = "mrst";
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
                };
 
                aips3: aips-bus@30800000 {
-- 
2.17.0

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to