MLK-18151-1 dts: mx7d: Update imx7d dts and binding files
authorYe Li <ye.li@nxp.com>
Tue, 7 May 2019 05:35:22 +0000 (22:35 -0700)
committerYe Li <ye.li@nxp.com>
Thu, 29 Apr 2021 05:03:38 +0000 (22:03 -0700)
Porting the the imx7d dtsi, dts files and binding files from 5.4.y kernel
(359d8f37b464afea3718796fdd6eb27b0d2df8b1)

New dts files are added to support GPMI-WEIM, RevA boards.

Changes in DTS and DTSi:
1. Add USB alias
2. Modify the SPI alias for qspi
3. Disable USDHC2 since it is for SDIO
4. Add i2c force idle support pins
5. Add back mmc alias by comparing with 2019.04.
6. Update clock, pin and reset binding files
7. Update QSPI only support 1 bit mode, remove RX/TX 4 bit mode

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 5feb51de9b4ddde2bf6c44f18320ba262f424b7c)
(cherry picked from commit ee0ebdd3ef40ca1ebd80287a8c4bc5f2c772f5dd)

arch/arm/dts/Makefile
arch/arm/dts/imx7d-pinfunc.h
arch/arm/dts/imx7d-sdb-gpmi-weim.dts [new file with mode: 0644]
arch/arm/dts/imx7d-sdb-qspi-u-boot.dtsi [deleted file]
arch/arm/dts/imx7d-sdb-qspi.dts
arch/arm/dts/imx7d-sdb-reva.dts [new file with mode: 0644]
arch/arm/dts/imx7d-sdb-u-boot.dtsi [deleted file]
arch/arm/dts/imx7d-sdb.dts
arch/arm/dts/imx7d.dtsi
arch/arm/dts/imx7s.dtsi
include/dt-bindings/clock/imx7d-clock.h

index 94841b2..6cb3972 100644 (file)
@@ -772,6 +772,8 @@ dtb-$(CONFIG_ARCH_MX6) += \
 
 dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
        imx7d-sdb-qspi.dtb \
+       imx7d-sdb-gpmi-weim.dtb \
+       imx7d-sdb-reva.dtb \
        imx7-colibri-emmc.dtb \
        imx7-colibri-rawnand.dtb \
        imx7s-warp.dtb \
index f2493bc..aa9dbea 100644 (file)
 #define MX7D_PAD_UART2_RX_DATA__UART2_DCE_RX                      0x0130 0x03A0 0x06FC 0x0 0x2
 #define MX7D_PAD_UART2_RX_DATA__UART2_DTE_TX                      0x0130 0x03A0 0x0000 0x0 0x0
 #define MX7D_PAD_UART2_RX_DATA__I2C2_SCL                          0x0130 0x03A0 0x05DC 0x1 0x0
-#define MX7D_PAD_UART2_RX_DATA__SAI3_RX_BCLK                      0x0130 0x03A0 0x0000 0x2 0x0
+#define MX7D_PAD_UART2_RX_DATA__SAI3_RX_BCLK                      0x0130 0x03A0 0x06C4 0x2 0x0
 #define MX7D_PAD_UART2_RX_DATA__ECSPI1_SS3                        0x0130 0x03A0 0x0000 0x3 0x0
 #define MX7D_PAD_UART2_RX_DATA__ENET2_1588_EVENT1_IN              0x0130 0x03A0 0x0000 0x4 0x0
 #define MX7D_PAD_UART2_RX_DATA__GPIO4_IO2                         0x0130 0x03A0 0x0000 0x5 0x0
 #define MX7D_PAD_ENET1_RGMII_TD3__GPIO7_IO9                       0x0250 0x04C0 0x0000 0x5 0x0
 #define MX7D_PAD_ENET1_RGMII_TD3__CAAM_RNG_OSC_OBS                0x0250 0x04C0 0x0000 0x7 0x0
 #define MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL           0x0254 0x04C4 0x0000 0x0 0x0
-#define MX7D_PAD_ENET1_RGMII_TX_CTL__SAI1_RX_SYNC                 0x0254 0x04C4 0x0000 0x2 0x0
+#define MX7D_PAD_ENET1_RGMII_TX_CTL__SAI1_RX_SYNC                 0x0254 0x04C4 0x06A4 0x2 0x1
 #define MX7D_PAD_ENET1_RGMII_TX_CTL__GPT2_COMPARE1                0x0254 0x04C4 0x0000 0x3 0x0
 #define MX7D_PAD_ENET1_RGMII_TX_CTL__EPDC_PWR_CTRL2               0x0254 0x04C4 0x0000 0x4 0x0
 #define MX7D_PAD_ENET1_RGMII_TX_CTL__GPIO7_IO10                   0x0254 0x04C4 0x0000 0x5 0x0
 #define MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC                 0x0258 0x04C8 0x0000 0x0 0x0
 #define MX7D_PAD_ENET1_RGMII_TXC__ENET1_TX_ER                     0x0258 0x04C8 0x0000 0x1 0x0
-#define MX7D_PAD_ENET1_RGMII_TXC__SAI1_RX_BCLK                    0x0258 0x04C8 0x0000 0x2 0x0
+#define MX7D_PAD_ENET1_RGMII_TXC__SAI1_RX_BCLK                    0x0258 0x04C8 0x069C 0x2 0x1
 #define MX7D_PAD_ENET1_RGMII_TXC__GPT2_COMPARE2                   0x0258 0x04C8 0x0000 0x3 0x0
 #define MX7D_PAD_ENET1_RGMII_TXC__EPDC_PWR_CTRL3                  0x0258 0x04C8 0x0000 0x4 0x0
 #define MX7D_PAD_ENET1_RGMII_TXC__GPIO7_IO11                      0x0258 0x04C8 0x0000 0x5 0x0
diff --git a/arch/arm/dts/imx7d-sdb-gpmi-weim.dts b/arch/arm/dts/imx7d-sdb-gpmi-weim.dts
new file mode 100644 (file)
index 0000000..cba5f52
--- /dev/null
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ * Copyright 2018 NXP
+ */
+
+#include "imx7d-sdb.dts"
+
+&gpmi{
+       status = "okay";
+};
+
+&sai1{
+       status = "disabled";
+};
+
+&usdhc3{
+       status = "disabled";
+};
+
+&uart5{
+       status = "disabled";
+};
diff --git a/arch/arm/dts/imx7d-sdb-qspi-u-boot.dtsi b/arch/arm/dts/imx7d-sdb-qspi-u-boot.dtsi
deleted file mode 100644 (file)
index 585af6d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright 2018 NXP
- */
-
-&qspi1 {
-       flash0: mx25l51245g@0 {
-               compatible = "jedec,spi-nor";
-       };
-};
index 9bb4c74..e88564f 100644 (file)
 };
 
 &iomuxc {
-       qspi1 {
-               pinctrl_qspi1_1: qspi1grp_1 {
-                       fsl,pins = <
-                               MX7D_PAD_EPDC_DATA00__QSPI_A_DATA0 0x51
-                               MX7D_PAD_EPDC_DATA01__QSPI_A_DATA1 0x51
-                               MX7D_PAD_EPDC_DATA02__QSPI_A_DATA2 0x51
-                               MX7D_PAD_EPDC_DATA03__QSPI_A_DATA3 0x51
-                               MX7D_PAD_EPDC_DATA05__QSPI_A_SCLK 0x51
-                               MX7D_PAD_EPDC_DATA06__QSPI_A_SS0_B 0x51
-                       >;
-               };
+       pinctrl_qspi1_1: qspi1grp_1 {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_DATA00__QSPI_A_DATA0 0x51
+                       MX7D_PAD_EPDC_DATA01__QSPI_A_DATA1 0x51
+                       MX7D_PAD_EPDC_DATA02__QSPI_A_DATA2 0x51
+                       MX7D_PAD_EPDC_DATA03__QSPI_A_DATA3 0x51
+                       MX7D_PAD_EPDC_DATA05__QSPI_A_SCLK 0x51
+                       MX7D_PAD_EPDC_DATA06__QSPI_A_SS0_B 0x51
+               >;
        };
 };
 
        flash0: mx25l51245g@0 {
                #address-cells = <1>;
                #size-cells = <1>;
-               compatible = "macronix,mx25l51245g";
+               compatible = "jedec,spi-nor";
                spi-max-frequency = <29000000>;
-               /* take off one dummy cycle */
-               spi-nor,ddr-quad-read-dummy = <5>;
                reg = <0>;
        };
 };
