arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd]
authorAbel Vesa <abel.vesa@nxp.com>
Fri, 1 Feb 2019 16:40:16 +0000 (16:40 +0000)
committerStefano Babic <sbabic@denx.de>
Fri, 15 Feb 2019 21:01:15 +0000 (22:01 +0100)
Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] to the ones
from kernel v4.20 (commit 8fe28cb58bcb2).

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
13 files changed:
arch/arm/dts/Makefile
arch/arm/dts/imx6dl-sabreauto.dts [new file with mode: 0644]
arch/arm/dts/imx6dl-sabresd.dts [new file with mode: 0644]
arch/arm/dts/imx6dl.dtsi
arch/arm/dts/imx6q-sabreauto.dts [new file with mode: 0644]
arch/arm/dts/imx6q-sabresd.dts [new file with mode: 0644]
arch/arm/dts/imx6q.dtsi
arch/arm/dts/imx6qdl-sabreauto.dtsi [new file with mode: 0644]
arch/arm/dts/imx6qdl-sabresd.dtsi [new file with mode: 0644]
arch/arm/dts/imx6qdl.dtsi
arch/arm/dts/imx6qp-sabreauto.dts [new file with mode: 0644]
arch/arm/dts/imx6qp-sabresd.dts [new file with mode: 0644]
arch/arm/dts/imx6qp.dtsi [new file with mode: 0644]

index cb814e9..13ab3cc 100644 (file)
@@ -446,7 +446,13 @@ dtb-$(CONFIG_MX6QDL) += \
        imx6q-icore.dtb \
        imx6q-icore-mipi.dtb \
        imx6q-icore-rqs.dtb \
-       imx6q-logicpd.dtb
+       imx6q-logicpd.dtb \
+       imx6q-sabreauto.dtb \
+       imx6q-sabresd.dtb \
+       imx6dl-sabreauto.dtb \
+       imx6dl-sabresd.dtb \
+       imx6qp-sabreauto.dtb \
+       imx6qp-sabresd.dtb
 
 dtb-$(CONFIG_MX6SL) += imx6sl-evk.dtb
 
diff --git a/arch/arm/dts/imx6dl-sabreauto.dts b/arch/arm/dts/imx6dl-sabreauto.dts
new file mode 100644 (file)
index 0000000..660d52a
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright (C) 2013 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx6dl.dtsi"
+#include "imx6qdl-sabreauto.dtsi"
+
+/ {
+       model = "Freescale i.MX6 DualLite/Solo SABRE Automotive Board";
+       compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl";
+};
diff --git a/arch/arm/dts/imx6dl-sabresd.dts b/arch/arm/dts/imx6dl-sabresd.dts
new file mode 100644 (file)
index 0000000..cd6bbf2
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright (C) 2013 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx6dl.dtsi"
+#include "imx6qdl-sabresd.dtsi"
+
+/ {
+       model = "Freescale i.MX6 DualLite SABRE Smart Device Board";
+       compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl";
+};
+
+&ipu1_csi1_from_ipu1_csi1_mux {
+       clock-lanes = <0>;
+       data-lanes = <1 2>;
+};
index 9a4c22c..f0607eb 100644 (file)
@@ -1,12 +1,6 @@
-
-/*
- * Copyright 2013 Freescale Semiconductor, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- */
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright 2013 Freescale Semiconductor, Inc.
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "imx6dl-pinfunc.h"
@@ -39,6 +33,7 @@
                                396000  1175000
                        >;
                        clock-latency = <61036>; /* two CLK32 periods */
+                       #cooling-cells = <2>;
                        clocks = <&clks IMX6QDL_CLK_ARM>,
                                 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
                                 <&clks IMX6QDL_CLK_STEP>,
                        device_type = "cpu";
                        reg = <1>;
                        next-level-cache = <&L2>;
+                       operating-points = <
+                               /* kHz    uV */
+                               996000  1250000
+                               792000  1175000
+                               396000  1150000
+                       >;
+                       fsl,soc-operating-points = <
+                               /* ARM kHz  SOC-PU uV */
+                               996000  1175000
+                               792000  1175000
+                               396000  1175000
+                       >;
+                       clock-latency = <61036>; /* two CLK32 periods */
+                       clocks = <&clks IMX6QDL_CLK_ARM>,
+                                <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+                                <&clks IMX6QDL_CLK_STEP>,
+                                <&clks IMX6QDL_CLK_PLL1_SW>,
+                                <&clks IMX6QDL_CLK_PLL1_SYS>;
+                       clock-names = "arm", "pll2_pfd2_396m", "step",
+                                     "pll1_sw", "pll1_sys";
+                       arm-supply = <&reg_arm>;
+                       pu-supply = <&reg_pu>;
+                       soc-supply = <&reg_soc>;
                };
        };
 
        soc {
-               ocram: sram@00900000 {
+               ocram: sram@900000 {
                        compatible = "mmio-sram";
                        reg = <0x00900000 0x20000>;
                        clocks = <&clks IMX6QDL_CLK_OCRAM>;
                };
 
-               aips1: aips-bus@02000000 {
-                       iomuxc: iomuxc@020e0000 {
+               aips1: aips-bus@2000000 {
+                       iomuxc: iomuxc@20e0000 {
                                compatible = "fsl,imx6dl-iomuxc";
                        };
 
-                       pxp: pxp@020f0000 {
+                       pxp: pxp@20f0000 {
                                reg = <0x020f0000 0x4000>;
                                interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       epdc: epdc@020f4000 {
+                       epdc: epdc@20f4000 {
                                reg = <0x020f4000 0x4000>;
                                interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
                        };
-
-                       lcdif: lcdif@020f8000 {
-                               reg = <0x020f8000 0x4000>;
-                               interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
-                       };
                };
 
-               aips2: aips-bus@02100000 {
-                       i2c4: i2c@021f8000 {
+               aips2: aips-bus@2100000 {
+                       i2c4: i2c@21f8000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
                };
        };
 
+       capture-subsystem {
+               compatible = "fsl,imx-capture-subsystem";
+               ports = <&ipu1_csi0>, <&ipu1_csi1>;
+       };
+
        display-subsystem {
                compatible = "fsl,imx-display-subsystem";
                ports = <&ipu1_di0>, <&ipu1_di1>;
        };
+};
+
+&gpio1 {
+       gpio-ranges = <&iomuxc  0 131 2>, <&iomuxc  2 137 8>, <&iomuxc 10 189 2>,
+                     <&iomuxc 12 194 1>, <&iomuxc 13 193 1>, <&iomuxc 14 192 1>,
+                     <&iomuxc 15 191 1>, <&iomuxc 16 185 2>, <&iomuxc 18 184 1>,
+                     <&iomuxc 19 187 1>, <&iomuxc 20 183 1>, <&iomuxc 21 188 1>,
+                     <&iomuxc 22 123 3>, <&iomuxc 25 121 1>, <&iomuxc 26 127 1>,
+                     <&iomuxc 27 126 1>, <&iomuxc 28 128 1>, <&iomuxc 29 130 1>,
+                     <&iomuxc 30 129 1>, <&iomuxc 31 122 1>;
+};
+
+&gpio2 {
+       gpio-ranges = <&iomuxc  0 161 8>, <&iomuxc  8 208 8>, <&iomuxc 16  74 1>,
+                     <&iomuxc 17  73 1>, <&iomuxc 18  72 1>, <&iomuxc 19  71 1>,
+                     <&iomuxc 20  70 1>, <&iomuxc 21  69 1>, <&iomuxc 22  68 1>,
+                     <&iomuxc 23  79 2>, <&iomuxc 25 118 2>, <&iomuxc 27 117 1>,
+                     <&iomuxc 28 113 4>;
+};
+
+&gpio3 {
+       gpio-ranges = <&iomuxc  0 97  2>, <&iomuxc 2 105 8>, <&iomuxc 10 99 6>,
+                     <&iomuxc 16 81 16>;
+};
+
+&gpio4 {
+       gpio-ranges = <&iomuxc  5 136 1>, <&iomuxc  6 145 1>, <&iomuxc  7 150 1>,
+                     <&iomuxc  8 146 1>, <&iomuxc  9 151 1>, <&iomuxc 10 147 1>,
+                     <&iomuxc 11 152 1>, <&iomuxc 12 148 1>, <&iomuxc 13 153 1>,
+                     <&iomuxc 14 149 1>, <&iomuxc 15 154 1>, <&iomuxc 16  39 7>,
+                     <&iomuxc 23  56 1>, <&iomuxc 24  61 7>, <&iomuxc 31  46 1>;
+};
 
-       gpu-subsystem {
-               compatible = "fsl,imx-gpu-subsystem";
-               cores = <&gpu_2d>, <&gpu_3d>;
+&gpio5 {
+       gpio-ranges = <&iomuxc  0 120 1>, <&iomuxc  2 77 1>, <&iomuxc  4 76 1>,
+                     <&iomuxc  5  47 9>, <&iomuxc 14 57 4>, <&iomuxc 18 37 1>,
+                     <&iomuxc 19  36 1>, <&iomuxc 20 35 1>, <&iomuxc 21 38 1>,
+                     <&iomuxc 22  29 6>, <&iomuxc 28 19 4>;
+};
+
+&gpio6 {
+       gpio-ranges = <&iomuxc  0  23 6>, <&iomuxc  6  75 1>, <&iomuxc  7 156 1>,
+                     <&iomuxc  8 155 1>, <&iomuxc  9 170 1>, <&iomuxc 10 169 1>,
+                     <&iomuxc 11 157 1>, <&iomuxc 14 158 3>, <&iomuxc 17 204 1>,
+                     <&iomuxc 18 203 1>, <&iomuxc 19 182 1>, <&iomuxc 20 177 4>,
+                     <&iomuxc 24 175 1>, <&iomuxc 25 171 1>, <&iomuxc 26 181 1>,
+                     <&iomuxc 27 172 3>, <&iomuxc 30 176 1>, <&iomuxc 31  78 1>;
+};
+
+&gpio7 {
+       gpio-ranges = <&iomuxc 0 202 1>, <&iomuxc  1 201 1>, <&iomuxc  2 196 1>,
+                     <&iomuxc 3 195 1>, <&iomuxc  4 197 4>, <&iomuxc  8 205 1>,
+                     <&iomuxc 9 207 1>, <&iomuxc 10 206 1>, <&iomuxc 11 133 3>;
+};
+
+&gpr {
+       ipu1_csi0_mux {
+               compatible = "video-mux";
+               mux-controls = <&mux 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       ipu1_csi0_mux_from_mipi_vc0: endpoint {
+                               remote-endpoint = <&mipi_vc0_to_ipu1_csi0_mux>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       ipu1_csi0_mux_from_mipi_vc1: endpoint {
+                               remote-endpoint = <&mipi_vc1_to_ipu1_csi0_mux>;
+                       };
+               };
+
+               port@2 {
+                       reg = <2>;
+
+                       ipu1_csi0_mux_from_mipi_vc2: endpoint {
+                               remote-endpoint = <&mipi_vc2_to_ipu1_csi0_mux>;
+                       };
+               };
+
+               port@3 {
+                       reg = <3>;
+
+                       ipu1_csi0_mux_from_mipi_vc3: endpoint {
+                               remote-endpoint = <&mipi_vc3_to_ipu1_csi0_mux>;
+                       };
+               };
+
+               port@4 {
+                       reg = <4>;
+
+                       ipu1_csi0_mux_from_parallel_sensor: endpoint {
+                       };
+               };
+
+               port@5 {
+                       reg = <5>;
+
+                       ipu1_csi0_mux_to_ipu1_csi0: endpoint {
+                               remote-endpoint = <&ipu1_csi0_from_ipu1_csi0_mux>;
+                       };
+               };
+       };
+
+       ipu1_csi1_mux {
+               compatible = "video-mux";
+               mux-controls = <&mux 1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       ipu1_csi1_mux_from_mipi_vc0: endpoint {
+                               remote-endpoint = <&mipi_vc0_to_ipu1_csi1_mux>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       ipu1_csi1_mux_from_mipi_vc1: endpoint {
+                               remote-endpoint = <&mipi_vc1_to_ipu1_csi1_mux>;
+                       };
+               };
+
+               port@2 {
+                       reg = <2>;
+
+                       ipu1_csi1_mux_from_mipi_vc2: endpoint {
+                               remote-endpoint = <&mipi_vc2_to_ipu1_csi1_mux>;
+                       };
+               };
+
+               port@3 {
+                       reg = <3>;
+
+                       ipu1_csi1_mux_from_mipi_vc3: endpoint {
+                               remote-endpoint = <&mipi_vc3_to_ipu1_csi1_mux>;
+                       };
+               };
+
+               port@4 {
+                       reg = <4>;
+
+                       ipu1_csi1_mux_from_parallel_sensor: endpoint {
+                       };
+               };
+
+               port@5 {
+                       reg = <5>;
+
+                       ipu1_csi1_mux_to_ipu1_csi1: endpoint {
+                               remote-endpoint = <&ipu1_csi1_from_ipu1_csi1_mux>;
+                       };
+               };
        };
 };
 
        compatible = "fsl,imx6dl-hdmi";
 };
 
+&ipu1_csi1 {
+       ipu1_csi1_from_ipu1_csi1_mux: endpoint {
+               remote-endpoint = <&ipu1_csi1_mux_to_ipu1_csi1>;
+       };
+};
+
 &ldb {
        clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
                 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
                      "di0", "di1";
 };
 
+&mipi_csi {
+       port@1 {
+               reg = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               mipi_vc0_to_ipu1_csi0_mux: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc0>;
+               };
+
+               mipi_vc0_to_ipu1_csi1_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc0>;
+               };
+       };
+
+       port@2 {
+               reg = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               mipi_vc1_to_ipu1_csi0_mux: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc1>;
+               };
+
+               mipi_vc1_to_ipu1_csi1_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc1>;
+               };
+       };
+
+       port@3 {
+               reg = <3>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               mipi_vc2_to_ipu1_csi0_mux: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc2>;
+               };
+
+               mipi_vc2_to_ipu1_csi1_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc2>;
+               };
+       };
+
+       port@4 {
+               reg = <4>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               mipi_vc3_to_ipu1_csi0_mux: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc3>;
+               };
+
+               mipi_vc3_to_ipu1_csi1_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc3>;
+               };
+       };
+};
+
+&mux {
+       mux-reg-masks = <0x34 0x00000007>, /* IPU_CSI0_MUX */
+                       <0x34 0x00000038>, /* IPU_CSI1_MUX */
+                       <0x0c 0x0000000c>, /* HDMI_MUX_CTL */
+                       <0x0c 0x000000c0>, /* LVDS0_MUX_CTL */
+                       <0x0c 0x00000300>, /* LVDS1_MUX_CTL */
+                       <0x28 0x00000003>, /* DCIC1_MUX_CTL */
+                       <0x28 0x0000000c>; /* DCIC2_MUX_CTL */
+};
+
 &vpu {
        compatible = "fsl,imx6dl-vpu", "cnm,coda960";
 };
