MLK-18147-1 arm: dts: mx6dq/dqp/dl/s: Porting DTS and binding files from v2019.04
authorYe Li <ye.li@nxp.com>
Fri, 23 Mar 2018 09:43:06 +0000 (02:43 -0700)
committerYe Li <ye.li@nxp.com>
Thu, 29 Apr 2021 05:03:15 +0000 (22:03 -0700)
Port the DTS and relevent binding files from v2019.04 for i.MX6DQ/DQP/DL/S
Sabreauto and SabreSD boards.

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit bedc2a2223746a8059b80518ec094077c0d4c44d)
(cherry picked from commit 800a1c47f135321f4063e1efccdf244f6edb0500)
(cherry picked from commit e89adf4a3810c0c513cc9040d18380b9f6b6a915)

21 files changed:
arch/arm/dts/Makefile
arch/arm/dts/imx6dl-sabreauto-ecspi.dts [new file with mode: 0644]
arch/arm/dts/imx6dl-sabreauto-gpmi-weim.dts [new file with mode: 0644]
arch/arm/dts/imx6dl-sabreauto.dts
arch/arm/dts/imx6dl-sabresd.dts
arch/arm/dts/imx6dl.dtsi
arch/arm/dts/imx6q-sabreauto-ecspi.dts [new file with mode: 0644]
arch/arm/dts/imx6q-sabreauto-gpmi-weim.dts [new file with mode: 0644]
arch/arm/dts/imx6q-sabreauto.dts
arch/arm/dts/imx6q-sabresd.dts
arch/arm/dts/imx6q.dtsi
arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi
arch/arm/dts/imx6qdl-sabreauto.dtsi
arch/arm/dts/imx6qdl-sabresd.dtsi
arch/arm/dts/imx6qdl.dtsi
arch/arm/dts/imx6qp-sabreauto-ecspi.dts [new file with mode: 0644]
arch/arm/dts/imx6qp-sabreauto-gpmi-weim.dts [new file with mode: 0644]
arch/arm/dts/imx6qp-sabreauto.dts
arch/arm/dts/imx6qp-sabresd.dts
arch/arm/dts/imx6qp.dtsi
include/dt-bindings/clock/imx6qdl-clock.h

index 940c888..94841b2 100644 (file)
@@ -686,6 +686,8 @@ dtb-y += \
        imx6dl-nitrogen6x.dtb \
        imx6dl-pico.dtb \
        imx6dl-sabreauto.dtb \
+       imx6dl-sabreauto-ecspi.dtb \
+       imx6dl-sabreauto-gpmi-weim.dtb \
        imx6dl-sabresd.dtb \
        imx6dl-wandboard-revd1.dtb \
 
@@ -719,11 +721,15 @@ dtb-y += \
        imx6q-pico.dtb \
        imx6q-phytec-mira-rdk-nand.dtb \
        imx6q-sabreauto.dtb \
+       imx6q-sabreauto-ecspi.dtb \
+       imx6q-sabreauto-gpmi-weim.dtb \
        imx6q-sabrelite.dtb \
        imx6q-sabresd.dtb \
        imx6q-tbs2910.dtb \
        imx6q-wandboard-revd1.dtb \
        imx6qp-sabreauto.dtb \
+       imx6qp-sabreauto-ecspi.dtb \
+       imx6qp-sabreauto-gpmi-weim.dtb \
        imx6qp-sabresd.dtb \
        imx6qp-wandboard-revd1.dtb \
 