diff --git a/arch/arm/dts/imx7d-sdb-reva.dts b/arch/arm/dts/imx7d-sdb-reva.dts
new file mode 100644 (file)
index 0000000..df06df0
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * 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 "imx7d-sdb.dts"
+
+/ {
+       reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
+               pinctrl-0 = <&pinctrl_usb_otg2_vbus_reg_reva>;
+               gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&fec2 {
+       /delete-property/phy-supply;
+};
+
+&iomuxc {
+       imx7d-sdb {
+               pinctrl_tsc2046_pendown: tsc2046_pendown {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_DATA13__GPIO2_IO13        0x59
+                       >;
+               };
+
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  /* bt reg on */
+                       >;
+               };
+
+               pinctrl_usb_otg2_vbus_reg_reva: usbotg2vbusregrevagrp {
+                       fsl,pins = <
+                               MX7D_PAD_UART3_CTS_B__GPIO4_IO7         0x14
+                       >;
+               };
+       };
+};
diff --git a/arch/arm/dts/imx7d-sdb-u-boot.dtsi b/arch/arm/dts/imx7d-sdb-u-boot.dtsi
deleted file mode 100644 (file)
index a99c087..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-&usbotg1 {
-       dr_mode = "peripheral";
-};
index 8191ac7..b9fd799 100644 (file)
@@ -8,9 +8,14 @@
 #include "imx7d.dtsi"
 
 / {
-       model = "Freescale i.MX7 SabreSD Board";
+       model = "i.MX7 SabreSD Board";
        compatible = "fsl,imx7d-sdb", "fsl,imx7d";
 
+       aliases {
+               spi5 = &soft_spi;
+               gpio7 = &extended_io;
+       };
+
        chosen {
                stdout-path = &uart1;
        };
                reg = <0x80000000 0x80000000>;
        };
 
+       modem_reset: modem-reset {
+               compatible = "gpio-reset";
+               reset-gpios = <&gpio4 23 GPIO_ACTIVE_LOW>;
+               reset-delay-us = <1000>;
+               #reset-cells = <0>;
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
                pinctrl-names = "default";
                };
        };
 
-       spi4 {
+       soft_spi: soft-spi {
                compatible = "spi-gpio";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_spi4>;
-               gpio-sck = <&gpio1 13 GPIO_ACTIVE_LOW>;
-               gpio-mosi = <&gpio1 9 GPIO_ACTIVE_LOW>;
-               cs-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+               gpio-sck = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+               gpio-mosi = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+               cs-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
                num-chipselects = <1>;
                #address-cells = <1>;
                #size-cells = <0>;
@@ -57,6 +69,7 @@
                        #gpio-cells = <2>;
                        reg = <0>;
                        registers-number = <1>;
+                       registers-default = /bits/ 8 <0x74>; /* Enable PERI_3V3, SENSOR_RST_B and HDMI_RST*/
                        spi-max-frequency = <100000>;
                };
        };
                regulator-max-microvolt = <1800000>;
        };
 
-       reg_brcm: regulator-brcm {
+       reg_sd1_vmmc: regulator-sd1-vmmc {
                compatible = "regulator-fixed";
-               gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               regulator-name = "brcm_reg";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_brcm_reg>;
+               regulator-name = "VDD_SD1";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
                startup-delay-us = <200000>;
+               off-on-delay-us = <20000>;
+               enable-active-high;
        };
 
        reg_lcd_3v3: regulator-lcd-3v3 {
                status = "okay";
        };
 
-       panel {
-               compatible = "innolux,at043tn24";
-               backlight = <&backlight>;
-               power-supply = <&reg_lcd_3v3>;
+       pxp_v4l2_out {
+               compatible = "fsl,imx7d-pxp-v4l2", "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2";
+               status = "okay";
+       };
 
-               port {
-                       panel_in: endpoint {
-                               remote-endpoint = <&display_out>;
-                       };
-               };
+       sound {
+               compatible = "fsl,imx7d-evk-wm8960", "fsl,imx-audio-wm8960";
+               model = "wm8960-audio";
+               cpu-dai = <&sai1>;
+               audio-codec = <&codec>;
+               codec-master;
+               /* JD2: hp detect high for headphone*/
+               hp-det = <2 0>;
+               hp-det-gpios = <&gpio2 28 0>;
+               audio-routing =
+                       "Headphone Jack", "HP_L",
+                       "Headphone Jack", "HP_R",
+                       "Ext Spk", "SPK_LP",
+                       "Ext Spk", "SPK_LN",
+                       "Ext Spk", "SPK_RP",
+                       "Ext Spk", "SPK_RN",
+                       "LINPUT1", "Main MIC",
+                       "Main MIC", "MICB";
+               assigned-clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_SRC>,
+                               <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+               assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+               assigned-clock-rates = <0>, <12288000>;
+       };
+
+       sound-hdmi {
+               compatible = "fsl,imx7d-sdb-sii902x",
+                          "fsl,imx-audio-sii902x";
+               model = "sii902x-audio";
+               cpu-dai = <&sai3>;
+               hdmi-controller = <&sii902x>;
+       };
+
+       usdhc2_pwrseq: usdhc2_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_brcm_reg>;
+               reset-gpios = <&gpio4 21 GPIO_ACTIVE_LOW>;
        };
 };
 
        cpu-supply = <&sw1a_reg>;
 };
 
+&clks {
+       assigned-clocks = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <884736000>;
+};
+
+&csi1 {
+       csi-mux-mipi = <&gpr 0x14 4>;
+       fsl,mipi-mode;
+       status = "okay";
+
+       port {
+               csi_ep: endpoint {
+                       remote-endpoint = <&csi_mipi_ep>;
+               };
+       };
+};
+
 &ecspi3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi3>;
        };
 };
 
+&epdc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_epdc0 &pinctrl_enet2_reg>;
+       V3P3-supply = <&V3P3_reg>;
+       VCOM-supply = <&VCOM_reg>;
+       DISPLAY-supply = <&DISPLAY_reg>;
+       en-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+       status = "disabled";
+};
+
+&epxp {
+       status = "okay";
+};
+
 &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet1>;
-       assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
-                         <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
-       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
-       assigned-clock-rates = <0>, <100000000>;
+       assigned-clocks = <&clks IMX7D_ENET_PHY_REF_ROOT_SRC>,
+                         <&clks IMX7D_ENET_AXI_ROOT_SRC>,
+                         <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
+                         <&clks IMX7D_ENET1_TIME_ROOT_CLK>,
+                         <&clks IMX7D_ENET_AXI_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_25M_CLK>,
+                                <&clks IMX7D_PLL_ENET_MAIN_250M_CLK>,
+                                <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+       assigned-clock-rates = <0>, <0>, <0>, <100000000>, <250000000>;
        phy-mode = "rgmii";
        phy-handle = <&ethphy0>;
        fsl,magic-packet;
 &fec2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet2>;
-       assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
-                         <&clks IMX7D_ENET2_TIME_ROOT_CLK>;
-       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
-       assigned-clock-rates = <0>, <100000000>;
+       assigned-clocks = <&clks IMX7D_ENET_PHY_REF_ROOT_SRC>,
+                         <&clks IMX7D_ENET_AXI_ROOT_SRC>,
+                         <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
+                         <&clks IMX7D_ENET2_TIME_ROOT_CLK>,
+                         <&clks IMX7D_ENET_AXI_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_25M_CLK>,
+                                <&clks IMX7D_PLL_ENET_MAIN_250M_CLK>,
+                                <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+       assigned-clock-rates = <0>, <0>, <0>, <100000000>, <250000000>;
        phy-mode = "rgmii";
        phy-handle = <&ethphy1>;
        phy-supply = <&reg_fec2_3v3>;
        status = "okay";
 };
 