diff --git a/arch/arm/dts/imx6q-sabreauto.dts b/arch/arm/dts/imx6q-sabreauto.dts
new file mode 100644 (file)
index 0000000..6e981a3
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2012 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-sabreauto.dtsi"
+
+/ {
+       model = "Freescale i.MX6 Quad SABRE Automotive Board";
+       compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
+};
+
+&sata {
+       status = "okay";
+};
diff --git a/arch/arm/dts/imx6q-sabresd.dts b/arch/arm/dts/imx6q-sabresd.dts
new file mode 100644 (file)
index 0000000..eec9446
--- /dev/null
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2012 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-sabresd.dtsi"
+
+/ {
+       model = "Freescale i.MX6 Quad SABRE Smart Device Board";
+       compatible = "fsl,imx6q-sabresd", "fsl,imx6q";
+};
+
+&sata {
+       status = "okay";
+};
+
+&ipu1_csi1_from_mipi_vc1 {
+       clock-lanes = <0>;
+       data-lanes = <1 2>;
+};
index c30c836..8381d24 100644 (file)
@@ -1,12 +1,6 @@
-
-/*
- * Copyright 2013 Freescale Semiconductor, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- */
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright 2013 Freescale Semiconductor, Inc.
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "imx6q-pinfunc.h"
@@ -44,6 +38,7 @@
                                396000  1175000
                        >;
                        clock-latency = <61036>; /* two CLK32 periods */
+                       #cooling-cells = <2>;
                        clocks = <&clks IMX6QDL_CLK_ARM>,
                                 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
                                 <&clks IMX6QDL_CLK_STEP>,
                        soc-supply = <&reg_soc>;
                };
 
-               cpu@1 {
+               cpu1: cpu@1 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <1>;
                        next-level-cache = <&L2>;
+                       operating-points = <
+                               /* kHz    uV */
+                               1200000 1275000
+                               996000  1250000
+                               852000  1250000
+                               792000  1175000
+                               396000  975000
+                       >;
+                       fsl,soc-operating-points = <
+                               /* ARM kHz  SOC-PU uV */
+                               1200000 1275000
+                               996000  1250000
+                               852000  1250000
+                               792000  1175000
+                               396000  1175000
+                       >;
+                       clock-latency = <61036>; /* two CLK32 periods */
+                       clocks = <&clks IMX6QDL_CLK_ARM>,
+                                <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+                                <&clks IMX6QDL_CLK_STEP>,
+                                <&clks IMX6QDL_CLK_PLL1_SW>,
+                                <&clks IMX6QDL_CLK_PLL1_SYS>;
+                       clock-names = "arm", "pll2_pfd2_396m", "step",
+                                     "pll1_sw", "pll1_sys";
+                       arm-supply = <&reg_arm>;
+                       pu-supply = <&reg_pu>;
+                       soc-supply = <&reg_soc>;
                };
 
-               cpu@2 {
+               cpu2: cpu@2 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <2>;
                        next-level-cache = <&L2>;
+                       operating-points = <
+                               /* kHz    uV */
+                               1200000 1275000
+                               996000  1250000
+                               852000  1250000
+                               792000  1175000
+                               396000  975000
+                       >;
+                       fsl,soc-operating-points = <
+                               /* ARM kHz  SOC-PU uV */
+                               1200000 1275000
+                               996000  1250000
+                               852000  1250000
+                               792000  1175000
+                               396000  1175000
+                       >;
+                       clock-latency = <61036>; /* two CLK32 periods */
+                       clocks = <&clks IMX6QDL_CLK_ARM>,
+                                <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+                                <&clks IMX6QDL_CLK_STEP>,
+                                <&clks IMX6QDL_CLK_PLL1_SW>,
+                                <&clks IMX6QDL_CLK_PLL1_SYS>;
+                       clock-names = "arm", "pll2_pfd2_396m", "step",
+                                     "pll1_sw", "pll1_sys";
+                       arm-supply = <&reg_arm>;
+                       pu-supply = <&reg_pu>;
+                       soc-supply = <&reg_soc>;
                };
 