diff --git a/arch/arm/dts/imx6dl-sabreauto-ecspi.dts b/arch/arm/dts/imx6dl-sabreauto-ecspi.dts
new file mode 100644 (file)
index 0000000..45ae162
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+#include "imx6dl-sabreauto.dts"
+
+&ecspi1 {
+       pinctrl-assert-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&can2 {
+       /* max7310_c on i2c3 is gone */
+       status = "disabled";
+};
+
+&i2c3 {
+       /* pin conflict with ecspi1 */
+       status = "disabled";
+};
+
+&uart3 {
+       /* the uart3 depends on the i2c3, so disable it too. */
+       status = "disabled";
+};
+
+&usbh1 {
+       /* max7310_b on i2c3 is gone */
+       status = "disabled";
+};
+
+&usbotg {
+       dr_mode = "peripheral";
+       status = "okay";
+};
diff --git a/arch/arm/dts/imx6dl-sabreauto-gpmi-weim.dts b/arch/arm/dts/imx6dl-sabreauto-gpmi-weim.dts
new file mode 100644 (file)
index 0000000..ad2e937
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+#include "imx6dl-sabreauto.dts"
+
+&ecspi1 {
+       /* pin conflict with weim */
+       status = "disabled";
+};
+
+&can2 {
+       /* max7310_c on i2c3 is gone */
+       status = "disabled";
+};
+
+&gpmi {
+       status = "okay";
+};
+
+&i2c3 {
+       /* pin conflict with weim */
+       status = "disabled";
+};
+
+&uart3 {
+       /* pin conflict with gpmi and weim */
+       status = "disabled";
+};
+
+&usbh1 {
+       /* max7310_b on i2c3 is gone */
+       status = "disabled";
+};
+
+&usbotg {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&weim {
+       pinctrl-assert-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
index 660d52a..a2d11d1 100644 (file)
@@ -8,6 +8,35 @@
 #include "imx6qdl-sabreauto.dtsi"
 
 / {
-       model = "Freescale i.MX6 DualLite/Solo SABRE Automotive Board";
+       model = "i.MX6 DualLite/Solo SABRE Automotive Board";
        compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl";
 };
+&ldb {
+       lvds-channel@0 {
+               crtc = "ipu1-di0";
+       };
+       lvds-channel@1 {
+               crtc = "ipu1-di1";
+       };
+};
+&mxcfb1 {
+       status = "okay";
+};
+&mxcfb2 {
+       status = "okay";
+};
+
+&cpu0 {
+       operating-points = <
+               /* kHz    uV */
+               996000  1275000
+               792000  1175000
+               396000  1150000
+       >;
+       fsl,soc-operating-points = <
+               /* ARM kHz  SOC-PU uV */
+               996000  1200000
+               792000  1175000
+               396000  1175000
+       >;
+};
index cd6bbf2..8e8481f 100644 (file)
 #include "imx6qdl-sabresd.dtsi"
 
 / {
-       model = "Freescale i.MX6 DualLite SABRE Smart Device Board";
+       model = "i.MX6 DualLite SABRE Smart Device Board";
        compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl";
 };
 
+&battery {
+       offset-charger = <1485>;
+       offset-discharger = <1464>;
+       offset-usb-charger = <1285>;
+};
+
+&iomuxc {
+        epdc {
+                pinctrl_epdc_0: epdcgrp-0 {
+                        fsl,pins = <
+                                MX6QDL_PAD_EIM_A16__EPDC_DATA00    0x80000000
+                                MX6QDL_PAD_EIM_DA10__EPDC_DATA01   0x80000000
+                                MX6QDL_PAD_EIM_DA12__EPDC_DATA02   0x80000000
+                                MX6QDL_PAD_EIM_DA11__EPDC_DATA03   0x80000000
+                                MX6QDL_PAD_EIM_LBA__EPDC_DATA04    0x80000000
+                                MX6QDL_PAD_EIM_EB2__EPDC_DATA05    0x80000000
+                                MX6QDL_PAD_EIM_CS0__EPDC_DATA06    0x80000000
+                                MX6QDL_PAD_EIM_RW__EPDC_DATA07     0x80000000
+                                MX6QDL_PAD_EIM_A21__EPDC_GDCLK     0x80000000
+                                MX6QDL_PAD_EIM_A22__EPDC_GDSP      0x80000000
+                                MX6QDL_PAD_EIM_A23__EPDC_GDOE      0x80000000
+                                MX6QDL_PAD_EIM_A24__EPDC_GDRL      0x80000000
+                                MX6QDL_PAD_EIM_D31__EPDC_SDCLK_P   0x80000000
+                                MX6QDL_PAD_EIM_D27__EPDC_SDOE      0x80000000
+                                MX6QDL_PAD_EIM_DA1__EPDC_SDLE      0x80000000
+                                MX6QDL_PAD_EIM_EB1__EPDC_SDSHR     0x80000000
+                                MX6QDL_PAD_EIM_DA2__EPDC_BDR0      0x80000000
+                                MX6QDL_PAD_EIM_DA4__EPDC_SDCE0     0x80000000
+                                MX6QDL_PAD_EIM_DA5__EPDC_SDCE1     0x80000000
+                                MX6QDL_PAD_EIM_DA6__EPDC_SDCE2     0x80000000
+                        >;
+                };
+        };
+};
+
+&epdc {
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_epdc_0>;
+        V3P3-supply = <&V3P3_reg>;
+        VCOM-supply = <&VCOM_reg>;
+        DISPLAY-supply = <&DISPLAY_reg>;
+        status = "okay";
+};
+
+&i2c3 {
+        max17135@48 {
+                compatible = "maxim,max17135";
+                reg = <0x48>;
+                vneg_pwrup = <1>;
+                gvee_pwrup = <1>;
+                vpos_pwrup = <2>;
+                gvdd_pwrup = <1>;
+                gvdd_pwrdn = <1>;
+                vpos_pwrdn = <2>;
+                gvee_pwrdn = <1>;
+                vneg_pwrdn = <1>;
+                SENSOR-supply = <&reg_sensor>;
+                gpio_pmic_pwrgood = <&gpio2 21 0>;
+                gpio_pmic_vcom_ctrl = <&gpio3 17 0>;
+                gpio_pmic_wakeup = <&gpio3 20 0>;
+                gpio_pmic_v3p3 = <&gpio2 20 0>;
+                gpio_pmic_intr = <&gpio2 25 0>;
+
+                regulators {
+                        DISPLAY_reg: DISPLAY {
+                                regulator-name = "DISPLAY";
+                        };
+
+                        GVDD_reg: GVDD {
+                                /* 20v */
+                                regulator-name = "GVDD";
+                        };
+
+                        GVEE_reg: GVEE {
+                                /* -22v */
+                                regulator-name = "GVEE";
+                        };
+
+                        HVINN_reg: HVINN {
+                                /* -22v */
+                                regulator-name = "HVINN";
+                        };
+
+                        HVINP_reg: HVINP {
+                                /* 20v */
+                                regulator-name = "HVINP";
+                        };
+
+                        VCOM_reg: VCOM {
+                                regulator-name = "VCOM";
+                                /* Real max: -500000 */
+                                regulator-max-microvolt = <4325000>;
+                                /* Real min: -4325000 */
+                                regulator-min-microvolt = <500000>;
+                        };
+
+                        VNEG_reg: VNEG {
+                                /* -15v */
+                                regulator-name = "VNEG";
+                        };
+
+                        VPOS_reg: VPOS {
+                                /* 15v */
+                                regulator-name = "VPOS";
+                        };
+
+                        V3P3_reg: V3P3 {
+                                regulator-name = "V3P3";
+                        };
+                };
+        };
+};
+
 &ipu1_csi1_from_ipu1_csi1_mux {
        clock-lanes = <0>;
        data-lanes = <1 2>;
 };
+
+&ldb {
+       lvds-channel@0 {
+               crtc = "ipu1-di0";
+       };
+
+       lvds-channel@1 {
+               crtc = "ipu1-di1";
+       };
+};
+
+&mxcfb1 {
+       status = "okay";
+};
+
+&mxcfb2 {
+       status = "okay";
+};
+
+&pxp {
+       status = "okay";
+};
index f0607eb..269b451 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 //
 // Copyright 2013 Freescale Semiconductor, Inc.
+// Copyright 2018 NXP
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "imx6dl-pinfunc.h"
@@ -15,7 +16,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
-               cpu@0 {
+               cpu0: cpu@0 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <0>;
                                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>,
                                 <&clks IMX6QDL_CLK_PLL1_SW>,
-                                <&clks IMX6QDL_CLK_PLL1_SYS>;
+                                <&clks IMX6QDL_CLK_PLL1_SYS>,
+                                <&clks IMX6QDL_CLK_PLL1>,
+                                <&clks IMX6QDL_PLL1_BYPASS>,
+                                <&clks IMX6QDL_PLL1_BYPASS_SRC>;
                        clock-names = "arm", "pll2_pfd2_396m", "step",
-                                     "pll1_sw", "pll1_sys";
+                                     "pll1_sw", "pll1_sys", "pll1",
+                                     "pll1_bypass", "pll1_bypass_src";
                        arm-supply = <&reg_arm>;
                        pu-supply = <&reg_pu>;
                        soc-supply = <&reg_soc>;
                        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>;
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x14000000>;
+                       linux,cma-default;
                };
        };
 
        soc {
-               ocram: sram@900000 {
+               busfreq {
+                       compatible = "fsl,imx_busfreq";
+                       clocks = <&clks IMX6QDL_CLK_PLL2_BUS>, <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+                               <&clks IMX6QDL_CLK_PLL2_198M>, <&clks IMX6QDL_CLK_ARM>,
+                               <&clks IMX6QDL_CLK_PLL3_USB_OTG>, <&clks IMX6QDL_CLK_PERIPH>,
+                               <&clks IMX6QDL_CLK_PERIPH_PRE>, <&clks IMX6QDL_CLK_PERIPH_CLK2>,
+                               <&clks IMX6QDL_CLK_PERIPH_CLK2_SEL>, <&clks IMX6QDL_CLK_OSC>,
+                               <&clks IMX6QDL_CLK_AXI_ALT_SEL>, <&clks IMX6QDL_CLK_AXI_SEL> ,
+                               <&clks IMX6QDL_CLK_PLL3_PFD1_540M>;
+                       clock-names = "pll2_bus", "pll2_pfd2_396m", "pll2_198m", "arm", "pll3_usb_otg", "periph",
+                               "periph_pre", "periph_clk2", "periph_clk2_sel", "osc", "axi_alt_sel", "axi_sel", "pll3_pfd1_540m";
+                       interrupts = <0 107 0x04>, <0 112 0x4>;
+                       interrupt-names = "irq_busfreq_0", "irq_busfreq_1";
+                       fsl,max_ddr_freq = <400000000>;
+               };
+
+               ocram: sram@905000 {
                        compatible = "mmio-sram";
-                       reg = <0x00900000 0x20000>;
+                       reg = <0x905000 0x1B000>;
                        clocks = <&clks IMX6QDL_CLK_OCRAM>;
                };
 
-               aips1: aips-bus@2000000 {
-                       iomuxc: iomuxc@20e0000 {
-                               compatible = "fsl,imx6dl-iomuxc";
-                       };
+               ocram_optee: sram@918000 {
+                       compatible = "fsl,optee-lpm-sram";
+                       reg = <0x918000 0x8000>;
+                       overw_reg = <&ocram 0x905000 0x13000>;
+               };
 
+               gpu: gpu@00130000 {
+                       compatible = "fsl,imx6dl-gpu", "fsl,imx6q-gpu";
+                       reg = <0x00130000 0x4000>, <0x00134000 0x4000>,
+                             <0x10000000 0x0>, <0x0 0x8000000>;
+                       reg-names = "iobase_3d", "iobase_2d",
+                                   "phys_baseaddr", "contiguous_mem";
+                       interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>,
+                                    <0 10 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "irq_3d", "irq_2d";
+                       clocks = <&clks IMX6QDL_CLK_OPENVG_AXI>, <&clks IMX6QDL_CLK_GPU3D_AXI>,
+                                <&clks IMX6QDL_CLK_GPU2D_CORE>, <&clks IMX6QDL_CLK_GPU3D_CORE>,
+                                <&clks IMX6QDL_CLK_DUMMY>;
+                       clock-names = "gpu2d_axi_clk", "gpu3d_axi_clk",
+                                     "gpu2d_clk", "gpu3d_clk",
+                                     "gpu3d_shader_clk";
+                       resets = <&src 0>, <&src 3>;
+                       reset-names = "gpu3d", "gpu2d";
+                       power-domains = <&pd_pu>;
+               };
+
+               aips1: aips-bus@2000000 {
                        pxp: pxp@20f0000 {
-                               reg = <0x020f0000 0x4000>;
+                               compatible = "fsl,imx6dl-pxp-dma";
+                               reg = <0x20f0000 0x4000>;
                                interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX6QDL_CLK_IPU2>, <&clks IMX6QDL_CLK_DUMMY>;
+                               clock-names = "pxp-axi", "disp-axi";
+                               status = "disabled";
                        };
 
                        epdc: epdc@20f4000 {
-                               reg = <0x020f4000 0x4000>;
+                               compatible = "fsl,imx6dl-epdc";
+                               reg = <0x20f4000 0x4000>;
                                interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX6QDL_CLK_IPU2>, <&clks IMX6QDL_CLK_IPU2_DI1>;
+                               clock-names = "epdc_axi", "epdc_pix";
+                       };
+
+                       lcdif: lcdif@20f8000 {
+                               reg = <0x20f8000 0x4000>;
+                               interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
 
                aips2: aips-bus@2100000 {
+                       mipi_dsi: mipi@21e0000 {
+                               compatible = "fsl,imx6dl-mipi-dsi";
+                               reg = <0x21e0000 0x4000>;
+                               interrupts = <0 102 0x4>;
+                               gpr = <&gpr>;
+                               clocks = <&clks IMX6QDL_CLK_HSI_TX>, <&clks IMX6QDL_CLK_VIDEO_27M>;
+                               clock-names = "mipi_pllref_clk", "mipi_cfg_clk";
+                               status = "disabled";
+                       };
+
                        i2c4: i2c@21f8000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                compatible = "fsl,imx-display-subsystem";
                ports = <&ipu1_di0>, <&ipu1_di1>;
        };
+
+       gpu-subsystem {
+               compatible = "fsl,imx-gpu-subsystem";
+               cores = <&gpu_2d>, <&gpu_3d>;
+       };
+};
+
+&dcic2 {
+       clocks = <&clks IMX6QDL_CLK_DCIC1 >,
+               <&clks IMX6QDL_CLK_DCIC2>; /* DCIC2 depend on DCIC1 clock in imx6dl*/
+       clock-names = "dcic", "disp-axi";
 };
 
 &gpio1 {
        compatible = "fsl,imx6dl-hdmi";
 };
 
+&iomuxc {
+       compatible = "fsl,imx6dl-iomuxc";
+};
+
 &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>,
+       compatible = "fsl,imx6dl-ldb", "fsl,imx53-ldb";
+       clocks = <&clks IMX6QDL_CLK_LDB_DI0>, <&clks IMX6QDL_CLK_LDB_DI1>,
                 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
-                <&clks IMX6QDL_CLK_LDB_DI0>, <&clks IMX6QDL_CLK_LDB_DI1>;
-       clock-names = "di0_pll", "di1_pll",
+                <&clks IMX6QDL_CLK_IPU2_DI0_SEL>,
+                <&clks IMX6QDL_CLK_LDB_DI0_DIV_3_5>, <&clks IMX6QDL_CLK_LDB_DI1_DIV_3_5>,
+                <&clks IMX6QDL_CLK_LDB_DI0_DIV_7>, <&clks IMX6QDL_CLK_LDB_DI1_DIV_7>,
+                <&clks IMX6QDL_CLK_LDB_DI0_DIV_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_DIV_SEL>;
+       clock-names = "ldb_di0", "ldb_di1",
                      "di0_sel", "di1_sel",
-                     "di0", "di1";
+                     "di2_sel",
+                     "ldb_di0_div_3_5", "ldb_di1_div_3_5",
+                     "ldb_di0_div_7", "ldb_di1_div_7",
+                     "ldb_di0_div_sel", "ldb_di1_div_sel";
 };
 
 &mipi_csi {
 &vpu {
        compatible = "fsl,imx6dl-vpu", "cnm,coda960";
 };
+
+&vpu_fsl {
+       iramsize = <0>;
+};
diff --git a/arch/arm/dts/imx6q-sabreauto-ecspi.dts b/arch/arm/dts/imx6q-sabreauto-ecspi.dts
new file mode 100644 (file)
index 0000000..3cf99ed
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+#include "imx6q-sabreauto.dts"
+
+&ecspi1 {
+       pinctrl-assert-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&can2 {
+       /* max7310_c on i2c3 is gone */
+       status = "disabled";
+};
+
+&i2c3 {
+       /* pin conflict with ecspi1 */
+       status = "disabled";
+};
+
+&uart3 {
+       /* the uart3 depends on the i2c3, so disable it too. */
+       status = "disabled";
+};
+
+&usbh1 {
+       /* max7310_b on i2c3 is gone */
+       status = "disabled";
+};
+
+&usbotg {
+       /* max7310_c on i2c3 is gone */
+       status = "okay";
+       dr_mode = "peripheral";
+};
diff --git a/arch/arm/dts/imx6q-sabreauto-gpmi-weim.dts b/arch/arm/dts/imx6q-sabreauto-gpmi-weim.dts
new file mode 100644 (file)
index 0000000..579aeb2
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+#include "imx6q-sabreauto.dts"
+
+&ecspi1 {
+       /* pin conflict with weim */
+       status = "disabled";
+};
+
+&can2 {
+       /* max7310_c on i2c3 is gone */
+       status = "disabled";
+};
+
+&gpmi {
+       status = "okay";
+};
+
+&i2c3 {
+       /* pin conflict with weim */
+       status = "disabled";
+};
+
+&uart3 {
+       /* pin conflict with gpmi and weim */
+       status = "disabled";
+};
+
+&usbh1 {
+       /* max7310_b on i2c3 is gone */
+       status = "disabled";
+};
+
+&usbotg {
+       /* max7310_c on i2c3 is gone */
+       status = "okay";
+       dr_mode = "peripheral";
+};
+
+&weim {
+       pinctrl-assert-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
index 6e981a3..0888923 100644 (file)
@@ -9,10 +9,30 @@
 #include "imx6qdl-sabreauto.dtsi"
 
 / {
-       model = "Freescale i.MX6 Quad SABRE Automotive Board";
+       model = "i.MX6 Quad SABRE Automotive Board";
        compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
 };
 
+&ldb {
+       lvds-channel@0 {
+               crtc = "ipu2-di0";
+       };
+       lvds-channel@1 {
+               crtc = "ipu2-di1";
+       };
+};
+&mxcfb1 {
+       status = "okay";
+};
+&mxcfb2 {
+       status = "okay";
+};
+&mxcfb3 {
+       status = "okay";
+};
+&mxcfb4 {
+       status = "okay";
+};
 &sata {
        status = "okay";
 };
index eec9446..e3cd664 100644 (file)
@@ -9,10 +9,42 @@
 #include "imx6qdl-sabresd.dtsi"
 
 / {
-       model = "Freescale i.MX6 Quad SABRE Smart Device Board";
+       model = "i.MX6 Quad SABRE Smart Device Board";
        compatible = "fsl,imx6q-sabresd", "fsl,imx6q";
 };
 
+&battery {
+       offset-charger = <1900>;
+       offset-discharger = <1694>;
+       offset-usb-charger = <1685>;
+};
+
+&ldb {
+       lvds-channel@0 {
+               crtc = "ipu2-di0";
+       };
+
+       lvds-channel@1 {
+               crtc = "ipu2-di1";
+       };
+};
+
+&mxcfb1 {
+       status = "okay";
+};
+
+&mxcfb2 {
+       status = "okay";
+};
+
+&mxcfb3 {
+       status = "okay";
+};
+
+&mxcfb4 {
+       status = "okay";
+};
+
 &sata {
        status = "okay";
 };
index 71543a4..c2926ef 100644 (file)
                                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>,
                                 <&clks IMX6QDL_CLK_PLL1_SW>,
-                                <&clks IMX6QDL_CLK_PLL1_SYS>;
+                                <&clks IMX6QDL_CLK_PLL1_SYS>,
+                                <&clks IMX6QDL_CLK_PLL1>,
+                                <&clks IMX6QDL_PLL1_BYPASS>,
+                                <&clks IMX6QDL_PLL1_BYPASS_SRC>,
+                                <&clks IMX6QDL_CLK_VPU_AXI_PODF>;
                        clock-names = "arm", "pll2_pfd2_396m", "step",
-                                     "pll1_sw", "pll1_sys";
+                                     "pll1_sw", "pll1_sys", "pll1",
+                                     "pll1_bypass", "pll1_bypass_src",
+                                     "vpu_axi_podf";
                        arm-supply = <&reg_arm>;
                        pu-supply = <&reg_pu>;
                        soc-supply = <&reg_soc>;
                };
 
-               cpu1: cpu@1 {
+               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>;
                };
 
-               cpu2: cpu@2 {
+               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>;
                };
 
-               cpu3: cpu@3 {
+               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>;
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x14000000>;
+                       linux,cma-default;
                };
        };
 
        soc {
-               ocram: sram@900000 {
+               busfreq: busfreq {
+                       compatible = "fsl,imx_busfreq";
+                       clocks = <&clks 171>, <&clks 6>, <&clks 11>, <&clks 104>, <&clks 172>, <&clks 58>,
+                               <&clks 18>, <&clks 60>, <&clks 20>, <&clks 3>;
+                       clock-names = "pll2_bus", "pll2_pfd2_396m", "pll2_198m", "arm", "pll3_usb_otg", "periph",
+                               "periph_pre", "periph_clk2", "periph_clk2_sel", "osc";
+                       interrupts = <0 107 0x04>, <0 112 0x4>, <0 113 0x4>, <0 114 0x4>;
+                       interrupt-names = "irq_busfreq_0", "irq_busfreq_1", "irq_busfreq_2", "irq_busfreq_3";
+                       fsl,max_ddr_freq = <528000000>;
+               };
+
+                gpu: gpu@00130000 {
+                       compatible = "fsl,imx6q-gpu";
+                       reg = <0x00130000 0x4000>, <0x00134000 0x4000>,
+                             <0x02204000 0x4000>, <0x10000000 0x0>,
+                             <0x0 0x8000000>;
+                       reg-names = "iobase_3d", "iobase_2d",
+                                   "iobase_vg", "phys_baseaddr",
+                                   "contiguous_mem";
+                       interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>,
+                                    <0 10 IRQ_TYPE_LEVEL_HIGH>,
+                                    <0 11 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "irq_3d", "irq_2d", "irq_vg";
+                       clocks = <&clks IMX6QDL_CLK_GPU2D_AXI>, <&clks IMX6QDL_CLK_OPENVG_AXI>,
+                                <&clks IMX6QDL_CLK_GPU3D_AXI>, <&clks IMX6QDL_CLK_GPU2D_CORE>,
+                                <&clks IMX6QDL_CLK_GPU3D_CORE>, <&clks IMX6QDL_CLK_GPU3D_SHADER>;
+                       clock-names = "gpu2d_axi_clk", "openvg_axi_clk",
+                                     "gpu3d_axi_clk", "gpu2d_clk",
+                                     "gpu3d_clk", "gpu3d_shader_clk";
+                       resets = <&src 0>, <&src 3>, <&src 3>;
+                       reset-names = "gpu3d", "gpu2d", "gpuvg";
+                       power-domains = <&pd_pu>;
+               };
+
+               ocram: sram@905000 {
                        compatible = "mmio-sram";
-                       reg = <0x00900000 0x40000>;
+                       reg = <0x905000 0x3B000>;
                        clocks = <&clks IMX6QDL_CLK_OCRAM>;
                };
 
+               ocram_optee: sram@938000 {
+                       compatible = "fsl,optee-lpm-sram";
+                       reg = <0x938000 0x8000>;
+                       overw_reg = <&ocram 0x905000 0x33000>;
+               };
+
                aips-bus@2000000 { /* AIPS1 */
                        spba-bus@2000000 {
                                ecspi5: spi@2018000 {
                                        clocks = <&clks IMX6Q_CLK_ECSPI5>,
                                                 <&clks IMX6Q_CLK_ECSPI5>;
                                        clock-names = "ipg", "per";
-                                       dmas = <&sdma 11 8 1>, <&sdma 12 8 2>;
+                                       dmas = <&sdma 11 7 1>, <&sdma 12 7 2>;
                                        dma-names = "rx", "tx";
                                        status = "disabled";
                                };
                        };
+               };
 
-                       iomuxc: iomuxc@20e0000 {
-                               compatible = "fsl,imx6q-iomuxc";
+               aips-bus@2100000 { /* AIPS2 */
+                       mipi_dsi: mipi@21e0000 {
+                               compatible = "fsl,imx6q-mipi-dsi";
+                               reg = <0x21e0000 0x4000>;
+                               interrupts = <0 102 0x4>;
+                               gpr = <&gpr>;
+                               clocks = <&clks IMX6QDL_CLK_HSI_TX>, <&clks IMX6QDL_CLK_VIDEO_27M>;
+                               clock-names = "mipi_pllref_clk", "mipi_cfg_clk";
+                               status = "disabled";
                        };
                };
 
                                     <0 7 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clks IMX6QDL_CLK_IPU2>,
                                 <&clks IMX6QDL_CLK_IPU2_DI0>,
-                                <&clks IMX6QDL_CLK_IPU2_DI1>;
-                       clock-names = "bus", "di0", "di1";
+                                <&clks IMX6QDL_CLK_IPU2_DI1>,
+                                <&clks IMX6QDL_CLK_IPU2_DI0_SEL>,
+                                <&clks IMX6QDL_CLK_IPU2_DI1_SEL>,
+                                <&clks IMX6QDL_CLK_LDB_DI0>,
+                                <&clks IMX6QDL_CLK_LDB_DI1>;
+                       clock-names = "bus",
+                                     "di0", "di1",
+                                     "di0_sel", "di1_sel",
+                                     "ldb_di0", "ldb_di1";
+
                        resets = <&src 4>;
+                       bypass_reset = <0>;
 
                        ipu2_csi0: port@0 {
                                reg = <0>;
                compatible = "fsl,imx-display-subsystem";
                ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>;
        };
+
+       gpu-subsystem {
+               compatible = "fsl,imx-gpu-subsystem";
+               cores = <&gpu_2d>, <&gpu_3d>, <&gpu_vg>;
+       };
 };
 
 &gpio1 {
        };
 };
 
+&iomuxc {
+       compatible = "fsl,imx6q-iomuxc";
+};
+
 &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>,
+       compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
+       clocks = <&clks IMX6QDL_CLK_LDB_DI0>, <&clks IMX6QDL_CLK_LDB_DI1>,
                 <&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>, <&clks IMX6QDL_CLK_LDB_DI1>;
-       clock-names = "di0_pll", "di1_pll",
-                     "di0_sel", "di1_sel", "di2_sel", "di3_sel",
-                     "di0", "di1";
+                <&clks IMX6QDL_CLK_LDB_DI0_DIV_3_5>, <&clks IMX6QDL_CLK_LDB_DI1_DIV_3_5>,
+                <&clks IMX6QDL_CLK_LDB_DI0_DIV_7>, <&clks IMX6QDL_CLK_LDB_DI1_DIV_7>,
+                <&clks IMX6QDL_CLK_LDB_DI0_DIV_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_DIV_SEL>;
+       clock-names = "ldb_di0", "ldb_di1",
+                     "di0_sel", "di1_sel",
+                     "di2_sel", "di3_sel",
+                     "ldb_di0_div_3_5", "ldb_di1_div_3_5",
+                     "ldb_di0_div_7", "ldb_di1_div_7",
+                     "ldb_di0_div_sel", "ldb_di1_div_sel";
 
        lvds-channel@0 {
                port@2 {
index ea90f40..7c078e1 100644 (file)
@@ -5,12 +5,6 @@
 
 #include "imx6qdl-u-boot.dtsi"
 
-/ {
-       aliases {
-               mmc0 = &usdhc3;
-       };
-};
-
 &usdhc3 {
        no-1-8-v;
        u-boot,dm-spl;
index 28a7fdb..25e8f44 100644 (file)
@@ -2,68 +2,76 @@
 //
 // Copyright 2012 Freescale Semiconductor, Inc.
 // Copyright 2011 Linaro Ltd.
+// Copyright 2017 NXP.
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 
 / {
-       chosen {
-               stdout-path = &uart4;
-       };
-
-       memory@10000000 {
-               reg = <0x10000000 0x80000000>;
+       aliases {
+               mxcfb0 = &mxcfb1;
+               mxcfb1 = &mxcfb2;
+               mxcfb2 = &mxcfb3;
+               mxcfb3 = &mxcfb4;
        };
 
-       leds {
-               compatible = "gpio-leds";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_gpio_leds>;
-
-               user {
-                       label = "debug";
-                       gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
-               };
+       chosen {
+               stdout-path = &uart4;
        };
 
        gpio-keys {
-               compatible = "gpio-keys";
+               compatible = "gpio-keys1";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_gpio_keys>;
 
                home {
                        label = "Home";
                        gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+                       gpio-key,wakeup;
                        linux,code = <KEY_HOME>;
-                       wakeup-source;
                };
 
                back {
                        label = "Back";
                        gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+                       gpio-key,wakeup;
                        linux,code = <KEY_BACK>;
-                       wakeup-source;
                };
 
                program {
                        label = "Program";
                        gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+                       gpio-key,wakeup;
                        linux,code = <KEY_PROGRAM>;
-                       wakeup-source;
                };
 
                volume-up {
                        label = "Volume Up";
                        gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+                       gpio-key,wakeup;
                        linux,code = <KEY_VOLUMEUP>;
-                       wakeup-source;
                };
 
                volume-down {
                        label = "Volume Down";
                        gpios = <&gpio5 14 GPIO_ACTIVE_LOW>;
+                       gpio-key,wakeup;
                        linux,code = <KEY_VOLUMEDOWN>;
-                       wakeup-source;
+               };
+       };
+
+       memory: memory {
+               reg = <0x10000000 0x80000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_leds>;
+
+               user {
+                       label = "debug";
+                       gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
                };
        };
 
                        regulator-always-on;
                };
 
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
                reg_usb_h1_vbus: regulator@1 {
                        compatible = "regulator-fixed";
                        reg = <1>;
                        gpio = <&max7310_c 1 GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                };
+
+               reg_si4763_vio1: regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <3>;
+                       regulator-name = "vio1";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_si4763_vio2: regulator@4 {
+                       compatible = "regulator-fixed";
+                       reg = <4>;
+                       regulator-name = "vio2";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_si4763_vd: regulator@5 {
+                       compatible = "regulator-fixed";
+                       reg = <5>;
+                       regulator-name = "vd";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_si4763_va: regulator@6 {
+                       compatible = "regulator-fixed";
+                       reg = <6>;
+                       regulator-name = "va";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+               };
+
+               reg_sd3_vmmc: regulator@7 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "P3V3_SDa_SWITCHED";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+                       off-on-delay-us = <20000>;
+                       /* remove below line to enable this regulator */
+                       status = "disabled";
+               };
+
+               reg_can_en: regulator@8 {
+                       compatible = "regulator-fixed";
+                       reg = <8>;
+                       regulator-name = "can-en";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&max7310_b 6 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+
+               reg_can_stby: regulator@9 {
+                       compatible = "regulator-fixed";
+                       reg = <9>;
+                       regulator-name = "can-stby";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&max7310_b 5 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+                       vin-supply = <&reg_can_en>;
+               };
+       };
+
+       hannstar_cabc {
+               compatible = "hannstar,cabc";
+
+               lvds_share {
+                       gpios = <&max7310_a 0 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       sound-hdmi {
+               compatible = "fsl,imx6q-audio-hdmi",
+                            "fsl,imx-audio-hdmi";
+               model = "imx-audio-hdmi";
+               hdmi-controller = <&hdmi_audio>;
+       };
+
+       mxcfb1: fb@0 {
+               compatible = "fsl,mxc_sdc_fb";
+               disp_dev = "ldb";
+               interface_pix_fmt = "RGB666";
+               default_bpp = <16>;
+               int_clk = <0>;
+               late_init = <0>;
+               status = "disabled";
+       };
+
+       mxcfb2: fb@1 {
+               compatible = "fsl,mxc_sdc_fb";
+               disp_dev = "hdmi";
+               interface_pix_fmt = "RGB24";
+               mode_str ="1920x1080M@60";
+               default_bpp = <24>;
+               int_clk = <0>;
+               late_init = <0>;
+               status = "disabled";
+       };
+
+       mxcfb3: fb@2 {
+               compatible = "fsl,mxc_sdc_fb";
+               disp_dev = "lcd";
+               interface_pix_fmt = "RGB565";
+               mode_str ="CLAA-WVGA";
+               default_bpp = <16>;
+               int_clk = <0>;
+               late_init = <0>;
+               status = "disabled";
+       };
+
+       mxcfb4: fb@3 {
+               compatible = "fsl,mxc_sdc_fb";
+               disp_dev = "ldb";
+               interface_pix_fmt = "RGB666";
+               default_bpp = <16>;
+               int_clk = <0>;
+               late_init = <0>;
+               status = "disabled";
+       };
+
+       clocks {
+               codec_osc: anaclk2 {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <24576000>;
+               };
        };
 
        sound-cs42888 {
                compatible = "fsl,imx6-sabreauto-cs42888",
-                       "fsl,imx-audio-cs42888";
+                               "fsl,imx-audio-cs42888";
                model = "imx-cs42888";
-               audio-cpu = <&esai>;
-               audio-asrc = <&asrc>;
+               esai-controller = <&esai>;
+               asrc-controller = <&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-fm {
+               compatible = "fsl,imx-audio-si476x",
+                          "fsl,imx-tuner-si476x";
+               model = "imx-radio-si4763";
+               ssi-controller = <&ssi2>;
+               fm-controller = <&si476x_codec>;
+               mux-int-port = <2>;
+               mux-ext-port = <5>;
        };
 
        sound-spdif {
                        #size-cells = <0>;
                        reg = <1>;
 
-                       adv7180: camera@21 {
-                               compatible = "adi,adv7180";
+                       adv7180: adv7180@21 {
+                               compatible = "adv,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>;
-                                       };
-                               };
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_ipu1_1>;
+                               clocks = <&clks IMX6QDL_CLK_CKO>;
+                               clock-names = "csi_mclk";
+                               DOVDD-supply = <&reg_3p3v>; /* 3.3v, enabled via 2.8 VGEN6 */
+                               AVDD-supply = <&reg_3p3v>;  /* 1.8v */
+                               DVDD-supply = <&reg_3p3v>;  /* 1.8v */
+                               PVDD-supply = <&reg_3p3v>;  /* 1.8v */
+                               pwn-gpios = <&max7310_b 2 0>;
+                               csi_id = <0>;
+                               mclk = <24000000>;
+                               mclk_source = <0>;
+                               cvbs = <1>;
                        };
 
                        max7310_a: gpio@30 {
                                #gpio-cells = <2>;
                        };
 
-                       light-sensor@44 {
-                               compatible = "isil,isl29023";
+                       isl29023@44 {
+                               compatible = "fsl,isl29023";
                                reg = <0x44>;
+                               rext = <499>;
                                interrupt-parent = <&gpio5>;
-                               interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
+                               interrupts = <17 2>;
                        };
 
-                       magnetometer@e {
+                       mag3110@0e {
                                compatible = "fsl,mag3110";
                                reg = <0x0e>;
+                               position = <2>;
                                interrupt-parent = <&gpio2>;
-                               interrupts = <29 IRQ_TYPE_EDGE_RISING>;
+                               interrupts = <29 1>;
                        };
 
-                       accelerometer@1c {
+                       mma8451@1c {
                                compatible = "fsl,mma8451";
                                reg = <0x1c>;
+                               position = <7>;
                                interrupt-parent = <&gpio6>;
-                               interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <31 8>;
+                               interrupt-route = <1>;
                        };
                };
        };
+
+       v4l2_cap_0 {
+               compatible = "fsl,imx6q-v4l2-capture";
+               ipu_id = <0>;
+               csi_id = <0>;
+               mclk_source = <0>;
+               status = "okay";
+       };
+
+       v4l2_out {
+               compatible = "fsl,mxc_v4l2_output";
+               status = "okay";
+       };
 };
 
 &ipu1_csi0_from_ipu1_csi0_mux {
 };
 
 &ipu1_csi0_mux_from_parallel_sensor {
+       /* Downstream driver doesn't use endpoints */
+       /*
        remote-endpoint = <&adv7180_to_ipu1_csi0_mux>;
+        */
        bus-width = <8>;
 };
 
        pinctrl-0 = <&pinctrl_ipu1_csi0>;
 };
 
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux>;
+       status = "okay";
+};
+
 &clks {
        assigned-clocks = <&clks IMX6QDL_PLL4_BYPASS_SRC>,
                          <&clks IMX6QDL_PLL4_BYPASS>,
                          <&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>;
+                                <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+                                <&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
        assigned-clock-rates = <0>, <0>, <0>, <0>, <24576000>;
 };
 
+&dcic1 {
+       dcic_id = <0>;
+       dcic_mux = "dcic-hdmi";
+       status = "okay";
+};
+
+&dcic2 {
+       dcic_id = <1>;
+       dcic_mux = "dcic-lvds0";
+       status = "okay";
+};
+
 &ecspi1 {
+       fsl,spi-num-chipselects = <1>;
        cs-gpios = <&gpio3 19 0>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet>;
        phy-mode = "rgmii-id";
-       interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
-                             <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       phy-handle = <&phy>;
+       fsl,magic-packet;
        fsl,err006687-workaround-present;
        status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               phy: ethernet-phy@1 {
+                       reg = <1>;
+                       qca,clk-out-frequency = <125000000>;
+               };
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       pinctrl-assert-gpios = <&max7310_b 3 GPIO_ACTIVE_HIGH>; /* TX */
+       xceiver-supply = <&reg_can_stby>;
+       status = "disabled"; /* pin conflict with fec */
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can_stby>;
+       status = "okay";
 };
 
 &gpmi {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpmi_nand>;
+       status = "disabled"; /* pin conflict with uart3 */
+       nand-on-flash-bbt;
+};
+
+&hdmi_audio {
        status = "okay";
 };
 
-&hdmi {
+&hdmi_cec {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hdmi_cec>;
-       ddc-i2c-bus = <&i2c2>;
+       status = "okay";
+};
+
+&hdmi_core {
+       ipu_id = <0>;
+       disp_id = <1>;
+       status = "okay";
+};
+
+&hdmi_video {
+       fsl,phy_reg_vlev = <0x0294>;
+       fsl,phy_reg_cksymtx = <0x800d>;
        status = "okay";
 };
 
 &i2c2 {
        clock-frequency = <100000>;
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
        status = "okay";
 
+       egalax_ts@04 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_egalax_int>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <28 2>;
+               wakeup-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
+       };
+
        pmic: pfuze100@8 {
                compatible = "fsl,pfuze100";
                reg = <0x08>;
                        sw4_reg: sw4 {
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
                        };
 
                        swbst_reg: swbst {
                };
        };
 
+       hdmi_edid: edid@50 {
+               compatible = "fsl,imx6-hdmi-i2c";
+               reg = <0x50>;
+       };
+
        codec: cs42888@48 {
                compatible = "cirrus,cs42888";
                reg = <0x48>;
                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>;
+       si4763: si4763@63 {
+               compatible = "si4761";
+               reg = <0x63>;
+               va-supply = <&reg_si4763_va>;
+               vd-supply = <&reg_si4763_vd>;
+               vio1-supply = <&reg_si4763_vio1>;
+               vio2-supply = <&reg_si4763_vio2>;
+               revision-a10; /* set to default A10 compatible command set */
+
+               si476x_codec: si476x-codec {
+                       compatible = "si476x-codec";
+               };
        };
 };
 
 &i2c3 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
        pinctrl-0 = <&pinctrl_hog>;
 
        imx6qdl-sabreauto {
+                pinctrl_audmux: audmux {
+                        fsl,pins = <
+                                MX6QDL_PAD_DISP0_DAT16__AUD5_TXC  0x130b0
+                                MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS 0x130b0
+                                MX6QDL_PAD_DISP0_DAT19__AUD5_RXD  0x130b0
+                        >;
+                };
+
                pinctrl_hog: hoggrp {
                        fsl,pins = <
-                               MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000
+                               MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1f059
                                MX6QDL_PAD_SD2_DAT2__GPIO1_IO13  0x80000000
                                MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x17059
+                               MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x80000000
+                               MX6QDL_PAD_EIM_EB1__GPIO2_IO29  0x80000000
+                               MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x80000000
+                               MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x80000000
+                               MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x17059
+                               MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x17059
                        >;
                };
 
                        >;
                };
 
-               pinctrl_egalax_int: egalax-intgrp {
+               pinctrl_egalax_int: egalax_intgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_EIM_EB0__GPIO2_IO28          0xb0b1
+                               MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x80000000
                        >;
                };
 
                                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_enet_irq: enetirqgrp {
+                       fsl,pins = <
                                MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
                        >;
                };
                        >;
                };
 
-               pinctrl_gpio_keys: gpiokeysgrp {
+               pinctrl_flexcan1: flexcan1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX        0x17059
+                               MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX        0x17059
+                       >;
+               };
+
+               pinctrl_flexcan2: flexcan2grp {
                        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
+                               MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX        0x17059
+                               MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX        0x17059
+                       >;
+               };
+
+               pinctrl_gpio_keys: gpio_keysgrp {
+                       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_hdmi_cec: hdmicecgrp {
+               pinctrl_i2c2: i2c2grp {
                        fsl,pins = <
-                               MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE    0x1f8b0
+                               MX6QDL_PAD_EIM_EB2__I2C2_SCL    0x4001b8b1
+                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA   0x4001b8b1
                        >;
                };
 
-               pinctrl_i2c2: i2c2grp {
+               pinctrl_i2c2_gpio: i2c2grp_gpio {
                        fsl,pins = <
-                               MX6QDL_PAD_EIM_EB2__I2C2_SCL    0x4001b8b1
-                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA   0x4001b8b1
+                               MX6QDL_PAD_EIM_EB2__GPIO2_IO30    0x1b8b1
+                               MX6QDL_PAD_KEY_ROW3__GPIO4_IO13   0x1b8b1
+                       >;
+               };
+
+               pinctrl_ipu1_1: ipu1grp-1 { /* parallel port 16-bit */
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04   0x80000000
+                               MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05   0x80000000
+                               MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06   0x80000000
+                               MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07   0x80000000
+                               MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08   0x80000000
+                               MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09   0x80000000
+                               MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10  0x80000000
+                               MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11  0x80000000
+                               MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12  0x80000000
+                               MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13  0x80000000
+                               MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14  0x80000000
+                               MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15  0x80000000
+                               MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16  0x80000000
+                               MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17  0x80000000
+                               MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18  0x80000000
+                               MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19  0x80000000
+                               MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x80000000
+                               MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC    0x80000000
+                               MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC   0x80000000
                        >;
                };
 
                        >;
                };
 
+               pinctrl_i2c3_gpio: i2c3grp_gpio {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_3__GPIO1_IO03  0x1b8b1
+                               MX6QDL_PAD_EIM_D18__GPIO3_IO18 0x1b8b1
+                       >;
+               };
+
                pinctrl_i2c3mux: i2c3muxgrp {
                        fsl,pins = <
                                MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x0b0b1
                        >;
                };
 
+               pinctrl_mlb: mlb {
+                       fsl,pins = <
+                               MX6QDL_PAD_ENET_TXD1__MLB_CLK 0x80000000
+                               MX6QDL_PAD_GPIO_6__MLB_SIG    0x80000000
+                               MX6QDL_PAD_GPIO_2__MLB_DATA   0x80000000
+                       >;
+               };
+
                pinctrl_pwm3: pwm1grp {
                        fsl,pins = <
                                MX6QDL_PAD_SD4_DAT1__PWM3_OUT           0x1b0b1
                        >;
                };
 
+               pinctrl_uart3_1: uart3grp-1 {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD4_CLK__UART3_RX_DATA       0x1b0b1
+                               MX6QDL_PAD_SD4_CMD__UART3_TX_DATA       0x1b0b1
+                               MX6QDL_PAD_EIM_D30__UART3_CTS_B         0x1b0b1
+                               MX6QDL_PAD_EIM_EB3__UART3_RTS_B         0x1b0b1
+                       >;
+               };
+
+               pinctrl_uart3dte_1: uart3dtegrp-1 {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD4_CLK__UART3_TX_DATA       0x1b0b1
+                               MX6QDL_PAD_SD4_CMD__UART3_RX_DATA       0x1b0b1
+                               MX6QDL_PAD_EIM_D30__UART3_RTS_B         0x1b0b1
+                               MX6QDL_PAD_EIM_EB3__UART3_CTS_B         0x1b0b1
+                       >;
+               };
+
                pinctrl_uart4: uart4grp {
                        fsl,pins = <
                                MX6QDL_PAD_KEY_COL0__UART4_TX_DATA      0x1b0b1
                        >;
                };
 
+               pinctrl_usdhc1: usdhc1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_CMD__SD1_CMD             0x17071
+                               MX6QDL_PAD_SD1_CLK__SD1_CLK             0x10071
+                               MX6QDL_PAD_SD1_DAT0__SD1_DATA0          0x17071
+                               MX6QDL_PAD_SD1_DAT1__SD1_DATA1          0x17071
+                               MX6QDL_PAD_SD1_DAT2__SD1_DATA2          0x17071
+                               MX6QDL_PAD_SD1_DAT3__SD1_DATA3          0x17071
+                       >;
+               };
+
                pinctrl_usdhc3: usdhc3grp {
                        fsl,pins = <
                                MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
                                MX6QDL_PAD_EIM_DA0__EIM_AD00            0xb0b1
                        >;
                };
+
+               pinctrl_hdmi_cec: hdmicecgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0
+                       >;
+               };
        };
 };
 
        lvds-channel@0 {
                fsl,data-mapping = "spwg";
                fsl,data-width = <18>;
+               primary;
                status = "okay";
 
                display-timings {
                        };
                };
        };
+
+       lvds-channel@1 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <18>;
+               status = "okay";
+
+               display-timings {
+                       native-mode = <&timing1>;
+                       timing1: 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>;
+                       };
+               };
+       };
+};
+
+&mlb {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_mlb>;
+       status = "okay";
 };
 
 &pwm3 {
        status = "okay";
 };
 
+&pcie {
+       status = "okay";
+};
+
 &spdif {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_spdif>;
+       assigned-clocks = <&clks IMX6QDL_CLK_SPDIF_SEL>,
+                         <&clks IMX6QDL_CLK_SPDIF_PODF>;
+       assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_PFD3_454M>;
+       assigned-clock-rates = <0>, <227368421>;
        status = "okay";
 };
 
+&snvs_poweroff {
+       status = "okay";
+};
+
+&ssi2 {
+       assigned-clocks = <&clks IMX6QDL_CLK_SSI2_SEL>;
+       assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
+       assigned-clock-rates = <0>;
+       fsl,mode = "i2s-master";
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3_1>;
+       pinctrl-assert-gpios = <&max7310_b 4 GPIO_ACTIVE_HIGH>, /* CTS */
+                              <&max7310_c 3 GPIO_ACTIVE_HIGH>; /* RXD and TXD */
+       fsl,uart-has-rtscts;
+       status = "okay";
+       /* for DTE mode, add below change */
+       /* fsl,dte-mode; */
+       /* pinctrl-0 = <&pinctrl_uart3dte_1>; */
+};
+
 &uart4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart4>;
        vbus-supply = <&reg_usb_otg_vbus>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usbotg>;
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       keep-power-in-suspend;
+       enable-sdio-wakeup;
        status = "okay";
 };
 
        pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
        cd-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
        wp-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+       /*
+        * Due to board issue, we can not use external regulator for card slot
+        * by default since the card power is shared with card detect pullup.
+        * Disabling the vmmc regulator will cause unexpected card detect
+        * interrupts.
+        * HW rework is needed to fix this isssue. Remove R695 first, then you
+        * can open below line to enable the using of external regulator.
+        * Then you will be able to power off the card during suspend. This is
+        * especially needed for a SD3.0 card re-enumeration working on UHS mode
+        * Note: reg_sd3_vmmc is also need to be enabled
+        */
+       /* vmmc-supply = <&reg_sd3_vmmc>; */
+       keep-power-in-suspend;
+       enable-sdio-wakeup;
        status = "okay";
 };
 
index eddb390..07a421c 100644 (file)
@@ -2,21 +2,49 @@
 //
 // Copyright 2012 Freescale Semiconductor, Inc.
 // Copyright 2011 Linaro Ltd.
+// Copyright 2017 NXP.
 
 #include <dt-bindings/clock/imx6qdl-clock.h>
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 
 / {
        aliases {
-               mmc1 = &usdhc3;
+               mxcfb0 = &mxcfb1;
+               mxcfb1 = &mxcfb2;
+               mxcfb2 = &mxcfb3;
+               mxcfb3 = &mxcfb4;
+       };
+
+       battery: max8903@0 {
+               compatible = "fsl,max8903-charger";
+               pinctrl-names = "default";
+               dok_input = <&gpio2 24 1>;
+               uok_input = <&gpio1 27 1>;
+               chg_input = <&gpio3 23 1>;
+               flt_input = <&gpio5 2 1>;
+               fsl,dcm_always_high;
+               fsl,dc_valid;
+               fsl,usb_valid;
+               status = "okay";
+       };
+
+       hannstar_cabc {
+               compatible = "hannstar,cabc";
+               lvds0 {
+                       gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
+               };
+               lvds1 {
+                       gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;
+               };
        };
 
        chosen {
                stdout-path = &uart1;
        };
 
-       memory@10000000 {
+       memory: memory {
                reg = <0x10000000 0x40000000>;
        };
 
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        gpio = <&gpio3 19 0>;
+                       regulator-always-on;
+                       enable-active-high;
+               };
+
+               reg_sensor: regulator@4 {
+                       compatible = "regulator-fixed";
+                       reg = <4>;
+                       regulator-name = "sensor-supply";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio2 31 0>;
+                       startup-delay-us = <500>;
+                       enable-active-high;
+               };
+
+               reg_hdmi: regulator@5 {
+                       compatible = "regulator-fixed";
+                       reg = <5>;
+                       regulator-name = "hdmi-5v-supply";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       hdmi-5v-supply = <&swbst_reg>;
+               };
+
+               reg_mipi_dsi_pwr_on: mipi_dsi_pwr_on {
+                       compatible = "regulator-fixed";
+                       regulator-name = "mipi_dsi_pwr_on";
+                       gpio = <&gpio6 14 0>;
                        enable-active-high;
                };
        };
                compatible = "fsl,imx6q-sabresd-wm8962",
                           "fsl,imx-audio-wm8962";
                model = "wm8962-audio";
-               ssi-controller = <&ssi2>;
+               cpu-dai = <&ssi2>;
                audio-codec = <&codec>;
+               asrc-controller = <&asrc>;
                audio-routing =
                        "Headphone Jack", "HPOUTL",
                        "Headphone Jack", "HPOUTR",
                        "Ext Spk", "SPKOUTL",
                        "Ext Spk", "SPKOUTR",
                        "AMIC", "MICBIAS",
-                       "IN3R", "AMIC";
+                       "IN3R", "AMIC",
+                       "DMIC", "MICBIAS",
+                       "DMICDAT", "DMIC",
+                       "CPU-Playback", "ASRC-Playback",
+                       "Playback", "CPU-Playback",
+                       "ASRC-Capture", "CPU-Capture",
+                       "CPU-Capture", "Capture";
                mux-int-port = <2>;
                mux-ext-port = <3>;
+               codec-master;
+               hp-det-gpios = <&gpio7 8 1>;
+               mic-det-gpios = <&gpio1 9 1>;
+       };
+
+       sound-hdmi {
+               compatible = "fsl,imx6q-audio-hdmi",
+                            "fsl,imx-audio-hdmi";
+               model = "imx-audio-hdmi";
+               hdmi-controller = <&hdmi_audio>;
+       };
+
+       mxcfb1: fb@0 {
+               compatible = "fsl,mxc_sdc_fb";
+               disp_dev = "ldb";
+               interface_pix_fmt = "RGB666";
+               default_bpp = <16>;
+               int_clk = <0>;
+               late_init = <0>;
+               status = "disabled";
+       };
+
+       mxcfb2: fb@1 {
+               compatible = "fsl,mxc_sdc_fb";
+               disp_dev = "hdmi";
+               interface_pix_fmt = "RGB24";
+               mode_str ="1920x1080M@60";
+               default_bpp = <24>;
+               int_clk = <0>;
+               late_init = <0>;
+               status = "disabled";
        };
 
-       backlight_lvds: backlight-lvds {
+       mxcfb3: fb@2 {
+               compatible = "fsl,mxc_sdc_fb";
+               disp_dev = "lcd";
+               interface_pix_fmt = "RGB565";
+               mode_str ="CLAA-WVGA";
+               default_bpp = <16>;
+               int_clk = <0>;
+               late_init = <0>;
+               status = "disabled";
+       };
+
+       mxcfb4: fb@3 {
+               compatible = "fsl,mxc_sdc_fb";
+               disp_dev = "ldb";
+               interface_pix_fmt = "RGB666";
+               default_bpp = <16>;
+               int_clk = <0>;
+               late_init = <0>;
+               status = "disabled";
+       };
+
+       lcd@0 {
+               compatible = "fsl,lcd";
+               ipu_id = <0>;
+               disp_id = <0>;
+               default_ifmt = "RGB565";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ipu1>;
+               status = "okay";
+       };
+
+       backlight {
                compatible = "pwm-backlight";
                pwms = <&pwm1 0 5000000>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_gpio_leds>;
 
-               red {
+               charger-led {
                        gpios = <&gpio1 2 0>;
-                       default-state = "on";
+                       linux,default-trigger = "max8903-charger-charging";
+                       retain-state-suspended;
                };
        };
 
-       panel {
-               compatible = "hannstar,hsd100pxn1";
-               backlight = <&backlight_lvds>;
+       v4l2_cap_0 {
+               compatible = "fsl,imx6q-v4l2-capture";
+               ipu_id = <0>;
+               csi_id = <0>;
+               mclk_source = <0>;
+               status = "okay";
+       };
 
-               port {
-                       panel_in: endpoint {
-                               remote-endpoint = <&lvds0_out>;
-                       };
-               };
+       v4l2_cap_1 {
+               compatible = "fsl,imx6q-v4l2-capture";
+               ipu_id = <0>;
+               csi_id = <1>;
+               mclk_source = <0>;
+               status = "okay";
+       };
+
+       v4l2_out {
+               compatible = "fsl,mxc_v4l2_output";
+               status = "okay";
        };
 };
 
 };
 
 &ipu1_csi0_mux_from_parallel_sensor {
+       /* Downstream driver doesn't use endpoints */
+       /*
        remote-endpoint = <&ov5642_to_ipu1_csi0_mux>;
+        */
 };
 
 &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 {
 &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>;
+       assigned-clock-parents = <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+                                <&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
 };
 
 &ecspi1 {
+       fsl,spi-num-chipselects = <1>;
        cs-gpios = <&gpio4 9 0>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi1>;
        pinctrl-0 = <&pinctrl_enet>;
        phy-mode = "rgmii-id";
        phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+       phy-handle = <&phy>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               phy: ethernet-phy@1 {
+                       reg = <1>;
+                       qca,clk-out-frequency = <125000000>;
+               };
+       };
+};
+
+&gpc {
+       fsl,ldo-bypass = <1>;
+};
+
+&dcic1 {
+       dcic_id = <0>;
+       dcic_mux = "dcic-hdmi";
+       status = "okay";
+};
+
+&dcic2 {
+       dcic_id = <1>;
+       dcic_mux = "dcic-lvds1";
+       status = "okay";
+};
+
+&hdmi_audio {
        status = "okay";
 };
 
-&hdmi {
+&hdmi_cec {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hdmi_cec>;
-       ddc-i2c-bus = <&i2c2>;
+       status = "okay";
+};
+
+&hdmi_core {
+       ipu_id = <0>;
+       disp_id = <0>;
+       status = "okay";
+};
+
+&hdmi_video {
+       fsl,phy_reg_vlev = <0x0294>;
+       fsl,phy_reg_cksymtx = <0x800d>;
+       HDMI-supply = <&reg_hdmi>;
        status = "okay";
 };
 
 &i2c1 {
        clock-frequency = <100000>;
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio5 26 GPIO_ACTIVE_HIGH>;
        status = "okay";
 
        codec: wm8962@1a {
                        0x8014 /* 4:FN_DMICCDAT */
                        0x0000 /* 5:Default */
                >;
+               amic-mono;
        };
 
-       ov5642: camera@3c {
-               compatible = "ovti,ov5642";
+       mma8451@1c {
+               compatible = "fsl,mma8451";
+               reg = <0x1c>;
+               position = <0>;
+               vdd-supply = <&reg_sensor>;
+               vddio-supply = <&reg_sensor>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <18 8>;
+               interrupt-route = <1>;
+       };
+
+       ov564x: ov564x@3c {
+               compatible = "ovti,ov564x";
+               reg = <0x3c>;
                pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_ov5642>;
+               pinctrl-0 = <&pinctrl_ipu1_2>;
                clocks = <&clks IMX6QDL_CLK_CKO>;
-               clock-names = "xclk";
-               reg = <0x3c>;
+               clock-names = "csi_mclk";
                DOVDD-supply = <&vgen4_reg>; /* 1.8v */
-               AVDD-supply = <&vgen3_reg>;  /* 2.8v, rev C board is VGEN3
-                                               rev B board is VGEN5 */
+               AVDD-supply = <&vgen3_reg>;  /* 2.8v, on rev C board is VGEN3,
+                                               on 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>;
-                       };
-               };
+               pwn-gpios = <&gpio1 16 1>;   /* active low: SD1_DAT0 */
+               rst-gpios = <&gpio1 17 0>;   /* active high: SD1_DAT1 */
+               csi_id = <0>;
+               mclk = <24000000>;
+               mclk_source = <0>;
        };
 };
 
 &i2c2 {
        clock-frequency = <100000>;
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
        status = "okay";
 
-       ov5640: camera@3c {
-               compatible = "ovti,ov5640";
+       egalax_ts@04 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
                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>;
-                       };
-               };
+               pinctrl-0 = <&pinctrl_i2c2_egalax_int>;
+               interrupt-parent = <&gpio6>;
+               interrupts = <8 2>;
+               wakeup-gpios = <&gpio6 8 0>;
+       };
+
+       max11801@48 {
+               compatible = "maxim,max11801";
+               reg = <0x48>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <26 2>;
+               work-mode = <1>;/*DCM mode*/
        };
 
        pmic: pfuze100@8 {
                        };
                };
        };
+
+       hdmi_edid: edid@50 {
+               compatible = "fsl,imx6-hdmi-i2c";
+               reg = <0x50>;
+       };
+
+       ov564x_mipi: ov564x_mipi@3c { /* i2c2 driver */
+               compatible = "ovti,ov564x_mipi";
+               reg = <0x3c>;
+               clocks = <&clks 201>;
+               clock-names = "csi_mclk";
+               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*/
+               pwn-gpios = <&gpio1 19 1>;   /* active low: SD1_CLK */
+               rst-gpios = <&gpio1 20 0>;   /* active high: SD1_DAT2 */
+               csi_id = <1>;
+               mclk = <24000000>;
+               mclk_source = <0>;
+       };
 };
 
 &i2c3 {
        clock-frequency = <100000>;
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
        status = "okay";
 
-       egalax_ts@4 {
+       egalax_ts@04 {
                compatible = "eeti,egalax_ts";
                reg = <0x04>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c3_egalax_int>;
                interrupt-parent = <&gpio6>;
                interrupts = <7 2>;
                wakeup-gpios = <&gpio6 7 0>;
        };
+
+       isl29023@44 {
+               compatible = "fsl,isl29023";
+               reg = <0x44>;
+               rext = <499>;
+               vdd-supply = <&reg_sensor>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <9 2>;
+       };
+
+       mag3110@0e {
+               compatible = "fsl,mag3110";
+               reg = <0x0e>;
+               position = <2>;
+               vdd-supply = <&reg_sensor>;
+               vddio-supply = <&reg_sensor>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <16 1>;
+       };
 };
 
 &iomuxc {
        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_NANDF_D0__GPIO2_IO00 0x80000000
+                               MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x80000000
+                               MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x80000000
+                               MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x80000000
                                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
+                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000
+                               MX6QDL_PAD_EIM_D22__GPIO3_IO22  0x80000000
+                               MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x80000000
+                               MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x80000000
+                               MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x80000000
+                               MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x80000000
+                               MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000
+                               MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x80000000
+                               MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x80000000
+                               MX6QDL_PAD_SD1_CMD__GPIO1_IO18 0x80000000
+                               MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x80000000
+                               MX6QDL_PAD_SD3_RST__GPIO7_IO08  0x80000000
+                               MX6QDL_PAD_GPIO_9__GPIO1_IO09   0x80000000
+                               MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
+                               MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x80000000
+                               MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x80000000
+                               MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000
+                               MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x80000000
                        >;
                };
 
                        >;
                };
 
+               pinctrl_i2c2_egalax_int: egalax_i2c2_intgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x80000000
+                       >;
+               };
+
+               pinctrl_i2c3_egalax_int: egalax_i2c3_intgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000
+                       >;
+               };
+
                pinctrl_enet: enetgrp {
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                        >;
                };
 
+               pinctrl_enet_irq: enetirqgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
+                       >;
+               };
+
                pinctrl_gpio_keys: gpio_keysgrp {
                        fsl,pins = <
                                MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b0
 
                pinctrl_hdmi_cec: hdmicecgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE   0x1f8b0
+                               MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x108b0
+                       >;
+               };
+
+               pinctrl_hdmi_hdcp: hdmihdcpgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x4001b8b1
+                               MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x4001b8b1
                        >;
                };
 
                        >;
                };
 