+&mipi_csi {
+       clock-frequency = <240000000>;
+       status = "okay";
+       port {
+               mipi_sensor_ep: endpoint@1 {
+                       remote-endpoint = <&ov5640_mipi_ep>;
+                       data-lanes = <2>;
+                       csis-hs-settle = <13>;
+                       csis-clk-settle = <2>;
+                       csis-wclk;
+               };
+
+               csi_mipi_ep: endpoint@2 {
+                       remote-endpoint = <&csi_ep>;
+               };
+       };
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand_1>;
+       status = "disabled";
+       nand-on-flash-bbt;
+};
+
 &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c1>;
 };
 
 &i2c2 {
-       pinctrl-names = "default";
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio4 11 GPIO_ACTIVE_HIGH>;
        status = "okay";
 
+       fxas2100x@20 {
+               compatible = "fsl,fxas2100x";
+               reg = <0x20>;
+       };
+
+       fxos8700@1e {
+               compatible = "fsl,fxos8700";
+               reg = <0x1e>;
+       };
+
        mpl3115@60 {
                compatible = "fsl,mpl3115";
                reg = <0x60>;
 };
 
 &i2c3 {
-       pinctrl-names = "default";
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       scl-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
        status = "okay";
+
+       sii902x: sii902x@39 {
+               compatible = "SiI,sii902x";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_sii902x>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+               mode_str ="1280x720M@60";
+               bits-per-pixel = <16>;
+               reg = <0x39>;
+               status = "okay";
+       };
+
+       max17135: max17135@48 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_max17135>;
+               compatible = "maxim,max17135";
+               reg = <0x48>;
+               status = "disabled";
+
+               vneg_pwrup = <1>;
+               gvee_pwrup = <2>;
+               vpos_pwrup = <10>;
+               gvdd_pwrup = <12>;
+               gvdd_pwrdn = <1>;
+               vpos_pwrdn = <2>;
+               gvee_pwrdn = <8>;
+               vneg_pwrdn = <10>;
+               gpio_pmic_pwrgood = <&gpio2 31 0>;
+               gpio_pmic_vcom_ctrl = <&gpio4 14 0>;
+               gpio_pmic_wakeup = <&gpio2 23 0>;
+               gpio_pmic_v3p3 = <&gpio2 30 0>;
+               gpio_pmic_intr = <&gpio2 22 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 value: -500000 */
+                               regulator-max-microvolt = <4325000>;
+                               /* Real min value: -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";
+                       };
+               };
+       };
 };
 
 &i2c4 {
-       pinctrl-names = "default";
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c4>;
+       pinctrl-1 = <&pinctrl_i2c4_gpio>;
+       scl-gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>;
        status = "okay";
 
        codec: wm8960@1a {
                clock-names = "mclk";
                wlf,shared-lrclk;
        };
+
+       ov5640_mipi: ov5640_mipi@3c {
+               compatible = "ovti,ov5640_mipi";
+               reg = <0x3c>;
+               clocks = <&clks IMX7D_CLK_DUMMY>;
+               clock-names = "csi_mclk";
+               csi_id = <0>;
+               pwn-gpios = <&extended_io 6 GPIO_ACTIVE_HIGH>;
+               AVDD-supply = <&vgen6_reg>;
+               mclk = <24000000>;
+               mclk_source = <0>;
+               port {
+                       ov5640_mipi_ep: endpoint {
+                               remote-endpoint = <&mipi_sensor_ep>;
+                       };
+               };
+       };
 };
 
 &lcdif {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lcdif>;
+       lcd-supply = <&reg_lcd_3v3>;
+       display = <&display0>;
        status = "okay";
 
-       port {
-               display_out: endpoint {
-                       remote-endpoint = <&panel_in>;
+       display0: display@0 {
+               bits-per-pixel = <16>;
+               bus-width = <24>;
+
+               display-timings {
+                       native-mode = <&timing0>;
+
+                       timing0: timing0 {
+                               clock-frequency = <9200000>;
+                               hactive = <480>;
+                               vactive = <272>;
+                               hfront-porch = <8>;
+                               hback-porch = <4>;
+                               hsync-len = <41>;
+                               vback-porch = <2>;
+                               vfront-porch = <4>;
+                               vsync-len = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
                };
        };
 };
 
+&pcie {
+       reset-gpio = <&extended_io 1 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&reg_1p0d {
+       vin-supply = <&sw2_reg>;
+};
+
+&reg_1p2 {
+       vin-supply = <&sw2_reg>;
+};
+
+&sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       assigned-clocks = <&clks IMX7D_SAI1_ROOT_SRC>,
+                         <&clks IMX7D_SAI1_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <0>, <36864000>;
+       status = "okay";
+};
+
+&sai3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3 &pinctrl_sai3_mclk>;
+       assigned-clocks = <&clks IMX7D_SAI3_ROOT_SRC>,
+                         <&clks IMX7D_SAI3_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <0>, <36864000>;
+       status = "okay";
+};
+
+&sim1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sim1_1>;
+       port = <0>;
+       sven_low_active;
+       status = "okay";
+};
+
+&snvs_poweroff {
+       status = "okay";
+};
+
 &snvs_pwrkey {
        status = "okay";
 };
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
        assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
+       assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       assigned-clocks = <&clks IMX7D_UART5_ROOT_SRC>;
        assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+       /* for DTE mode, add below change */
+       /* fsl,dte-mode; */
+       /* pinctrl-0 = <&pinctrl_uart5dte>; */
        status = "okay";
 };
 
        assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>;
        assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
        uart-has-rtscts;
+       resets = <&modem_reset>;
        status = "okay";
 };
 
 };
 
 &usdhc1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_usdhc1_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_usdhc1_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_usdhc1_gpio>;
        cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
        wp-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
-       wakeup-source;
-       keep-power-in-suspend;
+       vmmc-supply = <&reg_sd1_vmmc>;
        status = "okay";
 };
 
 &usdhc2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
-       pinctrl-0 = <&pinctrl_usdhc2>;
-       pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
-       pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
-       wakeup-source;
+       pinctrl-0 = <&pinctrl_usdhc2 &pinctrl_wifi>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz &pinctrl_wifi>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz &pinctrl_wifi>;
        keep-power-in-suspend;
        non-removable;
-       vmmc-supply = <&reg_brcm>;
+       mmc-pwrseq = <&usdhc2_pwrseq>;
        fsl,tuning-step = <2>;
-       status = "okay";
+       pm-ignore-notify;
+       cap-power-off-card;
+       status = "disabled";
+
+       brcmf: bcrmf@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+       };
 };
 
 &usdhc3 {
        assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
        assigned-clock-rates = <400000000>;
        bus-width = <8>;
-       fsl,tuning-step = <2>;
        non-removable;
+       auto-cmd23-broken;
        status = "okay";
 };
 
                        >;
                };
 
+               pinctrl_epdc_elan_touch: epdc_elan_touch_grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_RX_DATA__GPIO6_IO12 0x59
+                               MX7D_PAD_SAI1_TX_DATA__GPIO6_IO15 0x1b
+                               MX7D_PAD_SAI1_TX_BCLK__GPIO6_IO13 0x80000000
+                       >;
+               };
+               pinctrl_mipi_dsi_reset: mipi_dsi_reset_grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_TX_DATA__GPIO6_IO15 0x1b
+                       >;
+               };
+
                pinctrl_ecspi3: ecspi3grp {
                        fsl,pins = <
                                MX7D_PAD_SAI2_TX_SYNC__ECSPI3_MISO      0x2
                        >;
                };
 
-               pinctrl_enet2_reg: enet2reggrp {
+               pinctrl_epdc0: epdcgrp0 {
                        fsl,pins = <
-                               MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4     0x14
+                               MX7D_PAD_EPDC_DATA00__EPDC_DATA0  0x2
+                               MX7D_PAD_EPDC_DATA01__EPDC_DATA1  0x2
+                               MX7D_PAD_EPDC_DATA02__EPDC_DATA2  0x2
+                               MX7D_PAD_EPDC_DATA03__EPDC_DATA3  0x2
+                               MX7D_PAD_EPDC_DATA04__EPDC_DATA4  0x2
+                               MX7D_PAD_EPDC_DATA05__EPDC_DATA5  0x2
+                               MX7D_PAD_EPDC_DATA06__EPDC_DATA6  0x2
+                               MX7D_PAD_EPDC_DATA07__EPDC_DATA7  0x2
+                               MX7D_PAD_EPDC_DATA08__EPDC_DATA8  0x2
+                               MX7D_PAD_EPDC_DATA09__EPDC_DATA9  0x2
+                               MX7D_PAD_EPDC_DATA10__EPDC_DATA10 0x2
+                               MX7D_PAD_EPDC_DATA11__EPDC_DATA11 0x2
+                               MX7D_PAD_EPDC_DATA12__EPDC_DATA12 0x2
+                               MX7D_PAD_EPDC_DATA13__EPDC_DATA13 0x2
+                               MX7D_PAD_EPDC_DATA14__EPDC_DATA14 0x2
+                               MX7D_PAD_EPDC_DATA15__EPDC_DATA15 0x2
+                               MX7D_PAD_EPDC_SDCLK__EPDC_SDCLK   0x2
+                               MX7D_PAD_EPDC_SDLE__EPDC_SDLE     0x2
+                               MX7D_PAD_EPDC_SDOE__EPDC_SDOE     0x2
+                               MX7D_PAD_EPDC_SDSHR__EPDC_SDSHR   0x2
+                               MX7D_PAD_EPDC_SDCE0__EPDC_SDCE0   0x2
+                               MX7D_PAD_EPDC_SDCE1__EPDC_SDCE1   0x2
+                               MX7D_PAD_EPDC_GDCLK__EPDC_GDCLK   0x2
+                               MX7D_PAD_EPDC_GDOE__EPDC_GDOE     0x2
+                               MX7D_PAD_EPDC_GDRL__EPDC_GDRL     0x2
+                               MX7D_PAD_EPDC_GDSP__EPDC_GDSP     0x2
                        >;
                };
 
                        >;
                };
 
+               pinctrl_gpmi_nand_1: gpmi-nand-1 {
+                       fsl,pins = <
+                               MX7D_PAD_SD3_CLK__NAND_CLE              0x71
+                               MX7D_PAD_SD3_CMD__NAND_ALE              0x71
+                               MX7D_PAD_SAI1_MCLK__NAND_WP_B           0x71
+                               MX7D_PAD_SAI1_TX_BCLK__NAND_CE0_B       0x71
+                               MX7D_PAD_SAI1_RX_DATA__NAND_CE1_B       0x71
+                               MX7D_PAD_SAI1_TX_DATA__NAND_READY_B     0x74
+                               MX7D_PAD_SD3_STROBE__NAND_RE_B          0x71
+                               MX7D_PAD_SD3_RESET_B__NAND_WE_B         0x71
+                               MX7D_PAD_SD3_DATA0__NAND_DATA00         0x71
+                               MX7D_PAD_SD3_DATA1__NAND_DATA01         0x71
+                               MX7D_PAD_SD3_DATA2__NAND_DATA02         0x71
+                               MX7D_PAD_SD3_DATA3__NAND_DATA03         0x71
+                               MX7D_PAD_SD3_DATA4__NAND_DATA04         0x71
+                               MX7D_PAD_SD3_DATA5__NAND_DATA05         0x71
+                               MX7D_PAD_SD3_DATA6__NAND_DATA06         0x71
+                               MX7D_PAD_SD3_DATA7__NAND_DATA07         0x71
+                       >;
+               };
+
                pinctrl_hog: hoggrp {
                        fsl,pins = <
                                MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  /* bt reg on */
                        >;
                };
 