-               cpu@3 {
+               cpu3: cpu@3 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <3>;
                        next-level-cache = <&L2>;
+                       operating-points = <
+                               /* kHz    uV */
+                               1200000 1275000
+                               996000  1250000
+                               852000  1250000
+                               792000  1175000
+                               396000  975000
+                       >;
+                       fsl,soc-operating-points = <
+                               /* ARM kHz  SOC-PU uV */
+                               1200000 1275000
+                               996000  1250000
+                               852000  1250000
+                               792000  1175000
+                               396000  1175000
+                       >;
+                       clock-latency = <61036>; /* two CLK32 periods */
+                       clocks = <&clks IMX6QDL_CLK_ARM>,
+                                <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+                                <&clks IMX6QDL_CLK_STEP>,
+                                <&clks IMX6QDL_CLK_PLL1_SW>,
+                                <&clks IMX6QDL_CLK_PLL1_SYS>;
+                       clock-names = "arm", "pll2_pfd2_396m", "step",
+                                     "pll1_sw", "pll1_sys";
+                       arm-supply = <&reg_arm>;
+                       pu-supply = <&reg_pu>;
+                       soc-supply = <&reg_soc>;
                };
        };
 
        soc {
-               ocram: sram@00900000 {
+               ocram: sram@900000 {
                        compatible = "mmio-sram";
                        reg = <0x00900000 0x40000>;
                        clocks = <&clks IMX6QDL_CLK_OCRAM>;
                };
 
-               aips-bus@02000000 { /* AIPS1 */
-                       spba-bus@02000000 {
-                               ecspi5: ecspi@02018000 {
+               aips-bus@2000000 { /* AIPS1 */
+                       spba-bus@2000000 {
+                               ecspi5: spi@2018000 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
                                        clocks = <&clks IMX6Q_CLK_ECSPI5>,
                                                 <&clks IMX6Q_CLK_ECSPI5>;
                                        clock-names = "ipg", "per";
-                                       dmas = <&sdma 11 7 1>, <&sdma 12 7 2>;
+                                       dmas = <&sdma 11 8 1>, <&sdma 12 8 2>;
                                        dma-names = "rx", "tx";
                                        status = "disabled";
                                };
                        };
 
-                       iomuxc: iomuxc@020e0000 {
+                       iomuxc: iomuxc@20e0000 {
                                compatible = "fsl,imx6q-iomuxc";
                        };
                };
 
-               sata: sata@02200000 {
+               sata: sata@2200000 {
                        compatible = "fsl,imx6q-ahci";
                        reg = <0x02200000 0x4000>;
                        interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               gpu_vg: gpu@02204000 {
+               gpu_vg: gpu@2204000 {
                        compatible = "vivante,gc";
                        reg = <0x02204000 0x4000>;
                        interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clks IMX6QDL_CLK_OPENVG_AXI>,
                                 <&clks IMX6QDL_CLK_GPU2D_CORE>;
                        clock-names = "bus", "core";
-                       power-domains = <&gpc 1>;
+                       power-domains = <&pd_pu>;
                };
 
-               ipu2: ipu@02800000 {
+               ipu2: ipu@2800000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "fsl,imx6q-ipu";
 
                        ipu2_csi0: port@0 {
                                reg = <0>;
+
+                               ipu2_csi0_from_mipi_vc2: endpoint {
+                                       remote-endpoint = <&mipi_vc2_to_ipu2_csi0>;
+                               };
                        };
 
                        ipu2_csi1: port@1 {
                                reg = <1>;
+
+                               ipu2_csi1_from_ipu2_csi1_mux: endpoint {
+                                       remote-endpoint = <&ipu2_csi1_mux_to_ipu2_csi1>;
+                               };
                        };
 
                        ipu2_di0: port@2 {
                                #size-cells = <0>;
                                reg = <2>;
 
-                               ipu2_di0_disp0: disp0-endpoint {
+                               ipu2_di0_disp0: endpoint@0 {
+                                       reg = <0>;
                                };
 
-                               ipu2_di0_hdmi: hdmi-endpoint {
+                               ipu2_di0_hdmi: endpoint@1 {
+                                       reg = <1>;
                                        remote-endpoint = <&hdmi_mux_2>;
                                };
 
-                               ipu2_di0_mipi: mipi-endpoint {
+                               ipu2_di0_mipi: endpoint@2 {
+                                       reg = <2>;
                                        remote-endpoint = <&mipi_mux_2>;
                                };
 
-                               ipu2_di0_lvds0: lvds0-endpoint {
+                               ipu2_di0_lvds0: endpoint@3 {
+                                       reg = <3>;
                                        remote-endpoint = <&lvds0_mux_2>;
                                };
 
-                               ipu2_di0_lvds1: lvds1-endpoint {
+                               ipu2_di0_lvds1: endpoint@4 {
+                                       reg = <4>;
                                        remote-endpoint = <&lvds1_mux_2>;
                                };
                        };
                                #size-cells = <0>;
                                reg = <3>;
 
-                               ipu2_di1_hdmi: hdmi-endpoint {
+                               ipu2_di1_hdmi: endpoint@1 {
+                                       reg = <1>;
                                        remote-endpoint = <&hdmi_mux_3>;
                                };
 
-                               ipu2_di1_mipi: mipi-endpoint {
+                               ipu2_di1_mipi: endpoint@2 {
+                                       reg = <2>;
                                        remote-endpoint = <&mipi_mux_3>;
                                };
 
-                               ipu2_di1_lvds0: lvds0-endpoint {
+                               ipu2_di1_lvds0: endpoint@3 {
+                                       reg = <3>;
                                        remote-endpoint = <&lvds0_mux_3>;
                                };
 
-                               ipu2_di1_lvds1: lvds1-endpoint {
+                               ipu2_di1_lvds1: endpoint@4 {
+                                       reg = <4>;
                                        remote-endpoint = <&lvds1_mux_3>;
                                };
                        };
                };
        };
 
+       capture-subsystem {
+               compatible = "fsl,imx-capture-subsystem";
+               ports = <&ipu1_csi0>, <&ipu1_csi1>, <&ipu2_csi0>, <&ipu2_csi1>;
+       };
+
        display-subsystem {
                compatible = "fsl,imx-display-subsystem";
                ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>;
        };
+};
+
+&gpio1 {
+       gpio-ranges = <&iomuxc  0 136  2>, <&iomuxc  2 141 1>, <&iomuxc  3 139 1>,
+                     <&iomuxc  4 142  2>, <&iomuxc  6 140 1>, <&iomuxc  7 144 2>,
+                     <&iomuxc  9 138  1>, <&iomuxc 10 213 3>, <&iomuxc 13  20 1>,
+                     <&iomuxc 14  19  1>, <&iomuxc 15  21 1>, <&iomuxc 16 208 1>,
+                     <&iomuxc 17 207  1>, <&iomuxc 18 210 3>, <&iomuxc 21 209 1>,
+                     <&iomuxc 22 116 10>;
+};
+
+&gpio2 {
+       gpio-ranges = <&iomuxc  0 191 16>, <&iomuxc 16 55 14>, <&iomuxc 30 35 1>,
+                     <&iomuxc 31  44  1>;
+};
+
+&gpio3 {
+       gpio-ranges = <&iomuxc 0 69 16>, <&iomuxc 16 36 8>, <&iomuxc 24 45 8>;
+};
+
+&gpio4 {
+       gpio-ranges = <&iomuxc 5 149 1>, <&iomuxc 6 126 10>, <&iomuxc 16 87 16>;
+};
+
+&gpio5 {
+       gpio-ranges = <&iomuxc 0  85  1>, <&iomuxc  2  34  1>, <&iomuxc 4 53 1>,
+                     <&iomuxc 5 103 13>, <&iomuxc 18 150 14>;
+};
+
+&gpio6 {
+       gpio-ranges = <&iomuxc  0 164 6>, <&iomuxc  6  54 1>, <&iomuxc  7 181  5>,
+                     <&iomuxc 14 186 3>, <&iomuxc 17 170 2>, <&iomuxc 19  22 12>,
+                     <&iomuxc 31  86 1>;
+};
+
+&gpio7 {
+       gpio-ranges = <&iomuxc 0 172 9>, <&iomuxc 9 189 2>, <&iomuxc 11 146 3>;
+};
+
+&gpr {
+       ipu1_csi0_mux {
+               compatible = "video-mux";
+               mux-controls = <&mux 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       ipu1_csi0_mux_from_mipi_vc0: endpoint {
+                               remote-endpoint = <&mipi_vc0_to_ipu1_csi0_mux>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       ipu1_csi0_mux_from_parallel_sensor: endpoint {
+                       };
+               };
 
-       gpu-subsystem {
-               compatible = "fsl,imx-gpu-subsystem";
-               cores = <&gpu_2d>, <&gpu_3d>, <&gpu_vg>;
+               port@2 {
+                       reg = <2>;
+
+                       ipu1_csi0_mux_to_ipu1_csi0: endpoint {
+                               remote-endpoint = <&ipu1_csi0_from_ipu1_csi0_mux>;
+                       };
+               };
+       };
+
+       ipu2_csi1_mux {
+               compatible = "video-mux";
+               mux-controls = <&mux 1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       ipu2_csi1_mux_from_mipi_vc3: endpoint {
+                               remote-endpoint = <&mipi_vc3_to_ipu2_csi1_mux>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       ipu2_csi1_mux_from_parallel_sensor: endpoint {
+                       };
+               };
+
+               port@2 {
+                       reg = <2>;
+
+                       ipu2_csi1_mux_to_ipu2_csi1: endpoint {
+                               remote-endpoint = <&ipu2_csi1_from_ipu2_csi1_mux>;
+                       };
+               };
        };
 };
 
        };
 };
 
+&ipu1_csi1 {
+       ipu1_csi1_from_mipi_vc1: endpoint {
+               remote-endpoint = <&mipi_vc1_to_ipu1_csi1>;
+       };
+};
+
 &ldb {
        clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
                 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
        };
 };
 
+&mipi_csi {
+       port@1 {
+               reg = <1>;
+
+               mipi_vc0_to_ipu1_csi0_mux: endpoint {
+                       remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc0>;
+               };
+       };
+
+       port@2 {
+               reg = <2>;
+
+               mipi_vc1_to_ipu1_csi1: endpoint {
+                       remote-endpoint = <&ipu1_csi1_from_mipi_vc1>;
+               };
+       };
+
+       port@3 {
+               reg = <3>;
+
+               mipi_vc2_to_ipu2_csi0: endpoint {
+                       remote-endpoint = <&ipu2_csi0_from_mipi_vc2>;
+               };
+       };
+
+       port@4 {
+               reg = <4>;
+
+               mipi_vc3_to_ipu2_csi1_mux: endpoint {
+                       remote-endpoint = <&ipu2_csi1_mux_from_mipi_vc3>;
+               };
+       };
+};
+
 &mipi_dsi {
        ports {
                port@2 {
        };
 };
 
+&mux {
+       mux-reg-masks = <0x04 0x00080000>, /* MIPI_IPU1_MUX */
+                       <0x04 0x00100000>, /* MIPI_IPU2_MUX */
+                       <0x0c 0x0000000c>, /* HDMI_MUX_CTL */
+                       <0x0c 0x000000c0>, /* LVDS0_MUX_CTL */
+                       <0x0c 0x00000300>, /* LVDS1_MUX_CTL */
+                       <0x28 0x00000003>, /* DCIC1_MUX_CTL */
+                       <0x28 0x0000000c>; /* DCIC2_MUX_CTL */
+};
+
 &vpu {
        compatible = "fsl,imx6q-vpu", "cnm,coda960";
 };
diff --git a/arch/arm/dts/imx6qdl-sabreauto.dtsi b/arch/arm/dts/imx6qdl-sabreauto.dtsi
new file mode 100644 (file)
index 0000000..a6dc5c4
--- /dev/null
@@ -0,0 +1,810 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2012 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       chosen {
+               stdout-path = &uart4;
+       };
+
+       memory@10000000 {
+               reg = <0x10000000 0x80000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_leds>;
+
+               user {
+                       label = "debug";
+                       gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               home {
+                       label = "Home";
+                       gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_HOME>;
+                       wakeup-source;
+               };
+
+               back {
+                       label = "Back";
+                       gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_BACK>;
+                       wakeup-source;
+               };
+
+               program {
+                       label = "Program";
+                       gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_PROGRAM>;
+                       wakeup-source;
+               };
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+               };
+
+               volume-down {
+                       label = "Volume Down";
+                       gpios = <&gpio5 14 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       wakeup-source;
+               };
+       };
+
+       clocks {
+               codec_osc: anaclk2 {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <24576000>;
+               };
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reg_audio: regulator@0 {
+                       compatible = "regulator-fixed";
+                       reg = <0>;
+                       regulator-name = "cs42888_supply";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_h1_vbus: regulator@1 {
+                       compatible = "regulator-fixed";
+                       reg = <1>;
+                       regulator-name = "usb_h1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&max7310_b 7 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+
+               reg_usb_otg_vbus: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       regulator-name = "usb_otg_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&max7310_c 1 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+       };
+
+       sound-cs42888 {
+               compatible = "fsl,imx6-sabreauto-cs42888",
+                       "fsl,imx-audio-cs42888";
+               model = "imx-cs42888";
+               audio-cpu = <&esai>;
+               audio-asrc = <&asrc>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "Line Out Jack", "AOUT1L",
+                       "Line Out Jack", "AOUT1R",
+                       "Line Out Jack", "AOUT2L",
+                       "Line Out Jack", "AOUT2R",
+                       "Line Out Jack", "AOUT3L",
+                       "Line Out Jack", "AOUT3R",
+                       "Line Out Jack", "AOUT4L",
+                       "Line Out Jack", "AOUT4R",
+                       "AIN1L", "Line In Jack",
+                       "AIN1R", "Line In Jack",
+                       "AIN2L", "Line In Jack",
+                       "AIN2R", "Line In Jack";
+       };
+
+       sound-spdif {
+               compatible = "fsl,imx-audio-spdif",
+                          "fsl,imx-sabreauto-spdif";
+               model = "imx-spdif";
+               spdif-controller = <&spdif>;
+               spdif-in;
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm3 0 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <7>;
+               status = "okay";
+       };
+
+       i2cmux {
+               compatible = "i2c-mux-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c3mux>;
+               mux-gpios = <&gpio5 4 0>;
+               i2c-parent = <&i2c3>;
+               idle-state = <0>;
+
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       adv7180: camera@21 {
+                               compatible = "adi,adv7180";
+                               reg = <0x21>;
+                               powerdown-gpios = <&max7310_b 2 GPIO_ACTIVE_LOW>;
+                               interrupt-parent = <&gpio1>;
+                               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+                               port {
+                                       adv7180_to_ipu1_csi0_mux: endpoint {
+                                               remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
+                                               bus-width = <8>;
+                                       };
+                               };
+                       };
+
+                       max7310_a: gpio@30 {
+                               compatible = "maxim,max7310";
+                               reg = <0x30>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                       };
+
+                       max7310_b: gpio@32 {
+                               compatible = "maxim,max7310";
+                               reg = <0x32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_max7310>;
+                               reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+                       };
+
+                       max7310_c: gpio@34 {
+                               compatible = "maxim,max7310";
+                               reg = <0x34>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                       };
+
+                       light-sensor@44 {
+                               compatible = "isil,isl29023";
+                               reg = <0x44>;
+                               interrupt-parent = <&gpio5>;
+                               interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
+                       };
+
+                       magnetometer@e {
+                               compatible = "fsl,mag3110";
+                               reg = <0x0e>;
+                               interrupt-parent = <&gpio2>;
+                               interrupts = <29 IRQ_TYPE_EDGE_RISING>;
+                       };
+
+                       accelerometer@1c {
+                               compatible = "fsl,mma8451";
+                               reg = <0x1c>;
+                               interrupt-parent = <&gpio6>;
+                               interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
+                       };
+               };
+       };
+};
+
+&ipu1_csi0_from_ipu1_csi0_mux {
+       bus-width = <8>;
+};
+
+&ipu1_csi0_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu1_csi0_mux>;
+       bus-width = <8>;
+};
+
+&ipu1_csi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu1_csi0>;
+};
+
+&clks {
+       assigned-clocks = <&clks IMX6QDL_PLL4_BYPASS_SRC>,
+                         <&clks IMX6QDL_PLL4_BYPASS>,
+                         <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
+                         <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
+                         <&clks IMX6QDL_CLK_PLL4_POST_DIV>;
+       assigned-clock-parents = <&clks IMX6QDL_CLK_LVDS2_IN>,
+                                <&clks IMX6QDL_PLL4_BYPASS_SRC>,
+                                <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
+                                <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
+       assigned-clock-rates = <0>, <0>, <0>, <0>, <24576000>;
+};
+
+&ecspi1 {
+       cs-gpios = <&gpio3 19 0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
+       status = "disabled"; /* pin conflict with WEIM NOR */
+
+       flash: m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p32", "jedec,spi-nor";
+               spi-max-frequency = <20000000>;
+               reg = <0>;
+       };
+};
+
+&esai {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esai>;
+       assigned-clocks = <&clks IMX6QDL_CLK_ESAI_SEL>,
+                         <&clks IMX6QDL_CLK_ESAI_EXTAL>;
+       assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
+       assigned-clock-rates = <0>, <24576000>;
+       status = "okay";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet>;
+       phy-mode = "rgmii";
+       interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
+                             <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
+       status = "okay";
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       status = "okay";
+};
+
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi_cec>;
+       ddc-i2c-bus = <&i2c2>;
+       status = "okay";
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+
+       pmic: pfuze100@8 {
+               compatible = "fsl,pfuze100";
+               reg = <0x08>;
+
+               regulators {
+                       sw1a_reg: sw1ab {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw1c_reg: sw1c {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3a_reg: sw3a {
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3b_reg: sw3b {
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw4_reg: sw4 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                       };
+
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vref_reg: vrefddr {
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vgen1_reg: vgen1 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       vgen4_reg: vgen4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen5_reg: vgen5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen6_reg: vgen6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       codec: cs42888@48 {
+               compatible = "cirrus,cs42888";
+               reg = <0x48>;
+               clocks = <&codec_osc>;
+               clock-names = "mclk";
+               VA-supply = <&reg_audio>;
+               VD-supply = <&reg_audio>;
+               VLS-supply = <&reg_audio>;
+               VLC-supply = <&reg_audio>;
+       };
+
+       touchscreen@4 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_egalax_int>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
+               wakeup-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       imx6qdl-sabreauto {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000
+                               MX6QDL_PAD_SD2_DAT2__GPIO1_IO13  0x80000000
+                               MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x17059
+                       >;
+               };
+
+               pinctrl_ecspi1: ecspi1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D17__ECSPI1_MISO         0x100b1
+                               MX6QDL_PAD_EIM_D18__ECSPI1_MOSI         0x100b1
+                               MX6QDL_PAD_EIM_D16__ECSPI1_SCLK         0x100b1
+                       >;
+               };
+
+               pinctrl_ecspi1_cs: ecspi1cs {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x80000000
+                       >;
+               };
+
+               pinctrl_egalax_int: egalax-intgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_EB0__GPIO2_IO28          0xb0b1
+                       >;
+               };
+
+               pinctrl_enet: enetgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL1__ENET_MDIO          0x1b0b0
+                               MX6QDL_PAD_KEY_COL2__ENET_MDC           0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
+                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
+                       >;
+               };
+
+               pinctrl_esai: esaigrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030
+                               MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS    0x1b030
+                               MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1b030
+                               MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3     0x1b030
+                               MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1  0x1b030
+                               MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0   0x1b030
+                               MX6QDL_PAD_GPIO_17__ESAI_TX0        0x1b030
+                               MX6QDL_PAD_NANDF_CS3__ESAI_TX1      0x1b030
+                               MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK   0x1b030
+                               MX6QDL_PAD_GPIO_9__ESAI_RX_FS       0x1b030
+                       >;
+               };
+
+               pinctrl_gpio_keys: gpiokeysgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD2_CMD__GPIO1_IO11          0x1b0b0
+                               MX6QDL_PAD_SD2_DAT3__GPIO1_IO12         0x1b0b0
+                               MX6QDL_PAD_SD4_DAT4__GPIO2_IO12         0x1b0b0
+                               MX6QDL_PAD_SD4_DAT7__GPIO2_IO15         0x1b0b0
+                               MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14      0x1b0b0
+                       >;
+               };
+
+               pinctrl_gpio_leds: gpioledsgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15      0x80000000
+                       >;
+               };
+
+               pinctrl_gpmi_nand: gpminandgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
+                               MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
+                               MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
+                               MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
+                               MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
+                               MX6QDL_PAD_NANDF_CS1__NAND_CE1_B        0xb0b1
+                               MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
+                               MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
+                               MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
+                               MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
+                               MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
+                               MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
+                               MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
+                               MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
+                               MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
+                               MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
+                               MX6QDL_PAD_SD4_DAT0__NAND_DQS           0x00b1
+                       >;
+               };
+
+               pinctrl_hdmi_cec: hdmicecgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE    0x1f8b0
+                       >;
+               };
+
+               pinctrl_i2c2: i2c2grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_EB2__I2C2_SCL    0x4001b8b1
+                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA   0x4001b8b1
+                       >;
+               };
+
+               pinctrl_i2c3: i2c3grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_3__I2C3_SCL  0x4001b8b1
+                               MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
+                       >;
+               };
+
+               pinctrl_i2c3mux: i2c3muxgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x0b0b1
+                       >;
+               };
+
+               pinctrl_ipu1_csi0: ipu1csi0grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12  0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13  0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14  0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15  0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16  0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17  0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18  0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19  0x1b0b0
+                               MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0
+                               MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC    0x1b0b0
+                               MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC   0x1b0b0
+                       >;
+               };
+
+               pinctrl_max7310: max7310grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x1b0b0
+                       >;
+               };
+
+               pinctrl_pwm3: pwm1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD4_DAT1__PWM3_OUT           0x1b0b1
+                       >;
+               };
+
+               pinctrl_gpt_input_capture0: gptinputcapture0grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_DAT0__GPT_CAPTURE1       0x1b0b0
+                       >;
+               };
+
+               pinctrl_gpt_input_capture1: gptinputcapture1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_DAT1__GPT_CAPTURE2       0x1b0b0
+                       >;
+               };
+
+               pinctrl_spdif: spdifgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x1b0b0
+                       >;
+               };
+
+               pinctrl_uart4: uart4grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL0__UART4_TX_DATA      0x1b0b1
+                               MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA      0x1b0b1
+                       >;
+               };
+
+               pinctrl_usbotg: usbotggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
+                       >;
+               };
+
+               pinctrl_usdhc3: usdhc3grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
+                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
+                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
+                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
+                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
+                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
+                               MX6QDL_PAD_SD3_DAT4__SD3_DATA4          0x17059
+                               MX6QDL_PAD_SD3_DAT5__SD3_DATA5          0x17059
+                               MX6QDL_PAD_SD3_DAT6__SD3_DATA6          0x17059
+                               MX6QDL_PAD_SD3_DAT7__SD3_DATA7          0x17059
+                       >;
+               };
+
+               pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
+                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
+                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x170b9
+                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x170b9
+                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x170b9
+                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x170b9
+                               MX6QDL_PAD_SD3_DAT4__SD3_DATA4          0x170b9
+                               MX6QDL_PAD_SD3_DAT5__SD3_DATA5          0x170b9
+                               MX6QDL_PAD_SD3_DAT6__SD3_DATA6          0x170b9
+                               MX6QDL_PAD_SD3_DAT7__SD3_DATA7          0x170b9
+                       >;
+               };
+
+               pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
+                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
+                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x170f9
+                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x170f9
+                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x170f9
+                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x170f9
+                               MX6QDL_PAD_SD3_DAT4__SD3_DATA4          0x170f9
+                               MX6QDL_PAD_SD3_DAT5__SD3_DATA5          0x170f9
+                               MX6QDL_PAD_SD3_DAT6__SD3_DATA6          0x170f9
+                               MX6QDL_PAD_SD3_DAT7__SD3_DATA7          0x170f9
+                       >;
+               };
+
+               pinctrl_weim_cs0: weimcs0grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_CS0__EIM_CS0_B           0xb0b1
+                       >;
+               };
+
+               pinctrl_weim_nor: weimnorgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_OE__EIM_OE_B             0xb0b1
+                               MX6QDL_PAD_EIM_RW__EIM_RW               0xb0b1
+                               MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B         0xb060
+                               MX6QDL_PAD_EIM_D16__EIM_DATA16          0x1b0b0
+                               MX6QDL_PAD_EIM_D17__EIM_DATA17          0x1b0b0
+                               MX6QDL_PAD_EIM_D18__EIM_DATA18          0x1b0b0
+                               MX6QDL_PAD_EIM_D19__EIM_DATA19          0x1b0b0
+                               MX6QDL_PAD_EIM_D20__EIM_DATA20          0x1b0b0
+                               MX6QDL_PAD_EIM_D21__EIM_DATA21          0x1b0b0
+                               MX6QDL_PAD_EIM_D22__EIM_DATA22          0x1b0b0
+                               MX6QDL_PAD_EIM_D23__EIM_DATA23          0x1b0b0
+                               MX6QDL_PAD_EIM_D24__EIM_DATA24          0x1b0b0
+                               MX6QDL_PAD_EIM_D25__EIM_DATA25          0x1b0b0
+                               MX6QDL_PAD_EIM_D26__EIM_DATA26          0x1b0b0
+                               MX6QDL_PAD_EIM_D27__EIM_DATA27          0x1b0b0
+                               MX6QDL_PAD_EIM_D28__EIM_DATA28          0x1b0b0
+                               MX6QDL_PAD_EIM_D29__EIM_DATA29          0x1b0b0
+                               MX6QDL_PAD_EIM_D30__EIM_DATA30          0x1b0b0
+                               MX6QDL_PAD_EIM_D31__EIM_DATA31          0x1b0b0
+                               MX6QDL_PAD_EIM_A23__EIM_ADDR23          0xb0b1
+                               MX6QDL_PAD_EIM_A22__EIM_ADDR22          0xb0b1
+                               MX6QDL_PAD_EIM_A21__EIM_ADDR21          0xb0b1
+                               MX6QDL_PAD_EIM_A20__EIM_ADDR20          0xb0b1
+                               MX6QDL_PAD_EIM_A19__EIM_ADDR19          0xb0b1
+                               MX6QDL_PAD_EIM_A18__EIM_ADDR18          0xb0b1
+                               MX6QDL_PAD_EIM_A17__EIM_ADDR17          0xb0b1
+                               MX6QDL_PAD_EIM_A16__EIM_ADDR16          0xb0b1
+                               MX6QDL_PAD_EIM_DA15__EIM_AD15           0xb0b1
+                               MX6QDL_PAD_EIM_DA14__EIM_AD14           0xb0b1
+                               MX6QDL_PAD_EIM_DA13__EIM_AD13           0xb0b1
+                               MX6QDL_PAD_EIM_DA12__EIM_AD12           0xb0b1
+                               MX6QDL_PAD_EIM_DA11__EIM_AD11           0xb0b1
+                               MX6QDL_PAD_EIM_DA10__EIM_AD10           0xb0b1
+                               MX6QDL_PAD_EIM_DA9__EIM_AD09            0xb0b1
+                               MX6QDL_PAD_EIM_DA8__EIM_AD08            0xb0b1
+                               MX6QDL_PAD_EIM_DA7__EIM_AD07            0xb0b1
+                               MX6QDL_PAD_EIM_DA6__EIM_AD06            0xb0b1
+                               MX6QDL_PAD_EIM_DA5__EIM_AD05            0xb0b1
+                               MX6QDL_PAD_EIM_DA4__EIM_AD04            0xb0b1
+                               MX6QDL_PAD_EIM_DA3__EIM_AD03            0xb0b1
+                               MX6QDL_PAD_EIM_DA2__EIM_AD02            0xb0b1
+                               MX6QDL_PAD_EIM_DA1__EIM_AD01            0xb0b1
+                               MX6QDL_PAD_EIM_DA0__EIM_AD00            0xb0b1
+                       >;
+               };
+       };
+};
+
+&ldb {
+       status = "okay";
+
+       lvds-channel@0 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <18>;
+               status = "okay";
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: hsd100pxn1 {
+                               clock-frequency = <65000000>;
+                               hactive = <1024>;
+                               vactive = <768>;
+                               hback-porch = <220>;
+                               hfront-porch = <40>;
+                               vback-porch = <21>;
+                               vfront-porch = <7>;
+                               hsync-len = <60>;
+                               vsync-len = <10>;
+                       };
+               };
+       };
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+};
+
+&spdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spdif>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       cd-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&weim {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_weim_nor &pinctrl_weim_cs0>;
+       ranges = <0 0 0x08000000 0x08000000>;
+       status = "disabled"; /* pin conflict with SPI NOR */
+
+       nor@0,0 {
+               compatible = "cfi-flash";
+               reg = <0 0 0x02000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               bank-width = <2>;
+               fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
+                               0x0000c000 0x1404a38e 0x00000000>;
+       };
+};
diff --git a/arch/arm/dts/imx6qdl-sabresd.dtsi b/arch/arm/dts/imx6qdl-sabresd.dtsi
new file mode 100644 (file)
index 0000000..2cd5a9f
--- /dev/null
@@ -0,0 +1,741 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2012 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
+
+#include <dt-bindings/clock/imx6qdl-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       aliases {
+               mmc1 = &usdhc3;
+       };
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       memory@10000000 {
+               reg = <0x10000000 0x40000000>;
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reg_usb_otg_vbus: regulator@0 {
+                       compatible = "regulator-fixed";
+                       reg = <0>;
+                       regulator-name = "usb_otg_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio3 22 0>;
+                       enable-active-high;
+                       vin-supply = <&swbst_reg>;
+               };
+
+               reg_usb_h1_vbus: regulator@1 {
+                       compatible = "regulator-fixed";
+                       reg = <1>;
+                       regulator-name = "usb_h1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio1 29 0>;
+                       enable-active-high;
+                       vin-supply = <&swbst_reg>;
+               };
+
+               reg_audio: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       regulator-name = "wm8962-supply";
+                       gpio = <&gpio4 10 0>;
+                       enable-active-high;
+               };
+
+               reg_pcie: regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <3>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_pcie_reg>;
+                       regulator-name = "MPCIE_3V3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio3 19 0>;
+                       enable-active-high;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               power {
+                       label = "Power Button";
+                       gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+                       linux,code = <KEY_POWER>;
+               };
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               volume-down {
+                       label = "Volume Down";
+                       gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
+
+       sound {
+               compatible = "fsl,imx6q-sabresd-wm8962",
+                          "fsl,imx-audio-wm8962";
+               model = "wm8962-audio";
+               ssi-controller = <&ssi2>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "Headphone Jack", "HPOUTL",
+                       "Headphone Jack", "HPOUTR",
+                       "Ext Spk", "SPKOUTL",
+                       "Ext Spk", "SPKOUTR",
+                       "AMIC", "MICBIAS",
+                       "IN3R", "AMIC";
+               mux-int-port = <2>;
+               mux-ext-port = <3>;
+       };
+
+       backlight_lvds: backlight-lvds {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <7>;
+               status = "okay";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_leds>;
+
+               red {
+                       gpios = <&gpio1 2 0>;
+                       default-state = "on";
+               };
+       };
+
+       panel {
+               compatible = "hannstar,hsd100pxn1";
+               backlight = <&backlight_lvds>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&lvds0_out>;
+                       };
+               };
+       };
+};
+
+&ipu1_csi0_from_ipu1_csi0_mux {
+       bus-width = <8>;
+       data-shift = <12>; /* Lines 19:12 used */
+       hsync-active = <1>;
+       vsync-active = <1>;
+};
+
+&ipu1_csi0_mux_from_parallel_sensor {
+       remote-endpoint = <&ov5642_to_ipu1_csi0_mux>;
+};
+
+&ipu1_csi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu1_csi0>;
+};
+
+&mipi_csi {
+       status = "okay";
+
+       port@0 {
+               reg = <0>;
+
+               mipi_csi2_in: endpoint {
+                       remote-endpoint = <&ov5640_to_mipi_csi2>;
+                       clock-lanes = <0>;
+                       data-lanes = <1 2>;
+               };
+       };
+};
+
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux>;
+       status = "okay";
+};
+
+&clks {
+       assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
+                         <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
+       assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
+                                <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
+};
+
+&ecspi1 {
+       cs-gpios = <&gpio4 9 0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       status = "okay";
+
+       flash: m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p32", "jedec,spi-nor";
+               spi-max-frequency = <20000000>;
+               reg = <0>;
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet>;
+       phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi_cec>;
+       ddc-i2c-bus = <&i2c2>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       codec: wm8962@1a {
+               compatible = "wlf,wm8962";
+               reg = <0x1a>;
+               clocks = <&clks IMX6QDL_CLK_CKO>;
+               DCVDD-supply = <&reg_audio>;
+               DBVDD-supply = <&reg_audio>;
+               AVDD-supply = <&reg_audio>;
+               CPVDD-supply = <&reg_audio>;
+               MICVDD-supply = <&reg_audio>;
+               PLLVDD-supply = <&reg_audio>;
+               SPKVDD1-supply = <&reg_audio>;
+               SPKVDD2-supply = <&reg_audio>;
+               gpio-cfg = <
+                       0x0000 /* 0:Default */
+                       0x0000 /* 1:Default */
+                       0x0013 /* 2:FN_DMICCLK */
+                       0x0000 /* 3:Default */
+                       0x8014 /* 4:FN_DMICCDAT */
+                       0x0000 /* 5:Default */
+               >;
+       };
+
+       ov5642: camera@3c {
+               compatible = "ovti,ov5642";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ov5642>;
+               clocks = <&clks IMX6QDL_CLK_CKO>;
+               clock-names = "xclk";
+               reg = <0x3c>;
+               DOVDD-supply = <&vgen4_reg>; /* 1.8v */
+               AVDD-supply = <&vgen3_reg>;  /* 2.8v, rev C board is VGEN3
+                                               rev B board is VGEN5 */
+               DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
+               powerdown-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+               status = "disabled";
+
+               port {
+                       ov5642_to_ipu1_csi0_mux: endpoint {
+                               remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                               hsync-active = <1>;
+                               vsync-active = <1>;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+
+       ov5640: camera@3c {
+               compatible = "ovti,ov5640";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ov5640>;
+               reg = <0x3c>;
+               clocks = <&clks IMX6QDL_CLK_CKO>;
+               clock-names = "xclk";
+               DOVDD-supply = <&vgen4_reg>; /* 1.8v */
+               AVDD-supply = <&vgen3_reg>;  /* 2.8v, rev C board is VGEN3
+                                               rev B board is VGEN5 */
+               DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
+               powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
+
+               port {
+                       ov5640_to_mipi_csi2: endpoint {
+                               remote-endpoint = <&mipi_csi2_in>;
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+
+       pmic: pfuze100@8 {
+               compatible = "fsl,pfuze100";
+               reg = <0x08>;
+
+               regulators {
+                       sw1a_reg: sw1ab {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw1c_reg: sw1c {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw3a_reg: sw3a {
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3b_reg: sw3b {
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw4_reg: sw4 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                       };
+
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vref_reg: vrefddr {
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vgen1_reg: vgen1 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       vgen4_reg: vgen4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen5_reg: vgen5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen6_reg: vgen6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+
+       egalax_ts@4 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
+               interrupt-parent = <&gpio6>;
+               interrupts = <7 2>;
+               wakeup-gpios = <&gpio6 7 0>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       imx6qdl-sabresd {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
+                               MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
+                               MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
+                               MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
+                               MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x130b0
+                               MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x1b0b0
+                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0
+                               MX6QDL_PAD_EIM_D22__GPIO3_IO22  0x1b0b0
+                               MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0
+                       >;
+               };
+
+               pinctrl_audmux: audmuxgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT7__AUD3_RXD          0x130b0
+                               MX6QDL_PAD_CSI0_DAT4__AUD3_TXC          0x130b0
+                               MX6QDL_PAD_CSI0_DAT5__AUD3_TXD          0x110b0
+                               MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS         0x130b0
+                       >;
+               };
+
+               pinctrl_ecspi1: ecspi1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL1__ECSPI1_MISO        0x100b1
+                               MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI        0x100b1
+                               MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK        0x100b1
+                               MX6QDL_PAD_KEY_ROW1__GPIO4_IO09         0x1b0b0
+                       >;
+               };
+
+               pinctrl_enet: enetgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
+                               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
+                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
+                       >;
+               };
+
+               pinctrl_gpio_keys: gpio_keysgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b0
+                               MX6QDL_PAD_GPIO_4__GPIO1_IO04  0x1b0b0
+                               MX6QDL_PAD_GPIO_5__GPIO1_IO05  0x1b0b0
+                       >;
+               };
+
+               pinctrl_hdmi_cec: hdmicecgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE   0x1f8b0
+                       >;
+               };
+
+               pinctrl_i2c1: i2c1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT8__I2C1_SDA          0x4001b8b1
+                               MX6QDL_PAD_CSI0_DAT9__I2C1_SCL          0x4001b8b1
+                       >;
+               };
+
+               pinctrl_i2c2: i2c2grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
+                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
+                       >;
+               };
+
+               pinctrl_i2c3: i2c3grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
+                               MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
+                       >;
+               };
+
+               pinctrl_ipu1_csi0: ipu1csi0grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19    0x1b0b0
+                               MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK   0x1b0b0
+                               MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC      0x1b0b0
+                               MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC     0x1b0b0
+                       >;
+               };
+
+               pinctrl_ov5640: ov5640grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_DAT2__GPIO1_IO19 0x1b0b0
+                               MX6QDL_PAD_SD1_CLK__GPIO1_IO20  0x1b0b0
+                       >;
+               };
+
+               pinctrl_ov5642: ov5642grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x1b0b0
+                               MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b0
+                       >;
+               };
+
+               pinctrl_pcie: pciegrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_17__GPIO7_IO12  0x1b0b0
+                       >;
+               };
+
+               pinctrl_pcie_reg: pciereggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D19__GPIO3_IO19  0x1b0b0
+                       >;
+               };
+
+               pinctrl_pwm1: pwm1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_DAT3__PWM1_OUT           0x1b0b1
+                       >;
+               };
+
+               pinctrl_uart1: uart1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA    0x1b0b1
+                               MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA    0x1b0b1
+                       >;
+               };
+
+               pinctrl_usbotg: usbotggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID       0x17059
+                       >;
+               };
+
+               pinctrl_usdhc2: usdhc2grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD2_CMD__SD2_CMD             0x17059
+                               MX6QDL_PAD_SD2_CLK__SD2_CLK             0x10059
+                               MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x17059
+                               MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x17059
+                               MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x17059
+                               MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x17059
+                               MX6QDL_PAD_NANDF_D4__SD2_DATA4          0x17059
+                               MX6QDL_PAD_NANDF_D5__SD2_DATA5          0x17059
+                               MX6QDL_PAD_NANDF_D6__SD2_DATA6          0x17059
+                               MX6QDL_PAD_NANDF_D7__SD2_DATA7          0x17059
+                       >;
+               };
+
+               pinctrl_usdhc3: usdhc3grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
+                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
+                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
+                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
+                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
+                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
+                               MX6QDL_PAD_SD3_DAT4__SD3_DATA4          0x17059
+                               MX6QDL_PAD_SD3_DAT5__SD3_DATA5          0x17059
+                               MX6QDL_PAD_SD3_DAT6__SD3_DATA6          0x17059
+                               MX6QDL_PAD_SD3_DAT7__SD3_DATA7          0x17059
+                       >;
+               };
+
+               pinctrl_usdhc4: usdhc4grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD4_CMD__SD4_CMD             0x17059
+                               MX6QDL_PAD_SD4_CLK__SD4_CLK             0x10059
+                               MX6QDL_PAD_SD4_DAT0__SD4_DATA0          0x17059
+                               MX6QDL_PAD_SD4_DAT1__SD4_DATA1          0x17059
+                               MX6QDL_PAD_SD4_DAT2__SD4_DATA2          0x17059
+                               MX6QDL_PAD_SD4_DAT3__SD4_DATA3          0x17059
+                               MX6QDL_PAD_SD4_DAT4__SD4_DATA4          0x17059
+                               MX6QDL_PAD_SD4_DAT5__SD4_DATA5          0x17059
+                               MX6QDL_PAD_SD4_DAT6__SD4_DATA6          0x17059
+                               MX6QDL_PAD_SD4_DAT7__SD4_DATA7          0x17059
+                       >;
+               };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_1__WDOG2_B              0x1b0b0
+                       >;
+               };
+       };
+
+       gpio_leds {
+               pinctrl_gpio_leds: gpioledsgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
+                       >;
+               };
+       };
+};
+
+&ldb {
+       status = "okay";
+
+       lvds-channel@1 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <18>;
+               status = "okay";
+
+               port@4 {
+                       reg = <4>;
+
+                       lvds0_out: endpoint {
+                               remote-endpoint = <&panel_in>;
+                       };
+               };
+       };
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie>;
+       reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
+       vpcie-supply = <&reg_pcie>;
+       status = "okay";
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+       status = "okay";
+};
+
+&reg_arm {
+       vin-supply = <&sw1a_reg>;
+};
+
+&reg_pu {
+       vin-supply = <&sw1c_reg>;
+};
+
+&reg_soc {
+       vin-supply = <&sw1c_reg>;
+};
+
+&snvs_poweroff {
+       status = "okay";
+};
+
+&ssi2 {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       bus-width = <8>;
+       cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       bus-width = <8>;
+       cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&usdhc4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc4>;
+       bus-width = <8>;
+       non-removable;
+       no-1-8-v;
+       status = "okay";
+};
+
+&wdog1 {
+       status = "disabled";
+};
+
+&wdog2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
index b13b0b2..e4daf15 100644 (file)
@@ -1,21 +1,23 @@
-/*
- * Copyright 2011 Freescale Semiconductor, Inc.
- * Copyright 2011 Linaro Ltd.
- *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
- *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
- */
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2011 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
 
 #include <dt-bindings/clock/imx6qdl-clock.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