+               pinctrl_i2c1_gpio: i2c1grp_gpio {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26        0x1b8b1
+                               MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27        0x1b8b1
+                       >;
+               };
+
                pinctrl_i2c2: i2c2grp {
                        fsl,pins = <
                                MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
                        >;
                };
 
+               pinctrl_i2c2_gpio: i2c2_gpio_grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL3__GPIO4_IO12         0x1b0b0
+                               MX6QDL_PAD_KEY_ROW3__GPIO4_IO13         0x1b0b0
+                       >;
+               };
+
                pinctrl_i2c3: i2c3grp {
                        fsl,pins = <
                                MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
                        >;
                };
 
+               pinctrl_i2c3_gpio: i2c3grp_gpio {
+                        fsl,pins = <
+                                MX6QDL_PAD_GPIO_3__GPIO1_IO03           0x1b8b1
+                                MX6QDL_PAD_GPIO_6__GPIO1_IO06           0x1b8b1
+                        >;
+                };
+
+               pinctrl_ipu1: ipu1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10
+                               MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15       0x10
+                               MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02        0x10
+                               MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03        0x10
+                               MX6QDL_PAD_DI0_PIN4__IPU1_DI0_PIN04        0x80000000
+                               MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00   0x10
+                               MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01   0x10
+                               MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02   0x10
+                               MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03   0x10
+                               MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04   0x10
+                               MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05   0x10
+                               MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06   0x10
+                               MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07   0x10
+                               MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08   0x10
+                               MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09   0x10
+                               MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10  0x10
+                               MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11  0x10
+                               MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12  0x10
+                               MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13  0x10
+                               MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14  0x10
+                               MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15  0x10
+                               MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16  0x10
+                               MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17  0x10
+                               MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18  0x10
+                               MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19  0x10
+                               MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20  0x10
+                               MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21  0x10
+                               MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22  0x10
+                               MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23  0x10
+                       >;
+               };
+
+               pinctrl_ipu1_2: ipu1grp-2 { /* parallel camera */
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12    0x80000000
+                               MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13    0x80000000
+                               MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14    0x80000000
+                               MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15    0x80000000
+                               MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16    0x80000000
+                               MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17    0x80000000
+                               MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18    0x80000000
+                               MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19    0x80000000
+                               MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x80000000
+                               MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK   0x80000000
+                               MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC      0x80000000
+                               MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC     0x80000000
+                               MX6QDL_PAD_SD1_DAT1__GPIO1_IO17            0x80000000
+                               MX6QDL_PAD_SD1_DAT0__GPIO1_IO16            0x80000000
+                       >;
+               };
+
                pinctrl_ipu1_csi0: ipu1csi0grp {
                        fsl,pins = <
                                MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12    0x1b0b0
                        >;
                };
 