+               pinctrl_i2c1_gpio: i2c1grp_gpio {
+                       fsl,pins = <
+                               MX7D_PAD_I2C1_SDA__GPIO4_IO9    0x7f
+                               MX7D_PAD_I2C1_SCL__GPIO4_IO8    0x7f
+                       >;
+               };
+
                pinctrl_i2c2: i2c2grp {
                        fsl,pins = <
                                MX7D_PAD_I2C2_SDA__I2C2_SDA             0x4000007f
                        >;
                };
 
+               pinctrl_i2c2_gpio: i2c2grp_gpio {
+                       fsl,pins = <
+                               MX7D_PAD_I2C2_SDA__GPIO4_IO11   0x7f
+                               MX7D_PAD_I2C2_SCL__GPIO4_IO10   0x7f
+                       >;
+               };
+
                pinctrl_i2c3: i2c3grp {
                        fsl,pins = <
                                MX7D_PAD_I2C3_SDA__I2C3_SDA             0x4000007f
                        >;
                };
 
+               pinctrl_i2c3_gpio: i2c3grp_gpio {
+                       fsl,pins = <
+                               MX7D_PAD_I2C3_SDA__GPIO4_IO13          0x7f
+                               MX7D_PAD_I2C3_SCL__GPIO4_IO12          0x7f
+                       >;
+               };
+
                pinctrl_i2c4: i2c4grp {
                        fsl,pins = <
                                MX7D_PAD_SAI1_RX_BCLK__I2C4_SDA         0x4000007f
                        >;
                };
 
+               pinctrl_i2c4_gpio: i2c4grp_gpio {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_RX_BCLK__GPIO6_IO17               0x7f
+                               MX7D_PAD_SAI1_RX_SYNC__GPIO6_IO16               0x7f
+                       >;
+               };
+
                pinctrl_lcdif: lcdifgrp {
                        fsl,pins = <
                                MX7D_PAD_LCD_DATA00__LCD_DATA0          0x79
                        >;
                };
 
+               pinctrl_max17135: max17135grp-1 {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_PWR_STAT__GPIO2_IO31      0x80000000  /* pwrgood */
+                               MX7D_PAD_I2C4_SCL__GPIO4_IO14           0x80000000  /* vcom_ctrl */
+                               MX7D_PAD_EPDC_SDCE3__GPIO2_IO23         0x80000000  /* wakeup */
+                               MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30       0x80000000  /* v3p3 */
+                               MX7D_PAD_EPDC_SDCE2__GPIO2_IO22         0x80000000  /* pwr int */
+                       >;
+               };
+
+               pinctrl_sai1: sai1grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
+                               MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK     0x1f
+                               MX7D_PAD_ENET1_CRS__SAI1_TX_SYNC        0x1f
+                               MX7D_PAD_ENET1_COL__SAI1_TX_DATA0       0x30
+                               MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0    0x1f
+                       >;
+               };
+
+               pinctrl_sai2: sai2grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI2_TX_BCLK__SAI2_TX_BCLK     0x1f
+                               MX7D_PAD_SAI2_TX_SYNC__SAI2_TX_SYNC     0x1f
+                               MX7D_PAD_SAI2_TX_DATA__SAI2_TX_DATA0    0x30
+                               MX7D_PAD_SAI2_RX_DATA__SAI2_RX_DATA0    0x1f
+                       >;
+               };
+
+               pinctrl_sai3: sai3grp {
+                       fsl,pins = <
+                               MX7D_PAD_UART3_TX_DATA__SAI3_TX_BCLK   0x1f
+                               MX7D_PAD_UART3_CTS_B__SAI3_TX_SYNC     0x1f
+                               MX7D_PAD_UART3_RTS_B__SAI3_TX_DATA0    0x30
+                       >;
+               };
+
                pinctrl_spi4: spi4grp {
                        fsl,pins = <
                                MX7D_PAD_GPIO1_IO09__GPIO1_IO9  0x59
                        >;
                };
 
+               pinctrl_sii902x: hdmigrp-1 {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_DATA13__GPIO2_IO13 0x59
+                       >;
+               };
+
+               pinctrl_sim1_1: sim1grp-1 {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_DATA10__SIM1_PORT1_RST_B 0x77
+                               MX7D_PAD_EPDC_DATA12__SIM1_PORT1_PD    0x77
+                               MX7D_PAD_EPDC_DATA11__SIM1_PORT1_SVEN  0x77
+                               MX7D_PAD_EPDC_DATA09__SIM1_PORT1_CLK   0x73
+                               MX7D_PAD_EPDC_DATA08__SIM1_PORT1_TRXD  0x73
+                       >;
+               };
+
                pinctrl_uart1: uart1grp {
                        fsl,pins = <
                                MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
                        fsl,pins = <
                                MX7D_PAD_SAI1_TX_BCLK__UART5_DCE_TX     0x79
                                MX7D_PAD_SAI1_RX_DATA__UART5_DCE_RX     0x79
-                               MX7D_PAD_SAI1_TX_SYNC__UART5_DCE_CTS    0x79
-                               MX7D_PAD_SAI1_TX_DATA__UART5_DCE_RTS    0x79
+                       >;
+               };
+
+               pinctrl_uart5dte: uart5dtegrp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_TX_BCLK__UART5_DTE_RX 0x79
+                               MX7D_PAD_SAI1_RX_DATA__UART5_DTE_TX 0x79
                        >;
                };
 
                        >;
                };
 
+               pinctrl_usdhc1_gpio: usdhc1_gpiogrp {
+                       fsl,pins = <
+                               MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x59 /* CD */
+                               MX7D_PAD_SD1_WP__GPIO5_IO1              0x59 /* WP */
+                               MX7D_PAD_SD1_RESET_B__GPIO5_IO2         0x59 /* vmmc */
+                               MX7D_PAD_GPIO1_IO08__SD1_VSELECT        0x59 /* VSELECT */
+                       >;
+               };
+
                pinctrl_usdhc1: usdhc1grp {
                        fsl,pins = <
                                MX7D_PAD_SD1_CMD__SD1_CMD               0x59
                                MX7D_PAD_SD1_DATA1__SD1_DATA1           0x59
                                MX7D_PAD_SD1_DATA2__SD1_DATA2           0x59
                                MX7D_PAD_SD1_DATA3__SD1_DATA3           0x59
-                               MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x59 /* CD */
-                               MX7D_PAD_SD1_WP__GPIO5_IO1              0x59 /* WP */
-                               MX7D_PAD_SD1_RESET_B__GPIO5_IO2         0x59 /* vmmc */
+                       >;
+               };
+
+               pinctrl_usdhc1_100mhz: usdhc1grp_100mhz {
+                       fsl,pins = <
+                               MX7D_PAD_SD1_CMD__SD1_CMD               0x5a
+                               MX7D_PAD_SD1_CLK__SD1_CLK               0x1a
+                               MX7D_PAD_SD1_DATA0__SD1_DATA0           0x5a
+                               MX7D_PAD_SD1_DATA1__SD1_DATA1           0x5a
+                               MX7D_PAD_SD1_DATA2__SD1_DATA2           0x5a
+                               MX7D_PAD_SD1_DATA3__SD1_DATA3           0x5a
+                       >;
+               };
+
+               pinctrl_usdhc1_200mhz: usdhc1grp_200mhz {
+                       fsl,pins = <
+                               MX7D_PAD_SD1_CMD__SD1_CMD               0x5b
+                               MX7D_PAD_SD1_CLK__SD1_CLK               0x1b
+                               MX7D_PAD_SD1_DATA0__SD1_DATA0           0x5b
+                               MX7D_PAD_SD1_DATA1__SD1_DATA1           0x5b
+                               MX7D_PAD_SD1_DATA2__SD1_DATA2           0x5b
+                               MX7D_PAD_SD1_DATA3__SD1_DATA3           0x5b
                        >;
                };
 
                                MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1b
                        >;
                };
+
+               pinctrl_wifi: wifigrp {
+                       fsl,pins = <
+                               MX7D_PAD_ECSPI2_SCLK__GPIO4_IO20        0x19 /* WL_HOST_WAKE */
+                       >;
+               };
        };
 };
 
 };
 
 &iomuxc_lpsr {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog_2 &pinctrl_usb_otg2_vbus_reg>;
+       
+       pinctrl_hog_2: hoggrp-2 {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5       0x14
+               >;
+       };
+
+       pinctrl_enet2_reg: enet2reggrp {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4     0x80000000
+               >;
+       };
+
        pinctrl_wdog: wdoggrp {
                fsl,pins = <
                        MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B          0x74
                        MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7       0x14
                >;
        };
+
+       pinctrl_sai3_mclk: sai3grp_mclk {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO03__SAI3_MCLK     0x1f
+               >;
+       };
+
 };
index 75566c7..48ac079 100644 (file)
  */
 
 #include "imx7s.dtsi"