-#include "skeleton.dtsi"
-
 / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       /*
+        * The decompressor and also some bootloaders rely on a
+        * pre-existing /chosen node to be available to insert the
+        * command line and merge other ATAGS info.
+        * Also for U-Boot there must be a pre-existing /memory node.
+        */
+       chosen {};
+       memory { device_type = "memory"; };
+
        aliases {
                ethernet0 = &fec;
                can0 = &can1;
@@ -49,9 +51,6 @@
        };
 
        clocks {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
                ckil {
                        compatible = "fsl,imx-ckil", "fixed-clock";
                        #clock-cells = <0>;
                };
        };
 
+       tempmon: tempmon {
+               compatible = "fsl,imx6q-tempmon";
+               interrupt-parent = <&gpc>;
+               interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
+               fsl,tempmon = <&anatop>;
+               fsl,tempmon-data = <&ocotp>;
+               clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
+       };
+
+       ldb: ldb {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
+               gpr = <&gpr>;
+               status = "disabled";
+
+               lvds-channel@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       status = "disabled";
+
+                       port@0 {
+                               reg = <0>;
+
+                               lvds0_mux_0: endpoint {
+                                       remote-endpoint = <&ipu1_di0_lvds0>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               lvds0_mux_1: endpoint {
+                                       remote-endpoint = <&ipu1_di1_lvds0>;
+                               };
+                       };
+               };
+
+               lvds-channel@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       status = "disabled";
+
+                       port@0 {
+                               reg = <0>;
+
+                               lvds1_mux_0: endpoint {
+                                       remote-endpoint = <&ipu1_di0_lvds1>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               lvds1_mux_1: endpoint {
+                                       remote-endpoint = <&ipu1_di1_lvds1>;
+                               };
+                       };
+               };
+       };
+
+       pmu: pmu {
+               compatible = "arm,cortex-a9-pmu";
+               interrupt-parent = <&gpc>;
+               interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
        soc {
                #address-cells = <1>;
                #size-cells = <1>;
                interrupt-parent = <&gpc>;
                ranges;
 
-               dma_apbh: dma-apbh@00110000 {
+               dma_apbh: dma-apbh@110000 {
                        compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
                        reg = <0x00110000 0x2000>;
                        interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
                        clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
                };
 
-               gpmi: gpmi-nand@00112000 {
+               gpmi: gpmi-nand@112000 {
                        compatible = "fsl,imx6q-gpmi-nand";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        status = "disabled";
                };
 
-               hdmi: hdmi@0120000 {
+               hdmi: hdmi@120000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x00120000 0x9000>;
                        };
                };
 
-               gpu_3d: gpu@00130000 {
+               gpu_3d: gpu@130000 {
                        compatible = "vivante,gc";
                        reg = <0x00130000 0x4000>;
                        interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
                                 <&clks IMX6QDL_CLK_GPU3D_CORE>,
                                 <&clks IMX6QDL_CLK_GPU3D_SHADER>;
                        clock-names = "bus", "core", "shader";
-                       power-domains = <&gpc 1>;
+                       power-domains = <&pd_pu>;
                };
 
-               gpu_2d: gpu@00134000 {
+               gpu_2d: gpu@134000 {
                        compatible = "vivante,gc";
                        reg = <0x00134000 0x4000>;
                        interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clks IMX6QDL_CLK_GPU2D_AXI>,
                                 <&clks IMX6QDL_CLK_GPU2D_CORE>;
                        clock-names = "bus", "core";
-                       power-domains = <&gpc 1>;
+                       power-domains = <&pd_pu>;
                };
 
-               timer@00a00600 {
+               timer@a00600 {
                        compatible = "arm,cortex-a9-twd-timer";
                        reg = <0x00a00600 0x20>;
                        interrupts = <1 13 0xf01>;
                        clocks = <&clks IMX6QDL_CLK_TWD>;
                };
 
-               intc: interrupt-controller@00a01000 {
+               intc: interrupt-controller@a01000 {
                        compatible = "arm,cortex-a9-gic";
                        #interrupt-cells = <3>;
                        interrupt-controller;
                        interrupt-parent = <&intc>;
                };
 
-               L2: l2-cache@00a02000 {
+               L2: l2-cache@a02000 {
                        compatible = "arm,pl310-cache";
                        reg = <0x00a02000 0x1000>;
                        interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
                        arm,shared-override;
                };
 
-               pcie: pcie@0x01000000 {
+               pcie: pcie@1ffc000 {
                        compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
                        reg = <0x01ffc000 0x04000>,
                              <0x01f00000 0x80000>;
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
+                       bus-range = <0x00 0xff>;
                        ranges = <0x81000000 0 0          0x01f80000 0 0x00010000 /* downstream I/O */
                                  0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
                        num-lanes = <1>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 0x7>;
                        interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+                                       <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,
                                 <&clks IMX6QDL_CLK_LVDS1_GATE>,
                                 <&clks IMX6QDL_CLK_PCIE_REF_125M>;
                        status = "disabled";
                };
 
-               pmu {
-                       compatible = "arm,cortex-a9-pmu";
-                       interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
-               };
-
-               aips-bus@02000000 { /* AIPS1 */
+               aips-bus@2000000 { /* AIPS1 */
                        compatible = "fsl,aips-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        reg = <0x02000000 0x100000>;
                        ranges;
 
-                       spba-bus@02000000 {
+                       spba-bus@2000000 {
                                compatible = "fsl,spba-bus", "simple-bus";
                                #address-cells = <1>;
                                #size-cells = <1>;
                                reg = <0x02000000 0x40000>;
                                ranges;
 
-                               spdif: spdif@02004000 {
+                               spdif: spdif@2004000 {
                                        compatible = "fsl,imx35-spdif";
                                        reg = <0x02004000 0x4000>;
                                        interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
                                        status = "disabled";
                                };
 
-                               ecspi1: ecspi@02008000 {
+                               ecspi1: spi@2008000 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
                                        status = "disabled";
                                };
 
-                               ecspi2: ecspi@0200c000 {
+                               ecspi2: spi@200c000 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
                                        status = "disabled";
                                };
 
-                               ecspi3: ecspi@02010000 {
+                               ecspi3: spi@2010000 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
                                        status = "disabled";
                                };
 
-                               ecspi4: ecspi@02014000 {
+                               ecspi4: spi@2014000 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
                                        status = "disabled";
                                };
 
-                               uart1: serial@02020000 {
+                               uart1: serial@2020000 {
                                        compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
                                        reg = <0x02020000 0x4000>;
                                        interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
                                        status = "disabled";
                                };
 
-                               esai: esai@02024000 {
+                               esai: esai@2024000 {
                                        #sound-dai-cells = <0>;
                                        compatible = "fsl,imx35-esai";
                                        reg = <0x02024000 0x4000>;
                                        status = "disabled";
                                };
 
-                               ssi1: ssi@02028000 {
+                               ssi1: ssi@2028000 {
                                        #sound-dai-cells = <0>;
                                        compatible = "fsl,imx6q-ssi",
                                                        "fsl,imx51-ssi";
                                        status = "disabled";
                                };
 
-                               ssi2: ssi@0202c000 {
+                               ssi2: ssi@202c000 {
                                        #sound-dai-cells = <0>;
                                        compatible = "fsl,imx6q-ssi",
                                                        "fsl,imx51-ssi";
                                        status = "disabled";
                                };
 
-                               ssi3: ssi@02030000 {
+                               ssi3: ssi@2030000 {
                                        #sound-dai-cells = <0>;
                                        compatible = "fsl,imx6q-ssi",
                                                        "fsl,imx51-ssi";
                                        status = "disabled";
                                };
 
-                               asrc: asrc@02034000 {
+                               asrc: asrc@2034000 {
                                        compatible = "fsl,imx53-asrc";
                                        reg = <0x02034000 0x4000>;
                                        interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
                                        status = "okay";
                                };
 
-                               spba@0203c000 {
+                               spba@203c000 {
                                        reg = <0x0203c000 0x4000>;
                                };
                        };
 
-                       vpu: vpu@02040000 {
+                       vpu: vpu@2040000 {
                                compatible = "cnm,coda960";
                                reg = <0x02040000 0x3c000>;
                                interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>,
                                clocks = <&clks IMX6QDL_CLK_VPU_AXI>,
                                         <&clks IMX6QDL_CLK_MMDC_CH0_AXI>;
                                clock-names = "per", "ahb";
-                               power-domains = <&gpc 1>;
+                               power-domains = <&pd_pu>;
                                resets = <&src 1>;
                                iram = <&ocram>;
                        };
 
-                       aipstz@0207c000 { /* AIPSTZ1 */
+                       aipstz@207c000 { /* AIPSTZ1 */
                                reg = <0x0207c000 0x4000>;
                        };
 
-                       pwm1: pwm@02080000 {
+                       pwm1: pwm@2080000 {
                                #pwm-cells = <2>;
                                compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
                                reg = <0x02080000 0x4000>;
                                status = "disabled";
                        };
 
-                       pwm2: pwm@02084000 {
+                       pwm2: pwm@2084000 {
                                #pwm-cells = <2>;
                                compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
                                reg = <0x02084000 0x4000>;
                                status = "disabled";
                        };
 
-                       pwm3: pwm@02088000 {
+                       pwm3: pwm@2088000 {
                                #pwm-cells = <2>;
                                compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
                                reg = <0x02088000 0x4000>;
                                status = "disabled";
                        };
 
-                       pwm4: pwm@0208c000 {
+                       pwm4: pwm@208c000 {
                                #pwm-cells = <2>;
                                compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
                                reg = <0x0208c000 0x4000>;
                                status = "disabled";
                        };
 
-                       can1: flexcan@02090000 {
+                       can1: flexcan@2090000 {
                                compatible = "fsl,imx6q-flexcan";
                                reg = <0x02090000 0x4000>;
                                interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       can2: flexcan@02094000 {
+                       can2: flexcan@2094000 {
                                compatible = "fsl,imx6q-flexcan";
                                reg = <0x02094000 0x4000>;
                                interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       gpt: gpt@02098000 {
+                       gpt: gpt@2098000 {
                                compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
                                reg = <0x02098000 0x4000>;
                                interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
                                clock-names = "ipg", "per", "osc_per";
                        };
 
-                       gpio1: gpio@0209c000 {
+                       gpio1: gpio@209c000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x0209c000 0x4000>;
                                interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
                                #interrupt-cells = <2>;
                        };
 
-                       gpio2: gpio@020a0000 {
+                       gpio2: gpio@20a0000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020a0000 0x4000>;
                                interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
                                #interrupt-cells = <2>;
                        };
 
-                       gpio3: gpio@020a4000 {
+                       gpio3: gpio@20a4000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020a4000 0x4000>;
                                interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
                                #interrupt-cells = <2>;
                        };
 
-                       gpio4: gpio@020a8000 {
+                       gpio4: gpio@20a8000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020a8000 0x4000>;
                                interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
                                #interrupt-cells = <2>;
                        };
 
-                       gpio5: gpio@020ac000 {
+                       gpio5: gpio@20ac000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020ac000 0x4000>;
                                interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
                                #interrupt-cells = <2>;
                        };
 
-                       gpio6: gpio@020b0000 {
+                       gpio6: gpio@20b0000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020b0000 0x4000>;
                                interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>,
                                #interrupt-cells = <2>;
                        };
 
-                       gpio7: gpio@020b4000 {
+                       gpio7: gpio@20b4000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020b4000 0x4000>;
                                interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>,
                                #interrupt-cells = <2>;
                        };
 
-                       kpp: kpp@020b8000 {
+                       kpp: kpp@20b8000 {
                                compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp";
                                reg = <0x020b8000 0x4000>;
                                interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       wdog1: wdog@020bc000 {
+                       wdog1: wdog@20bc000 {
                                compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
                                reg = <0x020bc000 0x4000>;
                                interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6QDL_CLK_DUMMY>;
                        };
 
-                       wdog2: wdog@020c0000 {
+                       wdog2: wdog@20c0000 {
                                compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
                                reg = <0x020c0000 0x4000>;
                                interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       clks: ccm@020c4000 {
+                       clks: ccm@20c4000 {
                                compatible = "fsl,imx6q-ccm";
                                reg = <0x020c4000 0x4000>;
                                interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
                                #clock-cells = <1>;
                        };
 
-                       anatop: anatop@020c8000 {
+                       anatop: anatop@20c8000 {
                                compatible = "fsl,imx6q-anatop", "syscon", "simple-bus";
                                reg = <0x020c8000 0x1000>;
                                interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
                                regulator-1p1 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd1p1";
-                                       regulator-min-microvolt = <800000>;
-                                       regulator-max-microvolt = <1375000>;
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1200000>;
                                        regulator-always-on;
                                        anatop-reg-offset = <0x110>;
                                        anatop-vol-bit-shift = <8>;
                                        anatop-min-bit-val = <4>;
                                        anatop-min-voltage = <800000>;
                                        anatop-max-voltage = <1375000>;
+                                       anatop-enable-bit = <0>;
                                };
 
                                regulator-3p0 {
                                        anatop-min-bit-val = <0>;
                                        anatop-min-voltage = <2625000>;
                                        anatop-max-voltage = <3400000>;
+                                       anatop-enable-bit = <0>;
                                };
 
                                regulator-2p5 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd2p5";
-                                       regulator-min-microvolt = <2000000>;
+                                       regulator-min-microvolt = <2250000>;
                                        regulator-max-microvolt = <2750000>;
                                        regulator-always-on;
                                        anatop-reg-offset = <0x130>;
                                        anatop-vol-bit-shift = <8>;
                                        anatop-vol-bit-width = <5>;
                                        anatop-min-bit-val = <0>;
-                                       anatop-min-voltage = <2000000>;
-                                       anatop-max-voltage = <2750000>;
+                                       anatop-min-voltage = <2100000>;
+                                       anatop-max-voltage = <2875000>;
+                                       anatop-enable-bit = <0>;
                                };
 
                                reg_arm: regulator-vddcore {
                                };
                        };
 
-                       tempmon: tempmon {
-                               compatible = "fsl,imx6q-tempmon";
-                               interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
-                               fsl,tempmon = <&anatop>;
-                               fsl,tempmon-data = <&ocotp>;
-                               clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-                       };
-
-                       usbphy1: usbphy@020c9000 {
+                       usbphy1: usbphy@20c9000 {
                                compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
                                reg = <0x020c9000 0x1000>;
                                interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
                                fsl,anatop = <&anatop>;
                        };
 
-                       usbphy2: usbphy@020ca000 {
+                       usbphy2: usbphy@20ca000 {
                                compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
                                reg = <0x020ca000 0x1000>;
                                interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
                                fsl,anatop = <&anatop>;
                        };
 
-                       snvs: snvs@020cc000 {
+                       snvs: snvs@20cc000 {
                                compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
                                reg = <0x020cc000 0x4000>;
 
                                        compatible = "syscon-poweroff";
                                        regmap = <&snvs>;
                                        offset = <0x38>;
+                                       value = <0x60>;
                                        mask = <0x60>;
                                        status = "disabled";
                                };
+
+                               snvs_lpgpr: snvs-lpgpr {
+                                       compatible = "fsl,imx6q-snvs-lpgpr";
+                               };
                        };
 
-                       epit1: epit@020d0000 { /* EPIT1 */
+                       epit1: epit@20d0000 { /* EPIT1 */
                                reg = <0x020d0000 0x4000>;
                                interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       epit2: epit@020d4000 { /* EPIT2 */
+                       epit2: epit@20d4000 { /* EPIT2 */
                                reg = <0x020d4000 0x4000>;
                                interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       src: src@020d8000 {
+                       src: src@20d8000 {
                                compatible = "fsl,imx6q-src", "fsl,imx51-src";
                                reg = <0x020d8000 0x4000>;
                                interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
                                #reset-cells = <1>;
                        };
 
-                       gpc: gpc@020dc000 {
+                       gpc: gpc@20dc000 {
                                compatible = "fsl,imx6q-gpc";
                                reg = <0x020dc000 0x4000>;
                                interrupt-controller;
                                interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
                                             <0 90 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&intc>;
-                               pu-supply = <&reg_pu>;
-                               clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
-                                        <&clks IMX6QDL_CLK_GPU3D_SHADER>,
-                                        <&clks IMX6QDL_CLK_GPU2D_CORE>,
-                                        <&clks IMX6QDL_CLK_GPU2D_AXI>,
-                                        <&clks IMX6QDL_CLK_OPENVG_AXI>,
-                                        <&clks IMX6QDL_CLK_VPU_AXI>;
-                               #power-domain-cells = <1>;
-                       };
-
-                       gpr: iomuxc-gpr@020e0000 {
-                               compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
-                               reg = <0x020e0000 0x38>;
-                       };
-
-                       iomuxc: iomuxc@020e0000 {
-                               compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
-                               reg = <0x020e0000 0x4000>;
-                       };
-
-                       ldb: ldb@020e0008 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
-                               gpr = <&gpr>;
-                               status = "disabled";
+                               clocks = <&clks IMX6QDL_CLK_IPG>;
+                               clock-names = "ipg";
 
-                               lvds-channel@0 {
+                               pgc {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
-                                       reg = <0>;
-                                       status = "disabled";
 
-                                       port@0 {
+                                       power-domain@0 {
                                                reg = <0>;
-
-                                               lvds0_mux_0: endpoint {
-                                                       remote-endpoint = <&ipu1_di0_lvds0>;
-                                               };
+                                               #power-domain-cells = <0>;
                                        };
-
-                                       port@1 {
+                                       pd_pu: power-domain@1 {
                                                reg = <1>;
-
-                                               lvds0_mux_1: endpoint {
-                                                       remote-endpoint = <&ipu1_di1_lvds0>;
-                                               };
+                                               #power-domain-cells = <0>;
+                                               power-supply = <&reg_pu>;
+                                               clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
+                                                        <&clks IMX6QDL_CLK_GPU3D_SHADER>,
+                                                        <&clks IMX6QDL_CLK_GPU2D_CORE>,
+                                                        <&clks IMX6QDL_CLK_GPU2D_AXI>,
+                                                        <&clks IMX6QDL_CLK_OPENVG_AXI>,
+                                                        <&clks IMX6QDL_CLK_VPU_AXI>;
                                        };
                                };
+                       };
 
-                               lvds-channel@1 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <1>;
-                                       status = "disabled";
-
-                                       port@0 {
-                                               reg = <0>;
-
-                                               lvds1_mux_0: endpoint {
-                                                       remote-endpoint = <&ipu1_di0_lvds1>;
-                                               };
-                                       };
+                       gpr: iomuxc-gpr@20e0000 {
+                               compatible = "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
+                               reg = <0x20e0000 0x38>;
 
-                                       port@1 {
-                                               reg = <1>;
-
-                                               lvds1_mux_1: endpoint {
-                                                       remote-endpoint = <&ipu1_di1_lvds1>;
-                                               };
-                                       };
+                               mux: mux-controller {
+                                       compatible = "mmio-mux";
+                                       #mux-control-cells = <1>;
                                };
                        };
 
-                       dcic1: dcic@020e4000 {
+                       iomuxc: iomuxc@20e0000 {
+                               compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
+                               reg = <0x20e0000 0x4000>;
+                       };
+
+                       dcic1: dcic@20e4000 {
                                reg = <0x020e4000 0x4000>;
                                interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       dcic2: dcic@020e8000 {
+                       dcic2: dcic@20e8000 {
                                reg = <0x020e8000 0x4000>;
                                interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       sdma: sdma@020ec000 {
+                       sdma: sdma@20ec000 {
                                compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
                                reg = <0x020ec000 0x4000>;
                                interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
 
-               aips-bus@02100000 { /* AIPS2 */
+               aips-bus@2100000 { /* AIPS2 */
                        compatible = "fsl,aips-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
 
                        crypto: caam@2100000 {
                                compatible = "fsl,sec-v4.0";
-                               fsl,sec-era = <4>;
                                #address-cells = <1>;
                                #size-cells = <1>;
                                reg = <0x2100000 0x10000>;
                                };
                        };
 
-                       aipstz@0217c000 { /* AIPSTZ2 */
+                       aipstz@217c000 { /* AIPSTZ2 */
                                reg = <0x0217c000 0x4000>;
                        };
 
-                       usbotg: usb@02184000 {
+                       usbotg: usb@2184000 {
                                compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
                                reg = <0x02184000 0x200>;
                                interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usbh1: usb@02184200 {
+                       usbh1: usb@2184200 {
                                compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
                                reg = <0x02184200 0x200>;
                                interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usbh2: usb@02184400 {
+                       usbh2: usb@2184400 {
                                compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
                                reg = <0x02184400 0x200>;
                                interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usbh3: usb@02184600 {
+                       usbh3: usb@2184600 {
                                compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
                                reg = <0x02184600 0x200>;
                                interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usbmisc: usbmisc@02184800 {
+                       usbmisc: usbmisc@2184800 {
                                #index-cells = <1>;
                                compatible = "fsl,imx6q-usbmisc";
                                reg = <0x02184800 0x200>;
                                clocks = <&clks IMX6QDL_CLK_USBOH3>;
                        };
 
-                       fec: ethernet@02188000 {
+                       fec: ethernet@2188000 {
                                compatible = "fsl,imx6q-fec";
                                reg = <0x02188000 0x4000>;
+                               interrupt-names = "int0", "pps";
                                interrupts-extended =
                                        <&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,
                                        <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       mlb@0218c000 {
+                       mlb@218c000 {
                                reg = <0x0218c000 0x4000>;
                                interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>,
                                             <0 117 IRQ_TYPE_LEVEL_HIGH>,
                                             <0 126 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       usdhc1: usdhc@02190000 {
+                       usdhc1: usdhc@2190000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02190000 0x4000>;
                                interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usdhc2: usdhc@02194000 {
+                       usdhc2: usdhc@2194000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02194000 0x4000>;
                                interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usdhc3: usdhc@02198000 {
+                       usdhc3: usdhc@2198000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02198000 0x4000>;
                                interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usdhc4: usdhc@0219c000 {
+                       usdhc4: usdhc@219c000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x0219c000 0x4000>;
                                interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       i2c1: i2c@021a0000 {
+                       i2c1: i2c@21a0000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
                                status = "disabled";
                        };
 
-                       i2c2: i2c@021a4000 {
+                       i2c2: i2c@21a4000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
                                status = "disabled";
                        };
 
-                       i2c3: i2c@021a8000 {
+                       i2c3: i2c@21a8000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
                                status = "disabled";
                        };
 
-                       romcp@021ac000 {
+                       romcp@21ac000 {
                                reg = <0x021ac000 0x4000>;
                        };
 
-                       mmdc0: mmdc@021b0000 { /* MMDC0 */
+                       mmdc0: mmdc@21b0000 { /* MMDC0 */
                                compatible = "fsl,imx6q-mmdc";
                                reg = <0x021b0000 0x4000>;
                        };
 
-                       mmdc1: mmdc@021b4000 { /* MMDC1 */
+                       mmdc1: mmdc@21b4000 { /* MMDC1 */
                                reg = <0x021b4000 0x4000>;
                        };
 
-                       weim: weim@021b8000 {
+                       weim: weim@21b8000 {
+                               #address-cells = <2>;
+                               #size-cells = <1>;
                                compatible = "fsl,imx6q-weim";
                                reg = <0x021b8000 0x4000>;
                                interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6QDL_CLK_EIM_SLOW>;
+                               fsl,weim-cs-gpr = <&gpr>;
+                               status = "disabled";
                        };
 
-                       ocotp: ocotp@021bc000 {
+                       ocotp: ocotp@21bc000 {
                                compatible = "fsl,imx6q-ocotp", "syscon";
                                reg = <0x021bc000 0x4000>;
                                clocks = <&clks IMX6QDL_CLK_IIM>;
                        };
 
-                       tzasc@021d0000 { /* TZASC1 */
+                       tzasc@21d0000 { /* TZASC1 */
                                reg = <0x021d0000 0x4000>;
                                interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       tzasc@021d4000 { /* TZASC2 */
+                       tzasc@21d4000 { /* TZASC2 */
                                reg = <0x021d4000 0x4000>;
                                interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       audmux: audmux@021d8000 {
+                       audmux: audmux@21d8000 {
                                compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
                                reg = <0x021d8000 0x4000>;
                                status = "disabled";
                        };
 
-                       mipi_csi: mipi@021dc000 {
+                       mipi_csi: mipi@21dc000 {
+                               compatible = "fsl,imx6-mipi-csi2";
                                reg = <0x021dc000 0x4000>;
-                       };
-
-                       mipi_dsi: mipi@021e0000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               interrupts = <0 100 0x04>, <0 101 0x04>;
+                               clocks = <&clks IMX6QDL_CLK_HSI_TX>,
+                                        <&clks IMX6QDL_CLK_VIDEO_27M>,
+                                        <&clks IMX6QDL_CLK_EIM_PODF>;
+                               clock-names = "dphy", "ref", "pix";
+                               status = "disabled";
+                       };
+
+                       mipi_dsi: mipi@21e0000 {
                                reg = <0x021e0000 0x4000>;
                                status = "disabled";
 
                                };
                        };
 
-                       vdoa@021e4000 {
+                       vdoa@21e4000 {
+                               compatible = "fsl,imx6q-vdoa";
                                reg = <0x021e4000 0x4000>;
                                interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX6QDL_CLK_VDOA>;
                        };
 
-                       uart2: serial@021e8000 {
+                       uart2: serial@21e8000 {
                                compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021e8000 0x4000>;
                                interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       uart3: serial@021ec000 {
+                       uart3: serial@21ec000 {
                                compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021ec000 0x4000>;
                                interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       uart4: serial@021f0000 {
+                       uart4: serial@21f0000 {
                                compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021f0000 0x4000>;
                                interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       uart5: serial@021f4000 {
+                       uart5: serial@21f4000 {
                                compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021f4000 0x4000>;
                                interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
 
-               ipu1: ipu@02400000 {
+               ipu1: ipu@2400000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "fsl,imx6q-ipu";
 
                        ipu1_csi0: port@0 {
                                reg = <0>;
+
+                               ipu1_csi0_from_ipu1_csi0_mux: endpoint {
+                                       remote-endpoint = <&ipu1_csi0_mux_to_ipu1_csi0>;
+                               };
                        };
 
                        ipu1_csi1: port@1 {
                                #size-cells = <0>;
                                reg = <2>;
 
-                               ipu1_di0_disp0: disp0-endpoint {
+                               ipu1_di0_disp0: endpoint@0 {
+                                       reg = <0>;
                                };
 
-                               ipu1_di0_hdmi: hdmi-endpoint {
+                               ipu1_di0_hdmi: endpoint@1 {
+                                       reg = <1>;
                                        remote-endpoint = <&hdmi_mux_0>;
                                };
 
-                               ipu1_di0_mipi: mipi-endpoint {
+                               ipu1_di0_mipi: endpoint@2 {
+                                       reg = <2>;
                                        remote-endpoint = <&mipi_mux_0>;
                                };
 
-                               ipu1_di0_lvds0: lvds0-endpoint {
+                               ipu1_di0_lvds0: endpoint@3 {
+                                       reg = <3>;
                                        remote-endpoint = <&lvds0_mux_0>;
                                };
 
-                               ipu1_di0_lvds1: lvds1-endpoint {
+                               ipu1_di0_lvds1: endpoint@4 {
+                                       reg = <4>;
                                        remote-endpoint = <&lvds1_mux_0>;
                                };
                        };
                                #size-cells = <0>;
                                reg = <3>;
 
-                               ipu1_di1_disp1: disp1-endpoint {
+                               ipu1_di1_disp1: endpoint@0 {
+                                       reg = <0>;
                                };
 
-                               ipu1_di1_hdmi: hdmi-endpoint {
+                               ipu1_di1_hdmi: endpoint@1 {
+                                       reg = <1>;
                                        remote-endpoint = <&hdmi_mux_1>;
                                };
 
-                               ipu1_di1_mipi: mipi-endpoint {
+                               ipu1_di1_mipi: endpoint@2 {
+                                       reg = <2>;
                                        remote-endpoint = <&mipi_mux_1>;
                                };
 
-                               ipu1_di1_lvds0: lvds0-endpoint {
+                               ipu1_di1_lvds0: endpoint@3 {
+                                       reg = <3>;
                                        remote-endpoint = <&lvds0_mux_1>;
                                };
 
-                               ipu1_di1_lvds1: lvds1-endpoint {
+                               ipu1_di1_lvds1: endpoint@4 {
+                                       reg = <4>;
                                        remote-endpoint = <&lvds1_mux_1>;
                                };
                        };
diff --git a/arch/arm/dts/imx6qp-sabreauto.dts b/arch/arm/dts/imx6qp-sabreauto.dts
new file mode 100644 (file)
index 0000000..d4caeeb
--- /dev/null
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright 2016 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx6qp.dtsi"
+#include "imx6qdl-sabreauto.dtsi"
+
+/ {
+       model = "Freescale i.MX6 Quad Plus SABRE Automotive Board";
+       compatible = "fsl,imx6qp-sabreauto", "fsl,imx6qp";
+};
+
+&i2c2 {
+       max7322: gpio@68 {
+               compatible = "maxim,max7322";
+               reg = <0x68>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&iomuxc {
+       imx6qdl-sabreauto {
+               pinctrl_enet: enetgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL1__ENET_MDIO          0x1b0b0
+                               MX6QDL_PAD_KEY_COL2__ENET_MDC           0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b018
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b018
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b018
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b018
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b018
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b018
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b018
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b018
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b018
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b018
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b018
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b018
+                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
+                               MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
+                       >;
+               };
+       };
+};
+
+&pcie {
+       status = "disabled";
+};
+
+&vgen3_reg {
+       regulator-always-on;
+};
diff --git a/arch/arm/dts/imx6qp-sabresd.dts b/arch/arm/dts/imx6qp-sabresd.dts
new file mode 100644 (file)
index 0000000..f1b9cb1
--- /dev/null
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright 2016 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx6qp.dtsi"
+#include "imx6qdl-sabresd.dtsi"
+
+/ {
+       model = "Freescale i.MX6 Quad Plus SABRE Smart Device Board";
+       compatible = "fsl,imx6qp-sabresd", "fsl,imx6qp";
+};
+
+&reg_arm {
+       vin-supply = <&sw2_reg>;
+};
+
+&iomuxc {
+       imx6qdl-sabresd {
+               pinctrl_usdhc2: usdhc2grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD2_CMD__SD2_CMD             0x17059
+                               MX6QDL_PAD_SD2_CLK__SD2_CLK             0x10071
+                               MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x17059
+                               MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x17059
+                               MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x17059
+                               MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x17059
+                               MX6QDL_PAD_NANDF_D4__SD2_DATA4          0x17059
+                               MX6QDL_PAD_NANDF_D5__SD2_DATA5          0x17059
+                               MX6QDL_PAD_NANDF_D6__SD2_DATA6          0x17059
+                               MX6QDL_PAD_NANDF_D7__SD2_DATA7          0x17059
+                       >;
+               };
+
+               pinctrl_usdhc3: usdhc3grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
+                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10071
+                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
+                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
+                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
+                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
+                               MX6QDL_PAD_SD3_DAT4__SD3_DATA4          0x17059
+                               MX6QDL_PAD_SD3_DAT5__SD3_DATA5          0x17059
+                               MX6QDL_PAD_SD3_DAT6__SD3_DATA6          0x17059
+                               MX6QDL_PAD_SD3_DAT7__SD3_DATA7          0x17059
+                       >;
+               };
+       };
+};
+
+&pcie {
+       status = "disabled";
+};
diff --git a/arch/arm/dts/imx6qp.dtsi b/arch/arm/dts/imx6qp.dtsi
new file mode 100644 (file)
index 0000000..5f51f8e
--- /dev/null
@@ -0,0 +1,115 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright 2016 Freescale Semiconductor, Inc.
+
+#include "imx6q.dtsi"
+
+/ {
+       soc {
+               ocram2: sram@940000 {
+                       compatible = "mmio-sram";
+                       reg = <0x00940000 0x20000>;
+                       clocks = <&clks IMX6QDL_CLK_OCRAM>;
+               };
+
+               ocram3: sram@960000 {
+                       compatible = "mmio-sram";
+                       reg = <0x00960000 0x20000>;
+                       clocks = <&clks IMX6QDL_CLK_OCRAM>;
+               };
+
+               aips-bus@2100000 {
+                       pre1: pre@21c8000 {
+                               compatible = "fsl,imx6qp-pre";
+                               reg = <0x021c8000 0x1000>;
+                               interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clks IMX6QDL_CLK_PRE0>;
+                               clock-names = "axi";
+                               fsl,iram = <&ocram2>;
+                       };
+
+                       pre2: pre@21c9000 {
+                               compatible = "fsl,imx6qp-pre";
+                               reg = <0x021c9000 0x1000>;
+                               interrupts = <GIC_SPI 97 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clks IMX6QDL_CLK_PRE1>;
+                               clock-names = "axi";
+                               fsl,iram = <&ocram2>;
+                       };
+
+                       pre3: pre@21ca000 {
+                               compatible = "fsl,imx6qp-pre";
+                               reg = <0x021ca000 0x1000>;
+                               interrupts = <GIC_SPI 98 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clks IMX6QDL_CLK_PRE2>;
+                               clock-names = "axi";
+                               fsl,iram = <&ocram3>;
+                       };
+
+                       pre4: pre@21cb000 {
+                               compatible = "fsl,imx6qp-pre";
+                               reg = <0x021cb000 0x1000>;
+                               interrupts = <GIC_SPI 99 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clks IMX6QDL_CLK_PRE3>;
+                               clock-names = "axi";
+                               fsl,iram = <&ocram3>;
+                       };
+
+                       prg1: prg@21cc000 {
+                               compatible = "fsl,imx6qp-prg";
+                               reg = <0x021cc000 0x1000>;
+                               clocks = <&clks IMX6QDL_CLK_PRG0_APB>,
+                                        <&clks IMX6QDL_CLK_PRG0_AXI>;
+                               clock-names = "ipg", "axi";
+                               fsl,pres = <&pre1>, <&pre2>, <&pre3>;
+                       };
+
+                       prg2: prg@21cd000 {
+                               compatible = "fsl,imx6qp-prg";
+                               reg = <0x021cd000 0x1000>;
+                               clocks = <&clks IMX6QDL_CLK_PRG1_APB>,
+                                        <&clks IMX6QDL_CLK_PRG1_AXI>;
+                               clock-names = "ipg", "axi";
+                               fsl,pres = <&pre4>, <&pre2>, <&pre3>;
+                       };
+               };
+       };
+};
+
+&fec {
+       /delete-property/interrupts-extended;
+       interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
+                    <0 119 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&gpc {
+       compatible = "fsl,imx6qp-gpc", "fsl,imx6q-gpc";
+};
+
+&ipu1 {
+       compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
+       fsl,prg = <&prg1>;
+};
+
+&ipu2 {
+       compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
+       fsl,prg = <&prg2>;
+};
+
+&ldb {
+       clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
+                <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
+                <&clks IMX6QDL_CLK_IPU2_DI0_SEL>, <&clks IMX6QDL_CLK_IPU2_DI1_SEL>,
+                <&clks IMX6QDL_CLK_LDB_DI0_PODF>, <&clks IMX6QDL_CLK_LDB_DI1_PODF>;
+       clock-names = "di0_pll", "di1_pll",
+                     "di0_sel", "di1_sel", "di2_sel", "di3_sel",
+                     "di0", "di1";
+};
+
+&mmdc0 {
+       compatible = "fsl,imx6qp-mmdc", "fsl,imx6q-mmdc";
+};
+
+&pcie {
+       compatible = "fsl,imx6qp-pcie", "snps,dw-pcie";
+};