+               pinctrl_uart5_1: uart5grp-1 {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
+                               MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
+                               MX6QDL_PAD_KEY_COL4__UART5_RTS_B        0x1b0b1
+                               MX6QDL_PAD_KEY_ROW4__UART5_CTS_B        0x1b0b1
+                       >;
+               };
+
+               pinctrl_uart5dte_1: uart5dtegrp-1 {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_ROW1__UART5_TX_DATA      0x1b0b1
+                               MX6QDL_PAD_KEY_COL1__UART5_RX_DATA      0x1b0b1
+                               MX6QDL_PAD_KEY_ROW4__UART5_RTS_B        0x1b0b1
+                               MX6QDL_PAD_KEY_COL4__UART5_CTS_B        0x1b0b1
+                       >;
+               };
+
                pinctrl_usbotg: usbotggrp {
                        fsl,pins = <
                                MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID       0x17059
 
                pinctrl_wdog: wdoggrp {
                        fsl,pins = <
-                               MX6QDL_PAD_GPIO_1__WDOG2_B              0x1b0b0
+                               MX6QDL_PAD_GPIO_1__WDOG2_B 0x80000000
                        >;
                };
        };
 &ldb {
        status = "okay";
 
-       lvds-channel@1 {
+       lvds-channel@0 {
                fsl,data-mapping = "spwg";
                fsl,data-width = <18>;
                status = "okay";
 
-               port@4 {
-                       reg = <4>;
+               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>;
+                       };
+               };
+       };
+
+       lvds-channel@1 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <18>;
+               primary;
+               status = "okay";
 
-                       lvds0_out: endpoint {
-                               remote-endpoint = <&panel_in>;
+               display-timings {
+                       native-mode = <&timing1>;
+                       timing1: 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>;
                        };
                };
        };
 };
 