+#include <dt-bindings/reset/imx7-reset.h>
 
 / {
        aliases {
+               spi0 = &qspi1;
+               spi1 = &ecspi1;
+               spi2 = &ecspi2;
+               spi3 = &ecspi3;
+               spi4 = &ecspi4;
                ethernet1 = &fec2;
+               usb1 = &usbotg2;
        };
+
        cpus {
                cpu0: cpu@0 {
-                       operating-points = <
-                               /* KHz  uV */
-                               996000  1075000
-                               792000  975000
-                       >;
                        clock-frequency = <996000000>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+                       nvmem-cells = <&cpu_speed_grade>;
+                       nvmem-cell-names = "speed_grade";
                };
 
                cpu1: cpu@1 {
                        device_type = "cpu";
                        reg = <1>;
                        clock-frequency = <996000000>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupt-parent = <&intc>;
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+
+       cpu0_opp_table: opp-table {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-792000000 {
+                       opp-hz = /bits/ 64 <792000000>;
+                       opp-microvolt = <1000000>;
+                       clock-latency-ns = <150000>;
+                       opp-supported-hw = <0xf>, <0xf>;
+               };
+
+               opp-996000000 {
+                       opp-hz = /bits/ 64 <996000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <150000>;
+                       opp-supported-hw = <0xc>, <0xf>;
+               };
+
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1225000>;
+                       clock-latency-ns = <150000>;
+                       opp-supported-hw = <0x8>, <0xf>;
                };
        };
 
+       usbphynop2: usbphynop2 {
+               compatible = "usb-nop-xceiv";
+               clocks = <&clks IMX7D_USB_PHY2_CLK>;
+               clock-names = "main_clk";
+               #phy-cells = <0>;
+       };
+
        soc {
+               busfreq {
+                       compatible = "fsl,imx_busfreq";
+                       fsl,max_ddr_freq = <533000000>;
+                       clocks = <&clks IMX7D_OSC_24M_CLK>, <&clks IMX7D_MAIN_AXI_ROOT_SRC>,
+                               <&clks IMX7D_AHB_CHANNEL_ROOT_SRC>, <&clks IMX7D_PLL_SYS_PFD0_392M_CLK>,
+                               <&clks IMX7D_DRAM_ROOT_SRC>, <&clks IMX7D_DRAM_ALT_ROOT_SRC>,
+                               <&clks IMX7D_PLL_DRAM_MAIN_CLK>, <&clks IMX7D_DRAM_ALT_ROOT_CLK>,
+                               <&clks IMX7D_PLL_SYS_PFD2_270M_CLK>, <&clks IMX7D_PLL_SYS_PFD1_332M_CLK>,
+                               <&clks IMX7D_AHB_CHANNEL_ROOT_DIV>, <&clks IMX7D_MAIN_AXI_ROOT_DIV>;
+                       clock-names = "osc", "axi_sel", "ahb_sel", "pfd0_392m", "dram_root",
+                                       "dram_alt_sel", "pll_dram", "dram_alt_root", "pfd2_270m",
+                                       "pfd1_332m", "ahb", "axi";
+                       interrupts = <0 112 0x04>, <0 113 0x04>;
+                       interrupt-names = "irq_busfreq_0", "irq_busfreq_1";
+               };
+
+               ocrams_ddr: sram@900000 {
+                       compatible = "fsl,ddr-lpm-sram";
+                       reg = <0x900000 0x1000>;
+                       clocks = <&clks IMX7D_OCRAM_CLK>;
+               };
+
+               ocram: sram@901000 {
+                       compatible = "mmio-sram";
+                       reg = <0x901000 0x1f000>;
+                       clocks = <&clks IMX7D_OCRAM_CLK>;
+               };
+
+               ocrams: sram@180000 {
+                       compatible = "fsl,lpm-sram";
+                       reg = <0x180000 0x8000>;
+                       clocks = <&clks IMX7D_OCRAM_S_CLK>;
+                       status = "disabled";
+               };
+
+               ocram_optee {
+                       compatible = "fsl,optee-lpm-sram";
+                       reg = <0x180000 0x8000>;
+                       overw_reg = <&ocrams_ddr 0x904000 0x1000>,
+                                       <&ocram 0x905000 0x1b000>,
+                                       <&ocrams 0x900000 0x4000>;
+                       overw_clock = <&ocrams &clks IMX7D_OCRAM_CLK>;
+               };
+
+               ocrams_mf: sram-mf@900000 {
+                       compatible = "fsl,mega-fast-sram";
+                       reg = <0x900000 0x20000>;
+                       clocks = <&clks IMX7D_OCRAM_CLK>;
+               };
+
                etm@3007d000 {
                        compatible = "arm,coresight-etm3x", "arm,primecell";
                        reg = <0x3007d000 0x1000>;
                        clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
                        clock-names = "apb_pclk";
 
-                       port {
-                               etm1_out_port: endpoint {
-                                       remote-endpoint = <&ca_funnel_in_port1>;
+                       out-ports {
+                               port {
+                                       etm1_out_port: endpoint {
+                                               remote-endpoint = <&ca_funnel_in_port1>;
+                                       };
                                };
                        };
                };
+
+               intc: interrupt-controller@31001000 {
+                       compatible = "arm,cortex-a7-gic";
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       interrupt-parent = <&intc>;
+                       reg = <0x31001000 0x1000>,
+                             <0x31002000 0x2000>,
+                             <0x31004000 0x2000>,
+                             <0x31006000 0x2000>;
+               };
        };
 };
 
+/delete-node/&csi;
+/delete-node/&video_mux;
+
 &aips2 {
+       pcie_phy: pcie-phy@306d0000 {
+                 compatible = "fsl,imx7d-pcie-phy";
+                 reg = <0x306d0000 0x10000>;
+                 status = "disabled";
+       };
+
+       system_counter_rd: system-counter-rd@306a0000 {
+               compatible = "fsl,imx7d-system-counter-rd";
+               reg = <0x306a0000 0x10000>;
+               status = "disabled";
+       };
+
+       system_counter_cmp: system-counter-cmp@306b0000 {
+               compatible = "fsl,imx7d-system-counter-cmp";
+               reg = <0x306b0000 0x10000>;
+               status = "disabled";
+       };
+
+       system_counter_ctrl: system-counter-ctrl@306c0000 {
+               compatible = "fsl,imx7d-system-counter-ctrl";
+               reg = <0x306c0000 0x10000>;
+               interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+               status = "disabled";
+       };
+
        epdc: epdc@306f0000 {
                compatible = "fsl,imx7d-epdc";
                interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clks IMX7D_CLK_DUMMY>, <&clks IMX7D_EPDC_PIXEL_ROOT_CLK>;
                clock-names = "epdc_axi", "epdc_pix";
                epdc-ram = <&gpr 0x4 30>;
+               qos = <&qosc>;
                status = "disabled";
        };
+
+       epxp: epxp@30700000 {
+               compatible = "fsl,imx7d-pxp-dma";
+               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+               reg = <0x30700000 0x10000>;
+               clocks = <&clks IMX7D_PXP_IPG_CLK>, <&clks IMX7D_PXP_AXI_CLK>;
+               clock-names = "pxp_ipg", "pxp_axi";
+               status = "disabled";
+       };
+
+       csi1: csi1@30710000 {
+               compatible = "fsl,imx7d-csi", "fsl,imx6s-csi";
+               reg = <0x30710000 0x10000>;
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_CLK_DUMMY>,
+                       <&clks IMX7D_CSI_MCLK_ROOT_CLK>,
+                       <&clks IMX7D_CLK_DUMMY>;
+               clock-names = "disp-axi", "csi_mclk", "disp_dcic";
+               status = "disabled";
+       };
+
+       mipi_csi: mipi-csi@30750000 {
+               compatible = "fsl,imx7d-mipi-csi";
+               reg = <0x30750000 0x10000>;
+               interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_MIPI_CSI_ROOT_CLK>,
+                               <&clks IMX7D_MIPI_DPHY_ROOT_CLK>;
+               clock-names = "mipi_clk", "phy_clk";
+               mipi-phy-supply = <&reg_1p0d>;
+               csis-phy-reset = <&src 0x28 2>;
+               bus-width = <4>;
+               status = "disabled";
+               /delete-node/ port@0;
+               /delete-node/ port@1;
+       };
+
+       mipi_dsi: mipi-dsi@30760000 {
+               compatible = "fsl,imx7d-mipi-dsi";
+               reg = <0x30760000 0x10000>;
+               interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_MIPI_DSI_ROOT_CLK>,
+                       <&clks IMX7D_MIPI_DPHY_ROOT_CLK>;
+               clock-names = "mipi_cfg_clk", "mipi_pllref_clk";
+               power-domains = <&pgc_mipi_phy>;
+               status = "disabled";
+       };
+
+       qosc: qosc@307f0000 {
+               compatible = "fsl,imx7d-qosc", "syscon";
+               reg = <0x307f0000 0x4000>;
+       };
 };
 
 &aips3 {
+       mu: mu@30aa0000 {
+               compatible = "fsl,imx7d-mu", "fsl,imx6sx-mu";
+               reg = <0x30aa0000 0x10000>;
+               interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_MU_ROOT_CLK>;
+               clock-names = "mu";
+               #mbox-cells = <2>;
+       };
+
+       mu_lp: mu_lp@30aa0000 {
+               compatible = "fsl,imx7d-mu-lp", "fsl,imx6sx-mu-lp";
+               reg = <0x30aa0000 0x10000>;
+               interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_MU_ROOT_CLK>;
+               clock-names = "mu";
+               status = "okay";
+       };
+
+       sema4: sema4@30ac0000 {
+               compatible = "fsl,imx7d-sema4";
+               reg = <0x30ac0000 0x10000>;
+               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_SEMA4_HS_ROOT_CLK>;
+               clock-names = "sema4";
+               status = "okay";
+       };
+
+       sim1: sim@30b90000 {
+               compatible = "fsl,imx7d-sim";
+               reg = <0x30b90000 0x10000>;
+               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_SIM1_ROOT_CLK>;
+               clock-names = "sim";
+               status = "disabled";
+       };
+
+       qspi1: spi@30bb0000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "fsl,imx7d-qspi";
+               reg = <0x30bb0000 0x10000>, <0x60000000 0x10000000>;
+               reg-names = "QuadSPI", "QuadSPI-memory";
+               interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_QSPI_ROOT_CLK>,
+                       <&clks IMX7D_QSPI_ROOT_CLK>;
+               clock-names = "qspi_en", "qspi";
+               status = "disabled";
+       };
+
+       sim2: sim@30ba0000 {
+               compatible = "fsl,imx7d-sim";
+               reg = <0x30ba0000 0x10000>;
+               interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+               status = "disabled";
+       };
+
        usbotg2: usb@30b20000 {
                compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
                reg = <0x30b20000 0x200>;
                reg = <0x30b20200 0x200>;
        };
 
-       usbphynop2: usbphynop2 {
-               compatible = "usb-nop-xceiv";
-               clocks = <&clks IMX7D_USB_PHY2_CLK>;
-               clock-names = "main_clk";
-       };
-
        fec2: ethernet@30bf0000 {
                compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
                reg = <0x30bf0000 0x10000>;
-               interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+               interrupt-names = "int0", "int1", "int2", "pps";
+               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
                        <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
-                       <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
+                       <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_ENET2_IPG_ROOT_CLK>,
                        <&clks IMX7D_ENET_AXI_ROOT_CLK>,
                        <&clks IMX7D_ENET2_TIME_ROOT_CLK>,
                        <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
-                       <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
+                       <&clks IMX7D_ENET_PHY_REF_ROOT_DIV>;
                clock-names = "ipg", "ahb", "ptp",
                        "enet_clk_ref", "enet_out";
-               fsl,num-tx-queues=<3>;
-               fsl,num-rx-queues=<3>;
+               fsl,num-tx-queues = <3>;
+               fsl,num-rx-queues = <3>;
+               status = "disabled";
+       };
+
+       pcie: pcie@33800000 {
+               compatible = "fsl,imx7d-pcie", "snps,dw-pcie";
+               reg = <0x33800000 0x4000>,
+                     <0x4ff00000 0x80000>;
+               reg-names = "dbi", "config";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               bus-range = <0x00 0xff>;
+               ranges = <0x81000000 0 0          0x4ff80000 0 0x00010000   /* downstream I/O */
+                         0x82000000 0 0x40000000 0x40000000 0 0x0ff00000>; /* non-prefetchable memory */
+               num-lanes = <1>;
+               num-viewport = <4>;
+               interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "msi";
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 0 0 0x7>;
+               /*
+                * Reference manual lists pci irqs incorrectly
+                * Real hardware ordering is same as imx6: D+MSI, C, B, A
+                */
+               interrupt-map = <0 0 0 1 &intc GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+                               <0 0 0 2 &intc GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+                               <0 0 0 3 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                               <0 0 0 4 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_PCIE_CTRL_ROOT_CLK>,
+                        <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>,
+                        <&clks IMX7D_PCIE_PHY_ROOT_CLK>;
+               clock-names = "pcie", "pcie_bus", "pcie_phy";
+               assigned-clocks = <&clks IMX7D_PCIE_CTRL_ROOT_SRC>,
+                                 <&clks IMX7D_PCIE_PHY_ROOT_SRC>;
+               assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_250M_CLK>,
+                                        <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+
+               fsl,max-link-speed = <2>;
+               power-domains = <&pgc_pcie_phy>;
+               resets = <&src IMX7_RESET_PCIEPHY>,
+                        <&src IMX7_RESET_PCIE_CTRL_APPS_EN>,
+                        <&src IMX7_RESET_PCIE_CTRL_APPS_TURNOFF>;
+               reset-names = "pciephy", "apps", "turnoff";
+               fsl,imx7d-pcie-phy = <&pcie_phy>;
+               status = "disabled";
+       };
+
+       rpmsg: rpmsg{
+               compatible = "fsl,imx7d-rpmsg";
+               /* up to now, the following channels are used in imx rpmsg
+                * - tx1/rx1: messages channel.
+                * - general interrupt1: remote proc finish re-init rpmsg stack
+                *   when A core is partition reset.
+                */
+               mbox-names = "tx", "rx", "rxdb";
+               mboxes = <&mu 0 1
+                         &mu 1 1
+                         &mu 3 1>;
                status = "disabled";
        };
 };
 
-&ca_funnel_ports {
+&ca_funnel_in_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
        port@1 {
                reg = <1>;
                ca_funnel_in_port1: endpoint {
-                       slave-mode;
                        remote-endpoint = <&etm1_out_port>;
                };
        };
index 967023f..86c2359 100644 (file)
@@ -46,6 +46,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/reset/imx7-reset.h>
 #include "imx7d-pinfunc.h"
 
 / {
         * The decompressor and also some bootloaders rely on a
         * pre-existing /chosen node to be available to insert the
         * command line and merge other ATAGS info.
-        * Also for U-Boot there must be a pre-existing /memory node.
         */
        chosen {};
-       memory { device_type = "memory"; };
 
        aliases {
                gpio0 = &gpio1;
                serial4 = &uart5;
                serial5 = &uart6;
                serial6 = &uart7;
-               spi0 = &qspi1;
-               spi1 = &ecspi1;
-               spi2 = &ecspi2;
-               spi3 = &ecspi3;
-               spi4 = &ecspi4;
+               spi0 = &ecspi1;
+               spi1 = &ecspi2;
+               spi2 = &ecspi3;
+               spi3 = &ecspi4;
                ethernet0 = &fec1;
+               usb0 = &usbotg1;
        };
 
        cpus {
                 * non-configurable replicators don't show up on the
                 * AMBA bus.  As such no need to add "arm,primecell"
                 */
-               compatible = "arm,coresight-replicator";
+               compatible = "arm,coresight-static-replicator";
 
-               ports {
+               out-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
                                /* replicator output ports */
                                        remote-endpoint = <&etr_in_port>;
                                };
                        };
+               };
 
-                       /* replicator input port */
-                       port@2 {
-                               reg = <0>;
+               in-ports {
+                       port {
                                replicator_in_port0: endpoint {
-                                       slave-mode;
                                        remote-endpoint = <&etf_out_port>;
                                };
                        };
                };
        };
 
-       timer {
-               compatible = "arm,armv7-timer";
-               interrupt-parent = <&intc>;
-               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+       tempmon: tempmon {
+               compatible = "fsl,imx7d-tempmon";
+               interrupt-parent = <&gpc>;
+               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+               fsl,tempmon = <&anatop>;
+               nvmem-cells = <&tempmon_calib>,
+                       <&tempmon_temp_grade>;
+               nvmem-cell-names = "calib", "temp_grade";
+               clocks = <&clks IMX7D_PLL_SYS_MAIN_CLK>;
        };
 
        soc {
                ranges;
 
                funnel@30041000 {
-                       compatible = "arm,coresight-funnel", "arm,primecell";
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
                        reg = <0x30041000 0x1000>;
                        clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
                        clock-names = "apb_pclk";
 
-                       ca_funnel_ports: ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               /* funnel input ports */
-                               port@0 {
-                                       reg = <0>;
+                       ca_funnel_in_ports: in-ports {
+                               port {
                                        ca_funnel_in_port0: endpoint {
-                                               slave-mode;
                                                remote-endpoint = <&etm0_out_port>;
                                        };
                                };
 
-                               /* funnel output port */
-                               port@2 {
-                                       reg = <0>;
+                               /* the other input ports are not connect to anything */
+                       };
+
+                       out-ports {
+                               port {
                                        ca_funnel_out_port0: endpoint {
                                                remote-endpoint = <&hugo_funnel_in_port0>;
                                        };
                                };
 
-                               /* the other input ports are not connect to anything */
                        };
                };
 
                        clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
                        clock-names = "apb_pclk";
 
-                       port {
-                               etm0_out_port: endpoint {
-                                       remote-endpoint = <&ca_funnel_in_port0>;
+                       out-ports {
+                               port {
+                                       etm0_out_port: endpoint {
+                                               remote-endpoint = <&ca_funnel_in_port0>;
+                                       };
                                };
                        };
                };
 
+               caam_sm: caam-sm@100000 {
+                        compatible = "fsl,imx7d-caam-sm", "fsl,imx6q-caam-sm";
+                        reg = <0x100000 0x8000>;
+               };
+
                funnel@30083000 {
-                       compatible = "arm,coresight-funnel", "arm,primecell";
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
                        reg = <0x30083000 0x1000>;
                        clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
                        clock-names = "apb_pclk";
 
-                       ports {
+                       in-ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               /* funnel input ports */
                                port@0 {
                                        reg = <0>;
                                        hugo_funnel_in_port0: endpoint {
-                                               slave-mode;
                                                remote-endpoint = <&ca_funnel_out_port0>;
                                        };
                                };
                                port@1 {
                                        reg = <1>;
                                        hugo_funnel_in_port1: endpoint {
-                                               slave-mode; /* M4 input */
+                                               /* M4 input */
                                        };
                                };
+                               /* the other input ports are not connect to anything */
+                       };
 
-                               port@2 {
-                                       reg = <0>;
+                       out-ports {
+                               port {
                                        hugo_funnel_out_port0: endpoint {
                                                remote-endpoint = <&etf_in_port>;
                                        };
                                };
-
-                               /* the other input ports are not connect to anything */
                        };
                };
 
                        clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
                        clock-names = "apb_pclk";
 
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
+                       in-ports {
+                               port {
                                        etf_in_port: endpoint {
-                                               slave-mode;
                                                remote-endpoint = <&hugo_funnel_out_port0>;
                                        };
                                };
+                       };
 
-                               port@1 {
-                                       reg = <0>;
+                       out-ports {
+                               port {
                                        etf_out_port: endpoint {
                                                remote-endpoint = <&replicator_in_port0>;
                                        };
                        clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
                        clock-names = "apb_pclk";
 
-                       port {
-                               etr_in_port: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&replicator_out_port1>;
+                       in-ports {
+                               port {
+                                       etr_in_port: endpoint {
+                                               remote-endpoint = <&replicator_out_port1>;
+                                       };
                                };
                        };
                };
                        clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
                        clock-names = "apb_pclk";
 
-                       port {
-                               tpiu_in_port: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&replicator_out_port0>;
+                       in-ports {
+                               port {
+                                       tpiu_in_port: endpoint {
+                                               remote-endpoint = <&replicator_out_port0>;
+                                       };
                                };
                        };
                };
 
                intc: interrupt-controller@31001000 {
                        compatible = "arm,cortex-a7-gic";
-                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
                        #interrupt-cells = <3>;
                        interrupt-controller;
                        interrupt-parent = <&intc>;
                              <0x31006000 0x2000>;
                };
 
+               timer {
+                       compatible = "arm,armv7-timer";
+                       arm,cpu-registers-not-fw-configured;
+                       interrupt-parent = <&intc>;
+                       interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+                       clock-frequency = <8000000>;
+               };
+
                aips1: aips-bus@30000000 {
                        compatible = "fsl,aips-bus", "simple-bus";
                        #address-cells = <1>;
                                compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
                                reg = <0x302d0000 0x10000>;
                                interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                        <&clks IMX7D_GPT1_ROOT_CLK>;
-                               clock-names = "ipg", "per";
+                               clocks = <&clks IMX7D_GPT1_ROOT_CLK>,
+                                       <&clks IMX7D_GPT1_ROOT_CLK>,
+                                       <&clks IMX7D_GPT_3M_CLK>;
+                               clock-names = "ipg", "per", "osc_per";
                        };
 
                        gpt2: gpt@302e0000 {
                                compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
                                reg = <0x302e0000 0x10000>;
                                interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                               clocks = <&clks IMX7D_GPT2_ROOT_CLK>,
                                         <&clks IMX7D_GPT2_ROOT_CLK>;
                                clock-names = "ipg", "per";
                                status = "disabled";
                                compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
                                reg = <0x302f0000 0x10000>;
                                interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                               clocks = <&clks IMX7D_GPT3_ROOT_CLK>,
                                         <&clks IMX7D_GPT3_ROOT_CLK>;
                                clock-names = "ipg", "per";
                                status = "disabled";
                                compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
                                reg = <0x30300000 0x10000>;
                                interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                               clocks = <&clks IMX7D_GPT4_ROOT_CLK>,
                                         <&clks IMX7D_GPT4_ROOT_CLK>;
                                clock-names = "ipg", "per";
                                status = "disabled";
 
                        gpr: iomuxc-gpr@30340000 {
                                compatible = "fsl,imx7d-iomuxc-gpr",
-                                       "fsl,imx6q-iomuxc-gpr", "syscon";
+                                       "fsl,imx6q-iomuxc-gpr", "syscon",
+                                       "simple-mfd";
                                reg = <0x30340000 0x10000>;
+
+                               mux: mux-controller {
+                                       compatible = "mmio-mux";
+                                       #mux-control-cells = <0>;
+                                       mux-reg-masks = <0x14 0x00000010>;
+                               };
+
+                               video_mux: csi-mux {
+                                       compatible = "video-mux";
+                                       mux-controls = <&mux 0>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       status = "disabled";
+
+                                       port@0 {
+                                               reg = <0>;
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               csi_mux_from_mipi_vc0: endpoint {
+                                                       remote-endpoint = <&mipi_vc0_to_csi_mux>;
+                                               };
+                                       };
+
+                                       port@2 {
+                                               reg = <2>;
+
+                                               csi_mux_to_csi: endpoint {
+                                                       remote-endpoint = <&csi_from_csi_mux>;
+                                               };
+                                       };
+                               };
                        };
 
                        ocotp: ocotp-ctrl@30350000 {
                                tempmon_temp_grade: temp-grade@10 {
                                        reg = <0x10 0x4>;
                                };
-                       };
 
-                       tempmon: tempmon {
-                               compatible = "fsl,imx7d-tempmon";
-                               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-                               fsl,tempmon =<&anatop>;
-                               nvmem-cells = <&tempmon_calib>,
-                                       <&tempmon_temp_grade>;
-                               nvmem-cell-names = "calib", "temp_grade";
-                               clocks = <&clks IMX7D_PLL_SYS_MAIN_CLK>;
+                               cpu_speed_grade: speed-grade@10 {
+                                       reg = <0x10 0x4>;
+                               };
                        };
 
                        anatop: anatop@30360000 {
                                reg = <0x30360000 0x10000>;
                                interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
                                        <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
 
-                               reg_1p0d: regulator-vdd1p0d@30360210 {
-                                       reg = <0x30360210>;
+                               reg_1p0d: regulator-vdd1p0d {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd1p0d";
                                        regulator-min-microvolt = <800000>;
                                        anatop-max-voltage = <1200000>;
                                        anatop-enable-bit = <0>;
                                };
+
+                               reg_1p2: regulator-vdd1p2 {
+                                       compatible = "fsl,anatop-regulator";
+                                       regulator-name = "vdd1p2";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       anatop-reg-offset = <0x220>;
+                                       anatop-vol-bit-shift = <8>;
+                                       anatop-vol-bit-width = <5>;
+                                       anatop-min-bit-val = <0x14>;
+                                       anatop-min-voltage = <1100000>;
+                                       anatop-max-voltage = <1300000>;
+                                       anatop-enable-bit = <0>;
+                               };
+                       };
+
+                       irq_sec_vio: caam_secvio {
+                               compatible = "fsl,imx6q-caam-secvio";
+                               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                               jtag-tamper = "disabled";
+                               watchdog-tamper = "enabled";
+                               internal-boot-tamper = "enabled";
+                               external-pin-tamper = "disabled";
+                       };
+
+                       caam_snvs: caam-snvs@30370000 {
+                               compatible = "fsl,imx6q-caam-snvs";
+                               reg = <0x30370000 0x10000>;
                        };
 
                        snvs: snvs@30370000 {
                                        offset = <0x38>;
                                        value = <0x60>;
                                        mask = <0x60>;
+                                       status = "disabled";
                                };
 
                                snvs_pwrkey: snvs-powerkey {
                                        compatible = "fsl,sec-v4.0-pwrkey";
                                        regmap = <&snvs>;
                                        interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&clks IMX7D_SNVS_CLK>;
+                                       clock-names = "snvs";
                                        linux,keycode = <KEY_POWER>;
                                        wakeup-source;
+                                       status = "disabled";
                                };
                        };
 
                        };
 
                        src: src@30390000 {
-                               compatible = "fsl,imx7d-src", "syscon";
+                               compatible = "fsl,imx7d-src", "fsl,imx51-src", "syscon";
                                reg = <0x30390000 0x10000>;
                                interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                                #reset-cells = <1>;
                                interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
                                #interrupt-cells = <3>;
                                interrupt-parent = <&intc>;
+                               fsl,mf-mix-wakeup-irq = <0x54010000 0xc00 0x0 0x1040640>;
                                #power-domain-cells = <1>;
 
                                pgc {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
-                                       pgc_pcie_phy: pgc-power-domain@1 {
+                                       pgc_mipi_phy: power-domain@0 {
+                                               #power-domain-cells = <0>;
+                                               reg = <0>;
+                                               power-supply = <&reg_1p0d>;
+                                       };
+
+                                       pgc_pcie_phy: power-domain@1 {
                                                #power-domain-cells = <0>;
                                                reg = <1>;
                                                power-supply = <&reg_1p0d>;
                                        };
+
+                                       pgc_hsic_phy: power-domain@2 {
+                                               #power-domain-cells = <0>;
+                                               reg = <2>;
+                                               power-supply = <&reg_1p2>;
+                                       };
                                };
                        };
                };
                                interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX7D_ADC_ROOT_CLK>;
                                clock-names = "adc";
+                               #io-channel-cells = <1>;
                                status = "disabled";
                        };
 
-                       ecspi4: ecspi@30630000 {
+                       ecspi4: spi@30630000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
                                status = "disabled";
                        };
 
+                       csi: csi@30710000 {
+                               compatible = "fsl,imx7-csi";
+                               reg = <0x30710000 0x10000>;
+                               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_CSI_MCLK_ROOT_CLK>,
+                                        <&clks IMX7D_CLK_DUMMY>;
+                               clock-names = "axi", "mclk", "dcic";
+                               status = "disabled";
+
+                               port {
+                                       csi_from_csi_mux: endpoint {
+                                               remote-endpoint = <&csi_mux_to_csi>;
+                                       };
+                               };
+                       };
+
                        lcdif: lcdif@30730000 {
                                compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
                                reg = <0x30730000 0x10000>;
                                interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
-                                       <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>;
-                               clock-names = "pix", "axi";
+                                        <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_CLK_DUMMY>;
+                               clock-names = "pix", "axi", "disp_axi";
+                               status = "disabled";
+                       };
+
+                       mipi_csi: mipi-csi@30750000 {
+                               compatible = "fsl,imx7-mipi-csi2";
+                               reg = <0x30750000 0x10000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_IPG_ROOT_CLK>,
+                                        <&clks IMX7D_MIPI_CSI_ROOT_CLK>,
+                                        <&clks IMX7D_MIPI_DPHY_ROOT_CLK>;
+                               clock-names = "pclk", "wrap", "phy";
+                               power-domains = <&pgc_mipi_phy>;
+                               phy-supply = <&reg_1p0d>;
+                               resets = <&src IMX7_RESET_MIPI_PHY_MRST>;
+                               reset-names = "mrst";
                                status = "disabled";
+
+                               port@0 {
+                                       reg = <0>;
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       mipi_vc0_to_csi_mux: endpoint {
+                                               remote-endpoint = <&csi_mux_from_mipi_vc0>;
+                                       };
+                               };
+                       };
+
+                       ddrc: ddrc@307a0000 {
+                               compatible = "fsl,imx7-ddrc";
+                               reg = <0x307a0000 0x10000>;
                        };
                };
 
                                reg = <0x30800000 0x100000>;
                                ranges;
 
-                               ecspi1: ecspi@30820000 {
+                               ecspi1: spi@30820000 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
                                        status = "disabled";
                                };
 
-                               ecspi2: ecspi@30830000 {
+                               ecspi2: spi@30830000 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
                                        status = "disabled";
                                };
 
-                               ecspi3: ecspi@30840000 {
+                               ecspi3: spi@30840000 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
                                        clocks = <&clks IMX7D_UART2_ROOT_CLK>,
                                                <&clks IMX7D_UART2_ROOT_CLK>;
                                        clock-names = "ipg", "per";
+                                       dmas = <&sdma 24 4 0>, <&sdma 25 4 0>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                        clocks = <&clks IMX7D_UART3_ROOT_CLK>,
                                                <&clks IMX7D_UART3_ROOT_CLK>;
                                        clock-names = "ipg", "per";
+                                       dmas = <&sdma 26 4 0>, <&sdma 27 4 0>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                clocks = <&clks IMX7D_CLK_DUMMY>,
                                        <&clks IMX7D_CAN1_ROOT_CLK>;
                                clock-names = "ipg", "per";
+                               fsl,stop-mode = <&gpr 0x10 1 0x10 17>;
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX7D_CLK_DUMMY>,
                                        <&clks IMX7D_CAN2_ROOT_CLK>;
                                clock-names = "ipg", "per";
+                               fsl,stop-mode = <&gpr 0x10 2 0x10 18>;
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX7D_UART4_ROOT_CLK>,
                                        <&clks IMX7D_UART4_ROOT_CLK>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 28 4 0>, <&sdma 29 4 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX7D_UART5_ROOT_CLK>,
                                        <&clks IMX7D_UART5_ROOT_CLK>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 30 4 0>, <&sdma 31 4 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX7D_UART6_ROOT_CLK>,
                                        <&clks IMX7D_UART6_ROOT_CLK>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 32 4 0>, <&sdma 33 4 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX7D_UART7_ROOT_CLK>,
                                        <&clks IMX7D_UART7_ROOT_CLK>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 34 4 0>, <&sdma 35 4 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       mu0a: mailbox@30aa0000 {
+                               compatible = "fsl,imx7s-mu", "fsl,imx6sx-mu";
+                               reg = <0x30aa0000 0x10000>;
+                               interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_MU_ROOT_CLK>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       mu0b: mailbox@30ab0000 {
+                               compatible = "fsl,imx7s-mu", "fsl,imx6sx-mu";
+                               reg = <0x30ab0000 0x10000>;
+                               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_MU_ROOT_CLK>;
+                               #mbox-cells = <2>;
+                               fsl,mu-side-b;
                                status = "disabled";
                        };
 
                                compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
                                reg = <0x30b30000 0x200>;
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&pgc_hsic_phy>;
                                clocks = <&clks IMX7D_USB_CTRL_CLK>;
                                fsl,usbphy = <&usbphynop3>;
                                fsl,usbmisc = <&usbmisc3 0>;
                                        <&clks IMX7D_USDHC1_ROOT_CLK>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <4>;
+                               fsl,tuning-step = <2>;
+                               fsl,tuning-start-tap = <20>;
                                status = "disabled";
                        };
 
                                        <&clks IMX7D_USDHC2_ROOT_CLK>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <4>;
+                               fsl,tuning-step = <2>;
+                               fsl,tuning-start-tap = <20>;
                                status = "disabled";
                        };
 
                                        <&clks IMX7D_USDHC3_ROOT_CLK>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <4>;
-                               status = "disabled";
-                       };
-
-                       qspi1: qspi@30bb0000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,imx7d-qspi";
-                               reg = <0x30bb0000 0x10000>, <0x60000000 0x10000000>;
-                               reg-names = "QuadSPI", "QuadSPI-memory";
-                               interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_QSPI_ROOT_CLK>,
-                                       <&clks IMX7D_QSPI_ROOT_CLK>;
-                               clock-names = "qspi_en", "qspi";
+                               fsl,tuning-step = <2>;
+                               fsl,tuning-start-tap = <20>;
                                status = "disabled";
                        };
 
                                compatible = "fsl,imx7d-sdma", "fsl,imx35-sdma";
                                reg = <0x30bd0000 0x10000>;
                                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_SDMA_CORE_CLK>,
-                                        <&clks IMX7D_AHB_CHANNEL_ROOT_CLK>;
+                               clocks = <&clks IMX7D_IPG_ROOT_CLK>,
+                                        <&clks IMX7D_SDMA_CORE_CLK>;
                                clock-names = "ipg", "ahb";
                                #dma-cells = <3>;
                                fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
                                        <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
                                        <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
                                        <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
+                               clocks = <&clks IMX7D_ENET1_IPG_ROOT_CLK>,
                                        <&clks IMX7D_ENET_AXI_ROOT_CLK>,
                                        <&clks IMX7D_ENET1_TIME_ROOT_CLK>,
                                        <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
-                                       <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
+                                       <&clks IMX7D_ENET_PHY_REF_ROOT_DIV>;
                                clock-names = "ipg", "ahb", "ptp",
                                        "enet_clk_ref", "enet_out";
-                               fsl,num-tx-queues=<3>;
-                               fsl,num-rx-queues=<3>;
+                               fsl,num-tx-queues = <3>;
+                               fsl,num-rx-queues = <3>;
                                status = "disabled";
                        };
                };
index b2325d3..89eadb9 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2014-2015 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP.
  *
  * 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 IMX7D_SPDIF_ROOT_SRC           155
 #define IMX7D_SPDIF_ROOT_CG            156
 #define IMX7D_SPDIF_ROOT_DIV           157
-#define IMX7D_ENET1_REF_ROOT_CLK       158
+#define IMX7D_ENET1_IPG_ROOT_CLK        158
 #define IMX7D_ENET1_REF_ROOT_SRC       159
 #define IMX7D_ENET1_REF_ROOT_CG                160
 #define IMX7D_ENET1_REF_ROOT_DIV       161
 #define IMX7D_ENET1_TIME_ROOT_SRC      163
 #define IMX7D_ENET1_TIME_ROOT_CG       164
 #define IMX7D_ENET1_TIME_ROOT_DIV      165
-#define IMX7D_ENET2_REF_ROOT_CLK       166
+#define IMX7D_ENET2_IPG_ROOT_CLK        166
 #define IMX7D_ENET2_REF_ROOT_SRC       167
 #define IMX7D_ENET2_REF_ROOT_CG                168
 #define IMX7D_ENET2_REF_ROOT_DIV       169
 #define IMX7D_SNVS_CLK                 442
 #define IMX7D_CAAM_CLK                 443
 #define IMX7D_KPP_ROOT_CLK             444
-#define IMX7D_CLK_END                  445
+#define IMX7D_PXP_IPG_CLK              445
+#define IMX7D_PXP_AXI_CLK              446
+#define IMX7D_CLK_END                  447
+
 #endif /* __DT_BINDINGS_CLOCK_IMX7D_H */