+&mipi_csi {
+       status = "okay";
+       ipu_id = <0>;
+       csi_id = <1>;
+       v_channel = <0>;
+       lanes = <2>;
+};
+
+&mipi_dsi {
+       dev_id = <0>;
+       disp_id = <1>;
+       lcd_panel = "TRULY-WVGA";
+       disp-power-on-supply = <&reg_mipi_dsi_pwr_on>;
+       reset-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
+       reset-delay-us = <50>;
+       status = "okay";
+};
+
 &pcie {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie>;
        reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
-       vpcie-supply = <&reg_pcie>;
        status = "okay";
 };
 
 };
 
 &ssi2 {
+       assigned-clocks = <&clks IMX6QDL_CLK_PLL4>,
+                         <&clks IMX6QDL_PLL4_BYPASS>,
+                         <&clks IMX6QDL_CLK_SSI2_SEL>;
+       assigned-clock-parents = <&clks IMX6QDL_CLK_OSC>,
+                                <&clks IMX6QDL_CLK_PLL4>,
+                                <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
+       assigned-clock-rates = <737280000>, <0>, <0>;
        status = "okay";
 };
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usbotg>;
        disable-over-current;
+       srp-disable;
+       hnp-disable;
+       adp-disable;
        status = "okay";
 };
 
+&usbphy1 {
+       fsl,tx-d-cal = <106>;
+};
+
+&usbphy2 {
+       fsl,tx-d-cal = <106>;
+};
+
 &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>;
+       no-1-8-v;
+       keep-power-in-suspend;
+       enable-sdio-wakeup;
        status = "okay";
 };
 
        bus-width = <8>;
        cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
        wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+       no-1-8-v;
+       keep-power-in-suspend;
+       enable-sdio-wakeup;
        status = "okay";
 };
 
        bus-width = <8>;
        non-removable;
        no-1-8-v;
+       keep-power-in-suspend;
        status = "okay";
 };
 
index e4daf15..da54c05 100644 (file)
@@ -16,7 +16,7 @@
         * Also for U-Boot there must be a pre-existing /memory node.
         */
        chosen {};
-       memory { device_type = "memory"; };
+       memory { device_type = "memory"; reg = <0 0>; };
 
        aliases {
                ethernet0 = &fec;
                spi3 = &ecspi4;
                usbphy0 = &usbphy1;
                usbphy1 = &usbphy2;
+               usb0 = &usbotg;
+               usb1 = &usbh1;
        };
 
        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;
 
+               caam_sm: caam-sm@100000 {
+                       compatible = "fsl,imx6q-caam-sm";
+                       reg = <0x100000 0x4000>;
+               };
+
                dma_apbh: dma-apbh@110000 {
                        compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
                        reg = <0x00110000 0x2000>;
                        clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
                };
 
-               gpmi: gpmi-nand@112000 {
+               irq_sec_vio: caam_secvio {
+                       compatible = "fsl,imx6q-caam-secvio";
+                       interrupts = <0 20 0x04>;
+                       secvio_src = <0x8000001d>;
+                       jtag-tamper = "disabled";
+                       watchdog-tamper = "enabled";
+                       internal-boot-tamper = "enabled";
+                       external-pin-tamper = "disabled";
+               };
+
+               gpmi: nand-controller@112000 {
                        compatible = "fsl,imx6q-gpmi-nand";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        power-domains = <&pd_pu>;
                };
 
+               ocrams: sram@00900000 {
+                       compatible = "fsl,lpm-sram";
+                       reg = <0x00900000 0x4000>;
+                       clocks = <&clks IMX6QDL_CLK_OCRAM>;
+               };
+
+               ocrams_ddr: sram@00904000 {
+                       compatible = "fsl,ddr-lpm-sram";
+                       reg = <0x00904000 0x1000>;
+                       clocks = <&clks IMX6QDL_CLK_OCRAM>;
+               };
+
                timer@a00600 {
                        compatible = "arm,cortex-a9-twd-timer";
                        reg = <0x00a00600 0x20>;
                        interrupt-parent = <&intc>;
                };
 
-               L2: l2-cache@a02000 {
+               L2: cache-controller@a02000 {
                        compatible = "arm,pl310-cache";
                        reg = <0x00a02000 0x1000>;
                        interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
                                 <&clks IMX6QDL_CLK_LVDS1_GATE>,
                                 <&clks IMX6QDL_CLK_PCIE_REF_125M>;
                        clock-names = "pcie", "pcie_bus", "pcie_phy";
+                       fsl,max-link-speed = <2>;
+                       status = "disabled";
+               };
+
+               pmu {
+                       compatible = "arm,cortex-a9-pmu";
+                       interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               hdmi_core: hdmi_core@00120000 {
+                       compatible = "fsl,imx6q-hdmi-core";
+                       reg = <0x00120000 0x9000>;
+                       clocks = <&clks IMX6QDL_CLK_HDMI_ISFR>,
+                                       <&clks IMX6QDL_CLK_HDMI_IAHB>,
+                                       <&clks IMX6QDL_CLK_HSI_TX>;
+                       clock-names = "hdmi_isfr", "hdmi_iahb", "mipi_core";
+                       status = "disabled";
+               };
+
+               hdmi_video: hdmi_video@020e0000 {
+                       compatible = "fsl,imx6q-hdmi-video";
+                       reg = <0x020e0000 0x1000>;
+                       reg-names = "hdmi_gpr";
+                       interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clks IMX6QDL_CLK_HDMI_ISFR>,
+                                       <&clks IMX6QDL_CLK_HDMI_IAHB>,
+                                       <&clks IMX6QDL_CLK_HSI_TX>;
+                       clock-names = "hdmi_isfr", "hdmi_iahb", "mipi_core";
+                       status = "disabled";
+               };
+
+               hdmi_audio: hdmi_audio@00120000 {
+                       compatible = "fsl,imx6q-hdmi-audio";
+                       clocks = <&clks IMX6QDL_CLK_HDMI_ISFR>,
+                                       <&clks IMX6QDL_CLK_HDMI_IAHB>,
+                                       <&clks IMX6QDL_CLK_HSI_TX>;
+                       clock-names = "hdmi_isfr", "hdmi_iahb", "mipi_core";
+                       dmas = <&sdma 2 25 0>;
+                       dma-names = "tx";
+                       status = "disabled";
+               };
+
+               hdmi_cec: hdmi_cec@00120000 {
+                       compatible = "fsl,imx6q-hdmi-cec";
+                       interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
                                        clocks = <&clks IMX6QDL_CLK_SPDIF_GCLK>, <&clks IMX6QDL_CLK_OSC>,
                                                 <&clks IMX6QDL_CLK_SPDIF>, <&clks IMX6QDL_CLK_ASRC>,
                                                 <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_ESAI_EXTAL>,
-                                                <&clks IMX6QDL_CLK_IPG>, <&clks IMX6QDL_CLK_DUMMY>,
+                                                <&clks IMX6QDL_CLK_IPG>, <&clks IMX6QDL_CLK_MLB>,
                                                 <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_SPBA>;
                                        clock-names = "core",  "rxtx0",
                                                      "rxtx1", "rxtx2",
                                        clocks = <&clks IMX6QDL_CLK_ECSPI1>,
                                                 <&clks IMX6QDL_CLK_ECSPI1>;
                                        clock-names = "ipg", "per";
-                                       dmas = <&sdma 3 8 1>, <&sdma 4 8 2>;
+                                       dmas = <&sdma 3 7 1>, <&sdma 4 7 2>;
                                        dma-names = "rx", "tx";
                                        status = "disabled";
                                };
                                        clocks = <&clks IMX6QDL_CLK_ECSPI2>,
                                                 <&clks IMX6QDL_CLK_ECSPI2>;
                                        clock-names = "ipg", "per";
-                                       dmas = <&sdma 5 8 1>, <&sdma 6 8 2>;
+                                       dmas = <&sdma 5 7 1>, <&sdma 6 7 2>;
                                        dma-names = "rx", "tx";
                                        status = "disabled";
                                };
                                        clocks = <&clks IMX6QDL_CLK_ECSPI3>,
                                                 <&clks IMX6QDL_CLK_ECSPI3>;
                                        clock-names = "ipg", "per";
-                                       dmas = <&sdma 7 8 1>, <&sdma 8 8 2>;
+                                       dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
                                        dma-names = "rx", "tx";
                                        status = "disabled";
                                };
                                        clocks = <&clks IMX6QDL_CLK_ECSPI4>,
                                                 <&clks IMX6QDL_CLK_ECSPI4>;
                                        clock-names = "ipg", "per";
-                                       dmas = <&sdma 9 8 1>, <&sdma 10 8 2>;
+                                       dmas = <&sdma 9 7 1>, <&sdma 10 7 2>;
                                        dma-names = "rx", "tx";
                                        status = "disabled";
                                };
                                power-domains = <&pd_pu>;
                                resets = <&src 1>;
                                iram = <&ocram>;
+                               status = "disabled";
+                       };
+
+                       vpu_fsl: vpu_fsl@2040000 {
+                               compatible = "fsl,imx6-vpu";
+                               reg = <0x2040000 0x3c000>;
+                               reg-names = "vpu_regs";
+                               interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>,
+                                               <0 12 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "vpu_jpu_irq", "vpu_ipi_irq";
+                               clocks = <&clks IMX6QDL_CLK_VPU_AXI>,
+                                        <&clks IMX6QDL_CLK_MMDC_CH0_AXI>,
+                                        <&clks IMX6QDL_CLK_OCRAM>;
+                               clock-names = "vpu_clk", "mmdc_ch0_axi", "ocram";
+                               iramsize = <0x21000>;
+                               iram = <&ocram>;
+                               resets = <&src 1>;
+                               power-domains = <&pd_pu>;
                        };
 
                        aipstz@207c000 { /* AIPSTZ1 */
                                clocks = <&clks IMX6QDL_CLK_CAN1_IPG>,
                                         <&clks IMX6QDL_CLK_CAN1_SERIAL>;
                                clock-names = "ipg", "per";
+                               fsl,stop-mode = <&gpr 0x34 28 0x10 17>;
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX6QDL_CLK_CAN2_IPG>,
                                         <&clks IMX6QDL_CLK_CAN2_SERIAL>;
                                clock-names = "ipg", "per";
+                               fsl,stop-mode = <&gpr 0x34 29 0x10 18>;
                                status = "disabled";
                        };
 
-                       gpt: gpt@2098000 {
+                       gpt: timer@2098000 {
                                compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
                                reg = <0x02098000 0x4000>;
                                interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
                                #interrupt-cells = <2>;
                        };
 
-                       kpp: kpp@20b8000 {
+                       kpp: keypad@20b8000 {
                                compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp";
                                reg = <0x020b8000 0x4000>;
                                interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       wdog1: wdog@20bc000 {
+                       wdog1: watchdog@20bc000 {
                                compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
                                reg = <0x020bc000 0x4000>;
                                interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX6QDL_CLK_DUMMY>;
+                               clocks = <&clks IMX6QDL_CLK_IPG>;
                        };
 
-                       wdog2: wdog@20c0000 {
+                       wdog2: watchdog@20c0000 {
                                compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
                                reg = <0x020c0000 0x4000>;
                                interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX6QDL_CLK_DUMMY>;
+                               clocks = <&clks IMX6QDL_CLK_IPG>;
                                status = "disabled";
                        };
 
-                       clks: ccm@20c4000 {
+                       clks: clock-controller@20c4000 {
                                compatible = "fsl,imx6q-ccm";
                                reg = <0x020c4000 0x4000>;
                                interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
                                        anatop-enable-bit = <0>;
                                };
 
-                               regulator-3p0 {
+                               anatop_reg_3p0: regulator-3p0@120 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd3p0";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <3150000>;
-                                       regulator-always-on;
+                                       regulator-min-microvolt = <2625000>;
+                                       regulator-max-microvolt = <3400000>;
                                        anatop-reg-offset = <0x120>;
                                        anatop-vol-bit-shift = <8>;
                                        anatop-vol-bit-width = <5>;
                                        anatop-min-bit-val = <1>;
                                        anatop-min-voltage = <725000>;
                                        anatop-max-voltage = <1450000>;
+                                       regulator-allow-bypass;
                                };
 
                                reg_pu: regulator-vddpu {
                                        anatop-min-bit-val = <1>;
                                        anatop-min-voltage = <725000>;
                                        anatop-max-voltage = <1450000>;
+                                       regulator-allow-bypass;
                                };
 
                                reg_soc: regulator-vddsoc {
                                        anatop-min-bit-val = <1>;
                                        anatop-min-voltage = <725000>;
                                        anatop-max-voltage = <1450000>;
+                                       regulator-allow-bypass;
                                };
                        };
 
+                       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@20c9000 {
                                compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
                                reg = <0x020c9000 0x1000>;
                                interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6QDL_CLK_USBPHY1>;
+                               phy-3p0-supply = <&anatop_reg_3p0>;
                                fsl,anatop = <&anatop>;
                        };
 
                                reg = <0x020ca000 0x1000>;
                                interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6QDL_CLK_USBPHY2>;
+                               phy-3p0-supply = <&anatop_reg_3p0>;
                                fsl,anatop = <&anatop>;
                        };
 
+                       usbphy_nop1: usbphy_nop1 {
+                               compatible = "usb-nop-xceiv";
+                               clocks = <&clks IMX6QDL_CLK_USBPHY1>;
+                               clock-names = "main_clk";
+                       };
+
+                       usbphy_nop2: usbphy_nop2 {
+                               compatible = "usb-nop-xceiv";
+                               clocks = <&clks IMX6QDL_CLK_USBPHY1>;
+                               clock-names = "main_clk";
+                       };
+
+                       caam_snvs: caam-snvs@20cc000 {
+                               compatible = "fsl,imx6q-caam-snvs";
+                               reg = <0x20cc000 0x4000>;
+                       };
+
                        snvs: snvs@20cc000 {
                                compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
                                reg = <0x020cc000 0x4000>;
                                        mask = <0x60>;
                                        status = "disabled";
                                };
-
-                               snvs_lpgpr: snvs-lpgpr {
-                                       compatible = "fsl,imx6q-snvs-lpgpr";
-                               };
                        };
 
                        epit1: epit@20d0000 { /* EPIT1 */
                                interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       src: src@20d8000 {
+                       src: reset-controller@20d8000 {
                                compatible = "fsl,imx6q-src", "fsl,imx51-src";
                                reg = <0x020d8000 0x4000>;
                                interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
                                reg = <0x020dc000 0x4000>;
                                interrupt-controller;
                                #interrupt-cells = <3>;
-                               interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
-                                            <0 90 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&intc>;
                                clocks = <&clks IMX6QDL_CLK_IPG>;
                                clock-names = "ipg";
                                };
                        };
 
-                       iomuxc: iomuxc@20e0000 {
+                       iomuxc: pinctrl@20e0000 {
                                compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
                                reg = <0x20e0000 0x4000>;
                        };
 
+                       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>;
+                                               };
+                                       };
+                               };
+                       };
+
                        dcic1: dcic@20e4000 {
-                               reg = <0x020e4000 0x4000>;
+                               compatible = "fsl,imx6q-dcic";
+                               reg = <0x20e4000 0x4000>;
                                interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX6QDL_CLK_DCIC1>, <&clks IMX6QDL_CLK_DCIC1>;
+                               clock-names = "dcic", "disp-axi";
+                               gpr = <&gpr>;
+                               status = "disabled";
                        };
 
                        dcic2: dcic@20e8000 {
-                               reg = <0x020e8000 0x4000>;
+                               compatible = "fsl,imx6q-dcic";
+                               reg = <0x20e8000 0x4000>;
                                interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX6QDL_CLK_DCIC2>, <&clks IMX6QDL_CLK_DCIC2>;
+                               clock-names = "dcic", "disp-axi";
+                               gpr = <&gpr>;
+                               status = "disabled";
                        };
 
                        sdma: sdma@20ec000 {
                                compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
                                reg = <0x020ec000 0x4000>;
                                interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX6QDL_CLK_SDMA>,
+                               clocks = <&clks IMX6QDL_CLK_IPG>,
                                         <&clks IMX6QDL_CLK_SDMA>;
                                clock-names = "ipg", "ahb";
                                #dma-cells = <3>;
                        reg = <0x02100000 0x100000>;
                        ranges;
 
-                       crypto: caam@2100000 {
+                       crypto: crypto@2100000 {
                                compatible = "fsl,sec-v4.0";
                                #address-cells = <1>;
                                #size-cells = <1>;
                                reg = <0x2100000 0x10000>;
-                               ranges = <0 0x2100000 0x10000>;
+                               ranges = <0 0x2100000 0x40000>;
+                               interrupt-parent = <&intc>; /* interrupts = <0 92 0x4>; */
                                clocks = <&clks IMX6QDL_CLK_CAAM_MEM>,
                                         <&clks IMX6QDL_CLK_CAAM_ACLK>,
                                         <&clks IMX6QDL_CLK_CAAM_IPG>,
                                         <&clks IMX6QDL_CLK_EIM_SLOW>;
                                clock-names = "mem", "aclk", "ipg", "emi_slow";
 
-                               sec_jr0: jr0@1000 {
+                               sec_ctrl: ctrl@0 {
+                                       /* CAAM Page 0 only accessible */
+                                       /*      by secure world */
+                                       compatible = "fsl,sec-v4.0-ctrl";
+                                       reg = <0x2100000 0x1000>;
+                                       secure-status = "okay";
+                                       status = "disabled";
+                               };
+
+                               sec_jr0: jr@1000 {
                                        compatible = "fsl,sec-v4.0-job-ring";
                                        reg = <0x1000 0x1000>;
                                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
                                };
 
-                               sec_jr1: jr1@2000 {
+                               sec_jr1: jr@2000 {
                                        compatible = "fsl,sec-v4.0-job-ring";
                                        reg = <0x2000 0x1000>;
                                        interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
                                rx-burst-size-dword = <0x10>;
+                               fsl,anatop = <&anatop>;
                                status = "disabled";
                        };
 
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
                                rx-burst-size-dword = <0x10>;
+                               phy_type = "hsic";
+                               fsl,usbphy = <&usbphy_nop1>;
+                               fsl,anatop = <&anatop>;
                                status = "disabled";
                        };
 
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
                                rx-burst-size-dword = <0x10>;
+                               phy_type = "hsic";
+                               fsl,usbphy = <&usbphy_nop2>;
+                               fsl,anatop = <&anatop>;
                                status = "disabled";
                        };
 
                        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>;
+                                       <&gpc 0 118 IRQ_TYPE_LEVEL_HIGH>,
+                                       <&gpc 0 119 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6QDL_CLK_ENET>,
                                         <&clks IMX6QDL_CLK_ENET>,
                                         <&clks IMX6QDL_CLK_ENET_REF>;
                                clock-names = "ipg", "ahb", "ptp";
+                               stop-mode = <&gpr 0x34 27>;
+                               fsl,wakeup_irq = <0>;
                                status = "disabled";
                        };
 
-                       mlb@218c000 {
+                       mlb: mlb@218c000 {
+                               compatible = "fsl,imx6q-mlb150";
                                reg = <0x0218c000 0x4000>;
                                interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>,
                                             <0 117 IRQ_TYPE_LEVEL_HIGH>,
                                             <0 126 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX6QDL_CLK_MLB>;
+                               clock-names = "mlb";
+                               iram = <&ocram>;
+                               status = "disabled";
                        };
 
-                       usdhc1: usdhc@2190000 {
+                       usdhc1: mmc@2190000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02190000 0x4000>;
                                interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usdhc2: usdhc@2194000 {
+                       usdhc2: mmc@2194000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02194000 0x4000>;
                                interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usdhc3: usdhc@2198000 {
+                       usdhc3: mmc@2198000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02198000 0x4000>;
                                interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
-                       usdhc4: usdhc@219c000 {
+                       usdhc4: mmc@219c000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x0219c000 0x4000>;
                                interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
                                reg = <0x021ac000 0x4000>;
                        };
 
-                       mmdc0: mmdc@21b0000 { /* MMDC0 */
+                       mmdc0-1@021b0000 { /* MMDC0-1 */
+                               compatible = "fsl,imx6q-mmdc-combine";
+                               reg = <0x021b0000 0x8000>;
+                       };
+
+                       mmdc0: memory-controller@21b0000 { /* MMDC0 */
                                compatible = "fsl,imx6q-mmdc";
                                reg = <0x021b0000 0x4000>;
                        };
 
-                       mmdc1: mmdc@21b4000 { /* MMDC1 */
+                       mmdc1: memory-controller@21b4000 { /* MMDC1 */
+                               compatible = "fsl,imx6q-mmdc";
                                reg = <0x021b4000 0x4000>;
+                               status = "disabled";
                        };
 
                        weim: weim@21b8000 {
                                status = "disabled";
                        };
 
-                       ocotp: ocotp@21bc000 {
+                       ocotp: efuse@21bc000 {
                                compatible = "fsl,imx6q-ocotp", "syscon";
                                reg = <0x021bc000 0x4000>;
                                clocks = <&clks IMX6QDL_CLK_IIM>;
                        };
 
                        mipi_csi: mipi@21dc000 {
-                               compatible = "fsl,imx6-mipi-csi2";
+                               compatible = "fsl,imx6q-mipi-csi2";
                                reg = <0x021dc000 0x4000>;
                                #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";
+                                        <&clks IMX6QDL_CLK_EIM_SEL>;
+                               clock-names = "dphy_clk", "cfg_clk", "pixel_clk";
                                status = "disabled";
                        };
 
                                reg = <0x021e4000 0x4000>;
                                interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6QDL_CLK_VDOA>;
+                               iram = <&ocram>;
                        };
 
                        uart2: serial@21e8000 {
                        interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>,
                                     <0 5 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clks IMX6QDL_CLK_IPU1>,
-                                <&clks IMX6QDL_CLK_IPU1_DI0>,
-                                <&clks IMX6QDL_CLK_IPU1_DI1>;
-                       clock-names = "bus", "di0", "di1";
+                                <&clks IMX6QDL_CLK_IPU1_DI0>, <&clks IMX6QDL_CLK_IPU1_DI1>,
+                                <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
+                                <&clks IMX6QDL_CLK_LDB_DI0>, <&clks IMX6QDL_CLK_LDB_DI1>;
+                       clock-names = "bus",
+                                     "di0", "di1",
+                                     "di0_sel", "di1_sel",
+                                     "ldb_di0", "ldb_di1";
                        resets = <&src 2>;
+                       bypass_reset = <0>;
 
                        ipu1_csi0: port@0 {
                                reg = <0>;
diff --git a/arch/arm/dts/imx6qp-sabreauto-ecspi.dts b/arch/arm/dts/imx6qp-sabreauto-ecspi.dts
new file mode 100644 (file)
index 0000000..8846739
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2015 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.
+ */
+
+#include "imx6qp-sabreauto.dts"
+
+&ecspi1 {
+       pinctrl-assert-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&can2 {
+       /* max7310_c on i2c3 is gone */
+       status = "disabled";
+};
+
+&i2c3 {
+       /* pin conflict with ecspi1 */
+       status = "disabled";
+};
+
+&uart3 {
+       /* the uart3 depends on the i2c3, so disable it too. */
+       status = "disabled";
+};
+
+&usbh1 {
+       /* max7310_b on i2c3 is gone */
+       status = "disabled";
+};
+
+&usbotg {
+       /* max7310_c on i2c3 is gone */
+       status = "okay";
+       dr_mode = "peripheral";
+};
diff --git a/arch/arm/dts/imx6qp-sabreauto-gpmi-weim.dts b/arch/arm/dts/imx6qp-sabreauto-gpmi-weim.dts
new file mode 100644 (file)
index 0000000..b91ebad
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2015 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.
+ */
+
+#include "imx6qp-sabreauto.dts"
+
+&ecspi1 {
+       /* pin conflict with weim */
+       status = "disabled";
+};
+
+&can2 {
+       /* max7310_c on i2c3 is gone */
+       status = "disabled";
+};
+
+&gpmi {
+       compatible = "fsl,imx6qp-gpmi-nand";
+       status = "okay";
+};
+
+&i2c3 {
+       /* pin conflict with weim */
+       status = "disabled";
+};
+
+&uart3 {
+       /* pin conflict with gpmi and weim */
+       status = "disabled";
+};
+
+&usbh1 {
+       /* max7310_b on i2c3 is gone */
+       status = "disabled";
+};
+
+&usbotg {
+       /* max7310_c on i2c3 is gone */
+       status = "okay";
+       dr_mode = "peripheral";
+};
+
+&weim {
+       pinctrl-assert-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
index d4caeeb..4656026 100644 (file)
@@ -8,10 +8,44 @@
 #include "imx6qdl-sabreauto.dtsi"
 
 / {
-       model = "Freescale i.MX6 Quad Plus SABRE Automotive Board";
+       model = "i.MX6 Quad Plus SABRE Automotive Board";
        compatible = "fsl,imx6qp-sabreauto", "fsl,imx6qp";
 };
 
+&ldb {
+       lvds-channel@0 {
+               crtc = "ipu2-di0";
+       };
+
+       lvds-channel@1 {
+               crtc = "ipu2-di1";
+       };
+};
+
+&mxcfb1 {
+       prefetch;
+       status = "okay";
+};
+
+&mxcfb2 {
+       prefetch;
+       status = "okay";
+};
+
+&mxcfb3 {
+       prefetch;
+       status = "okay";
+};
+
+&mxcfb4 {
+       prefetch;
+       status = "okay";
+};
+
+&fec {
+       pinctrl-assert-gpios = <&max7322 0 GPIO_ACTIVE_HIGH>;
+};
+
 &i2c2 {
        max7322: gpio@68 {
                compatible = "maxim,max7322";
        };
 };
 
-&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 {
+       reset-gpio = <&max7310_c 5 GPIO_ACTIVE_LOW>;
+       status = "okay";
 };
 
-&pcie {
-       status = "disabled";
+&pre1 {
+       status = "okay";
+};
+
+&pre2 {
+       status = "okay";
+};
+
+&pre3 {
+       status = "okay";
+};
+
+&pre4 {
+       status = "okay";
+};
+
+&prg1 {
+       memory-region = <&memory>;
+       status = "okay";
+};
+
+&prg2 {
+       memory-region = <&memory>;
+       status = "okay";
+};
+
+&reg_sd3_vmmc {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&usdhc3 {
+       vmmc-supply = <&reg_sd3_vmmc>;
 };
 
 &vgen3_reg {
index f1b9cb1..7a158eb 100644 (file)
@@ -8,7 +8,7 @@
 #include "imx6qdl-sabresd.dtsi"
 
 / {
-       model = "Freescale i.MX6 Quad Plus SABRE Smart Device Board";
+       model = "i.MX6 Quad Plus SABRE Smart Device Board";
        compatible = "fsl,imx6qp-sabresd", "fsl,imx6qp";
 };
 
        };
 };
 
+&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
+                       >;
+               };
+       };
+};
+
+&ldb {
+       lvds-channel@0 {
+               crtc = "ipu2-di0";
+       };
+
+       lvds-channel@1 {
+               crtc = "ipu2-di1";
+       };
+};
+
+&mxcfb1 {
+       prefetch;
+       status = "okay";
+};
+
+&mxcfb2 {
+       prefetch;
+       status = "okay";
+};
+
+&mxcfb3 {
+       prefetch;
+       status = "okay";
+};
+
+&mxcfb4 {
+       prefetch;
+       status = "okay";
+};
+
+&ov564x {
+       AVDD-supply = <&vgen6_reg>; /* 2.8v */
+       DOVDD-supply = <&sw4_reg>; /* 1.8v */
+};
+
+&ov564x_mipi {
+       AVDD-supply = <&vgen6_reg>; /* 2.8v */
+       DOVDD-supply = <&sw4_reg>; /* 1.8v */
+};
+
 &pcie {
-       status = "disabled";
+       pcie-bus-supply = <&vgen3_reg>; /* 1.8v pwr up pcie ext osc on revb */
+       reset-gpio = <&gpio7 12 0>;
+       status = "okay";
+};
+
+&pre1 {
+       status = "okay";
+};
+
+&pre2 {
+       status = "okay";
+};
+
+&pre3 {
+       status = "okay";
+};
+
+&pre4 {
+       status = "okay";
+};
+
+&prg1 {
+       memory-region = <&memory>;
+       status = "okay";
+};
+
+&prg2 {
+       memory-region = <&memory>;
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
 };
index 5f51f8e..8ef74f7 100644 (file)
@@ -5,6 +5,15 @@
 #include "imx6q.dtsi"
 
 / {
+       aliases {
+               pre0 = &pre1;
+               pre1 = &pre2;
+               pre2 = &pre3;
+               pre3 = &pre4;
+               prg0 = &prg1;
+               prg1 = &prg2;
+       };
+
        soc {
                ocram2: sram@940000 {
                        compatible = "mmio-sram";
                        clocks = <&clks IMX6QDL_CLK_OCRAM>;
                };
 
-               aips-bus@2100000 {
+               pcie: pcie@1ffc000 {
+                       compatible = "fsl,imx6qp-pcie", "snps,dw-pcie";
+                       reg = <0x01ffc000 0x4000>, <0x01f00000 0x80000>;
+                       reg-names = "dbi", "config";
+                       #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>;
+                       interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 123 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc 0 122 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc 0 121 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc 0 120 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clks IMX6QDL_CLK_PCIE_REF_125M>, <&clks IMX6QDL_PLL6_BYPASS>,
+                                <&clks IMX6QDL_PLL6_BYPASS_SRC>,
+                                <&clks IMX6QDL_CLK_LVDS1_GATE>, <&clks IMX6QDL_CLK_PCIE_AXI>;
+                       clock-names = "pcie_phy", "pcie_ext", "pcie_ext_src", "pcie_bus", "pcie";
+                       status = "disabled";
+               };
+
+               aips-bus@2100000 { /* AIPS2 */
                        pre1: pre@21c8000 {
-                               compatible = "fsl,imx6qp-pre";
+                               compatible = "fsl,imx6q-pre";
                                reg = <0x021c8000 0x1000>;
-                               interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
                                clocks = <&clks IMX6QDL_CLK_PRE0>;
-                               clock-names = "axi";
-                               fsl,iram = <&ocram2>;
+                               interrupts = <0 90 IRQ_TYPE_EDGE_RISING>;
+                               ocram = <&ocram2>;
+                               status = "disabled";
                        };
 
                        pre2: pre@21c9000 {
-                               compatible = "fsl,imx6qp-pre";
+                               compatible = "fsl,imx6q-pre";
                                reg = <0x021c9000 0x1000>;
-                               interrupts = <GIC_SPI 97 IRQ_TYPE_EDGE_RISING>;
                                clocks = <&clks IMX6QDL_CLK_PRE1>;
-                               clock-names = "axi";
-                               fsl,iram = <&ocram2>;
+                               interrupts = <0 97 IRQ_TYPE_EDGE_RISING>;
+                               ocram = <&ocram2>;
+                               status = "disabled";
                        };
 
                        pre3: pre@21ca000 {
-                               compatible = "fsl,imx6qp-pre";
+                               compatible = "fsl,imx6q-pre";
                                reg = <0x021ca000 0x1000>;
-                               interrupts = <GIC_SPI 98 IRQ_TYPE_EDGE_RISING>;
                                clocks = <&clks IMX6QDL_CLK_PRE2>;
-                               clock-names = "axi";
-                               fsl,iram = <&ocram3>;
+                               interrupts = <0 98 IRQ_TYPE_EDGE_RISING>;
+                               ocram = <&ocram3>;
+                               status = "disabled";
                        };
 
                        pre4: pre@21cb000 {
-                               compatible = "fsl,imx6qp-pre";
+                               compatible = "fsl,imx6q-pre";
                                reg = <0x021cb000 0x1000>;
-                               interrupts = <GIC_SPI 99 IRQ_TYPE_EDGE_RISING>;
                                clocks = <&clks IMX6QDL_CLK_PRE3>;
-                               clock-names = "axi";
-                               fsl,iram = <&ocram3>;
+                               interrupts = <0 99 IRQ_TYPE_EDGE_RISING>;
+                               ocram = <&ocram3>;
+                               status = "disabled";
                        };
 
                        prg1: prg@21cc000 {
-                               compatible = "fsl,imx6qp-prg";
+                               compatible = "fsl,imx6q-prg";
                                reg = <0x021cc000 0x1000>;
-                               clocks = <&clks IMX6QDL_CLK_PRG0_APB>,
-                                        <&clks IMX6QDL_CLK_PRG0_AXI>;
-                               clock-names = "ipg", "axi";
-                               fsl,pres = <&pre1>, <&pre2>, <&pre3>;
+                               clocks = <&clks IMX6QDL_CLK_PRG0_AXI>,
+                                        <&clks IMX6QDL_CLK_PRG0_APB>;
+                               clock-names = "axi", "apb";
+                               gpr = <&gpr>;
+                               status = "disabled";
                        };
 
                        prg2: prg@21cd000 {
-                               compatible = "fsl,imx6qp-prg";
+                               compatible = "fsl,imx6q-prg";
                                reg = <0x021cd000 0x1000>;
-                               clocks = <&clks IMX6QDL_CLK_PRG1_APB>,
-                                        <&clks IMX6QDL_CLK_PRG1_AXI>;
-                               clock-names = "ipg", "axi";
-                               fsl,pres = <&pre4>, <&pre2>, <&pre3>;
+                               clocks = <&clks IMX6QDL_CLK_PRG1_AXI>,
+                                        <&clks IMX6QDL_CLK_PRG1_APB>;
+                               clock-names = "axi", "apb";
+                               gpr = <&gpr>;
+                               status = "disabled";
                        };
                };
        };
 
 &ipu1 {
        compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
+       clocks = <&clks IMX6QDL_CLK_IPU1>,
+                <&clks IMX6QDL_CLK_IPU1_DI0>, <&clks IMX6QDL_CLK_IPU1_DI1>,
+                <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
+                <&clks IMX6QDL_CLK_LDB_DI0_DIV_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_DIV_SEL>,
+                <&clks IMX6QDL_CLK_PRG0_APB>;
+       clock-names = "bus",
+                     "di0", "di1",
+                     "di0_sel", "di1_sel",
+                     "ldb_di0", "ldb_di1", "prg";
        fsl,prg = <&prg1>;
 };
 
 &ipu2 {
        compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
+       clocks = <&clks IMX6QDL_CLK_IPU2>,
+                <&clks IMX6QDL_CLK_IPU2_DI0>, <&clks IMX6QDL_CLK_IPU2_DI1>,
+                <&clks IMX6QDL_CLK_IPU2_DI0_SEL>, <&clks IMX6QDL_CLK_IPU2_DI1_SEL>,
+                <&clks IMX6QDL_CLK_LDB_DI0_DIV_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_DIV_SEL>,
+                <&clks IMX6QDL_CLK_PRG1_APB>;
+       clock-names = "bus",
+                     "di0", "di1",
+                     "di0_sel", "di1_sel",
+                     "ldb_di0", "ldb_di1", "prg";
        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";
+       compatible = "fsl,imx6qp-ldb", "fsl,imx6q-ldb", "fsl,imx53-ldb";
 };
 
 &mmdc0 {
index 2905033..2a25fdb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 Freescale Semiconductor, Inc.
+ * Copyright (C) 2015 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
 #define IMX6QDL_CLK_PRG0_APB                   256
 #define IMX6QDL_CLK_PRG1_APB                   257
 #define IMX6QDL_CLK_PRE_AXI                    258
-#define IMX6QDL_CLK_END                                259
+#define IMX6QDL_CLK_MLB_SEL                    259
+#define IMX6QDL_CLK_MLB_PODF                   260
+#define IMX6QDL_CLK_AXI_ALT_SEL                        261
+#define IMX6QDL_CLK_LDB_DI0_DIV_7              262
+#define IMX6QDL_CLK_LDB_DI1_DIV_7              263
+#define IMX6QDL_CLK_LDB_DI0_DIV_SEL            264
+#define IMX6QDL_CLK_LDB_DI1_DIV_SEL            265
+#define IMX6QDL_CLK_DCIC1                      266
+#define IMX6QDL_CLK_DCIC2                      267
+#define IMX6QDL_CLK_END                                268
 
 #endif /* __DT_BINDINGS_CLOCK_IMX6QDL_H */