Merge tag 'arm-dt-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 5 Jun 2020 03:02:14 +0000 (20:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 5 Jun 2020 03:02:14 +0000 (20:02 -0700)
Pull ARM devicetree updates from Arnd Bergmann:
 "This is the set of device tree changes, mostly covering new hardware
  support, with 577 patches touching a little over 500 files.

  There are five new Arm SoCs supported in this release, all of them for
  existing SoC families:

   - Realtek RTD1195, RTD1395 and RTD1619 -- three SoCs used in both NAS
     devices and Android Set-top-box designs, along with the
     "Horseradish", "Lion Skin" and "Mjolnir" reference platforms; the
     Mele X1000 and Xnano X5 set-top-boxes and the Banana Pi BPi-M4
     single-board computer.

   - Renesas RZ/G1H (r8a7742) -- a high-end 32-bit industrial SoC and
     the iW-RainboW-G21D-Qseven-RZG1H board/SoM

   - Rockchips RK3326 -- low-end 64-bit SoC along with the Odroid-GO
     Advance game console

  Newly added machines on already supported SoCs are:

   - AMLogic S905D based Smartlabs SML-5442TW TV box

   - AMLogic S905X3 based ODROID-C4 SBC

   - AMLogic S922XH based Beelink GT-King Pro TV box

   - Allwinner A20 based Olimex A20-OLinuXino-LIME-eMMC SBC

   - Aspeed ast2500 based BMCs in Facebook x86 "Yosemite V2" and YADRO
     OpenPower P9 "Nicole"

   - Marvell Kirkwood based Check Point L-50 router

   - Mediatek MT8173 based Elm/Hana Chromebook laptops

   - Microchip SAMA5D2 "Industrial Connectivity Platform" reference
     board

   - NXP i.MX8m based Beacon i.MX8m-Mini SoM development kit

   - Octavo OSDMP15x based Linux Automation MC-1 development board

   - Qualcomm SDM630 based Xiaomi Redmi Note 7 phone

   - Realtek RTD1295 based Xnano X5 TV Box

   - STMicroelectronics STM32MP1 based Stinger96 single-board computer
     and IoT Box

   - Samsung Exynos4210 based based Samsung Galaxy S2 phone

   - Socionext Uniphier based Akebi96 SBC

   - TI Keystone based K2G Evaluation board

   - TI am5729 based Beaglebone-AI development board

  Include device descriptions for additional hardware support in
  existing SoCs and machines based on all major SoC platforms:

   - AMlogic Meson

   - Allwinner sunxi

   - Arm Juno/VFP/Vexpress/Integrator

   - Broadcom bcm283x/bcm2711

   - Hisilicon hi6220

   - Marvell EBU

   - Mediatek MT27xx, MT76xx, MT81xx and MT67xx

   - Microchip SAMA5D2

   - NXP i.MX6/i.MX7/i.MX8 and Layerscape

   - Nvidia Tegra

   - Qualcomm Snapdragon

   - Renesas r8a77961, r8a7791

   - Rockchips RK32xx/RK33xx

   - ST-Ericsson ux500

   - STMicroelectronics SMT32

   - Samsung Exynos and S5PV210

   - Socionext Uniphier

   - TI OMAP5/DRA7 and Keystone"

* tag 'arm-dt-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (564 commits)
  ARM: dts: keystone: Rename "msmram" node to "sram"
  arm: dts: mt2712: add uart APDMA to device tree
  arm64: dts: mt8183: add mmc node
  arm64: dts: mt2712: add ethernet device node
  arm64: tegra: Make the RTC a wakeup source on Jetson Nano and TX1
  ARM: dts: mmp3: Add the fifth SD HCI
  ARM: dts: berlin*: Fix up the SDHCI node names
  ARM: dts: mmp3: Fix USB & USB PHY node names
  ARM: dts: mmp3: Fix L2 cache controller node name
  ARM: dts: mmp*: Fix up encoding of the /rtc interrupts property
  ARM: dts: pxa*: Fix up encoding of the /rtc interrupts property
  ARM: dts: pxa910: Fix the gpio interrupt cell number
  ARM: dts: pxa3xx: Fix up encoding of the /gpio interrupts property
  ARM: dts: pxa168: Fix the gpio interrupt cell number
  ARM: dts: pxa168: Add missing address/size cells to i2c nodes
  ARM: dts: dove: Fix interrupt controller node name
  ARM: dts: kirkwood: Fix interrupt controller node name
  arm64: dts: Add SC9863A emmc and sd card nodes
  arm64: dts: Add SC9863A clock nodes
  arm64: dts: mt6358: add PMIC MT6358 related nodes
  ...

39 files changed:
1  2 
Documentation/devicetree/bindings/vendor-prefixes.yaml
arch/arm/boot/dts/am571x-idk.dts
arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
arch/arm/boot/dts/am57xx-idk-common.dtsi
arch/arm/boot/dts/dra7-l4.dtsi
arch/arm/boot/dts/dra7.dtsi
arch/arm/boot/dts/imx6qdl.dtsi
arch/arm/boot/dts/imx6sx.dtsi
arch/arm/boot/dts/imx6ul.dtsi
arch/arm/boot/dts/imx7s.dtsi
arch/arm/boot/dts/omap5-l4.dtsi
arch/arm/boot/dts/omap5.dtsi
arch/arm/boot/dts/qcom-ipq4019.dtsi
arch/arm/boot/dts/r8a7740.dtsi
arch/arm/boot/dts/rk3229-xms6.dts
arch/arm/boot/dts/rk322x.dtsi
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
arch/arm64/boot/dts/amlogic/meson-g12.dtsi
arch/arm64/boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi
arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
arch/arm64/boot/dts/freescale/imx8mm.dtsi
arch/arm64/boot/dts/freescale/imx8mn.dtsi
arch/arm64/boot/dts/freescale/imx8mp.dtsi
arch/arm64/boot/dts/freescale/imx8mq.dtsi
arch/arm64/boot/dts/mediatek/mt8173.dtsi
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
arch/arm64/boot/dts/qcom/msm8996.dtsi
arch/arm64/boot/dts/qcom/sdm845-db845c.dts
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
arch/arm64/boot/dts/renesas/r8a77980.dtsi
arch/arm64/boot/dts/rockchip/px30.dtsi
arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
arch/arm64/boot/dts/rockchip/rk3328.dtsi
arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
arch/arm64/boot/dts/rockchip/rk3399.dtsi
arch/arm64/boot/dts/ti/k3-am65-main.dtsi
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi

@@@ -187,8 -187,6 +187,8 @@@ patternProperties
      description: ChipOne
    "^chipspark,.*":
      description: ChipSPARK
 +  "^chrontel,.*":
 +    description: Chrontel, Inc.
    "^chrp,.*":
      description: Common Hardware Reference Platform
    "^chunghwa,.*":
      description: Infineon Technologies
    "^inforce,.*":
      description: Inforce Computing
 +  "^ivo,.*":
 +    description: InfoVision Optoelectronics Kunshan Co. Ltd.
    "^ingenic,.*":
      description: Ingenic Semiconductor
    "^innolux,.*":
    "^issi,.*":
      description: Integrated Silicon Solutions Inc.
    "^ite,.*":
 -    description: ITE Tech, Inc.
 +    description: ITE Tech. Inc.
    "^itead,.*":
      description: ITEAD Intelligent Systems Co.Ltd
    "^iwave,.*":
      description: LSI Corp. (LSI Logic)
    "^lwn,.*":
      description: Liebherr-Werk Nenzing GmbH
+   "^lxa,.*":
+     description: Linux Automation GmbH
    "^macnica,.*":
      description: Macnica Americas
    "^mapleboard,.*":
      description: Microsoft Corporation
    "^mikroe,.*":
      description: MikroElektronika d.o.o.
 +  "^mikrotik,.*":
 +    description: MikroTik
    "^miniand,.*":
      description: Miniand Tech
    "^minix,.*":
      description: Sharp Corporation
    "^shimafuji,.*":
      description: Shimafuji Electric, Inc.
+   "^shiratech,.*":
+     description: Shiratech Solutions
    "^si-en,.*":
      description: Si-En Technology Ltd.
    "^si-linux,.*":
      description: Sitronix Technology Corporation
    "^skyworks,.*":
      description: Skyworks Solutions, Inc.
+   "^smartlabs,.*":
+     description: SmartLabs LLC
    "^smsc,.*":
      description: Standard Microsystems Corporation
    "^snps,.*":
      description: Tronsmart
    "^truly,.*":
      description: Truly Semiconductors Limited
 +  "^visionox,.*":
 +    description: Visionox
    "^tsd,.*":
      description: Theobroma Systems Design und Consulting GmbH
    "^tyan,.*":
      description: Shenzhen Xinpeng Technology Co., Ltd
    "^xlnx,.*":
      description: Xilinx
+   "^xnano,.*":
+     description: Xnano
    "^xunlong,.*":
      description: Shenzhen Xunlong Software CO.,Limited
    "^xylon,.*":
@@@ -10,6 -10,7 +10,7 @@@
  #include "dra7-mmc-iodelay.dtsi"
  #include "dra72x-mmc-iodelay.dtsi"
  #include "am57xx-idk-common.dtsi"
+ #include "dra7-ipu-dsp-common.dtsi"
  
  / {
        model = "TI AM5718 IDK";
                reg = <0x0 0x80000000 0x0 0x40000000>;
        };
  
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               ipu2_memory_region: ipu2-memory@95800000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x95800000 0x0 0x3800000>;
+                       reusable;
+                       status = "okay";
+               };
+               dsp1_memory_region: dsp1-memory@99000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x99000000 0x0 0x4000000>;
+                       reusable;
+                       status = "okay";
+               };
+               ipu1_memory_region: ipu1-memory@9d000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x9d000000 0x0 0x2000000>;
+                       reusable;
+                       status = "okay";
+               };
+       };
        leds {
                compatible = "gpio-leds";
                cpu0-led {
        load-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
  };
  
- &mailbox5 {
+ &ipu2 {
        status = "okay";
-       mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
-               status = "okay";
-       };
-       mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
-               status = "okay";
-       };
+       memory-region = <&ipu2_memory_region>;
  };
  
- &mailbox6 {
+ &ipu1 {
        status = "okay";
-       mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
-               status = "okay";
-       };
+       memory-region = <&ipu1_memory_region>;
+ };
+ &dsp1 {
+       status = "okay";
+       memory-region = <&dsp1_memory_region>;
  };
  
  &pcie1_rc {
  
  &cpsw_port1 {
        phy-handle = <&ethphy0_sw>;
 -      phy-mode = "rgmii";
 +      phy-mode = "rgmii-rxid";
        ti,dual-emac-pvid = <1>;
  };
  
  &cpsw_port2 {
        phy-handle = <&ethphy1_sw>;
 -      phy-mode = "rgmii";
 +      phy-mode = "rgmii-rxid";
        ti,dual-emac-pvid = <2>;
  };
  
@@@ -7,6 -7,7 +7,7 @@@
  #include "am5728.dtsi"
  #include "am57xx-commercial-grade.dtsi"
  #include "dra74x-mmc-iodelay.dtsi"
+ #include "dra74-ipu-dsp-common.dtsi"
  #include <dt-bindings/gpio/gpio.h>
  #include <dt-bindings/interrupt-controller/irq.h>
  
                regulator-boot-on;
        };
  
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               ipu2_memory_region: ipu2-memory@95800000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x95800000 0x0 0x3800000>;
+                       reusable;
+                       status = "okay";
+               };
+               dsp1_memory_region: dsp1-memory@99000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x99000000 0x0 0x4000000>;
+                       reusable;
+                       status = "okay";
+               };
+               ipu1_memory_region: ipu1-memory@9d000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x9d000000 0x0 0x2000000>;
+                       reusable;
+                       status = "okay";
+               };
+               dsp2_memory_region: dsp2-memory@9f000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x9f000000 0x0 0x800000>;
+                       reusable;
+                       status = "okay";
+               };
+       };
        vdd_3v3: fixedregulator-vdd_3v3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3";
  
  &cpsw_emac0 {
        phy-handle = <&phy0>;
 -      phy-mode = "rgmii";
 +      phy-mode = "rgmii-rxid";
        dual_emac_res_vlan = <1>;
  };
  
  &cpsw_emac1 {
        phy-handle = <&phy1>;
 -      phy-mode = "rgmii";
 +      phy-mode = "rgmii-rxid";
        dual_emac_res_vlan = <2>;
  };
  
        rx-num-evt = <32>;
  };
  
- &mailbox5 {
+ &ipu2 {
        status = "okay";
-       mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
-               status = "okay";
-       };
-       mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
-               status = "okay";
-       };
+       memory-region = <&ipu2_memory_region>;
  };
  
- &mailbox6 {
+ &ipu1 {
        status = "okay";
-       mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
-               status = "okay";
-       };
-       mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
-               status = "okay";
-       };
+       memory-region = <&ipu1_memory_region>;
+ };
+ &dsp1 {
+       status = "okay";
+       memory-region = <&dsp1_memory_region>;
+ };
+ &dsp2 {
+       status = "okay";
+       memory-region = <&dsp2_memory_region>;
  };
                regulator-boot-on;
        };
  
+       v1_2d: fixedregulator-v1_2d {
+               compatible = "regulator-fixed";
+               regulator-name = "V1_2D";
+               vin-supply = <&vmain>;
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
        vtt_fixed: fixedregulator-vtt {
                /* TPS51200 */
                compatible = "regulator-fixed";
                        };
                };
        };
+       src_clk_x1: src_clk_x1 {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <20000000>;
+       };
  };
  
  &dra7_pmx_core {
                gpio-controller;
                #gpio-cells = <2>;
        };
+       dsi_bridge: tc358778@e {
+               compatible = "toshiba,tc358778", "toshiba,tc358768";
+               reg = <0xe>;
+               status = "disabled";
+               clocks = <&src_clk_x1>;
+               clock-names = "refclk";
+               vddc-supply = <&v1_2d>;
+               vddmipi-supply = <&v1_2d>;
+               vddio-supply = <&v3_3d>;
+               dsi_bridge_ports: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       port@0 {
+                               reg = <0>;
+                               rgb_in: endpoint {
+                                       remote-endpoint = <&dpi_out>;
+                                       data-lines = <24>;
+                               };
+                       };
+               };
+       };
  };
  
  &mcspi3 {
  
  &cpsw_emac0 {
        phy-handle = <&ethphy0>;
 -      phy-mode = "rgmii";
 +      phy-mode = "rgmii-rxid";
        dual_emac_res_vlan = <1>;
  };
  
  &cpsw_emac1 {
        phy-handle = <&ethphy1>;
 -      phy-mode = "rgmii";
 +      phy-mode = "rgmii-rxid";
        dual_emac_res_vlan = <2>;
  };
  
  
  &dss {
        status = "okay";
+       vdda_video-supply = <&ldoln_reg>;
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               port@0 {
+                       reg = <0>;
+                       dpi_out: endpoint {
+                               remote-endpoint = <&rgb_in>;
+                               data-lines = <24>;
+                       };
+               };
+       };
  };
  
                target-module@32000 {                   /* 0x48032000, ap 5 3e.0 */
                        compatible = "ti,sysc-omap4-timer", "ti,sysc";
 -                      ti,hwmods = "timer2";
                        reg = <0x32000 0x4>,
                              <0x32010 0x4>;
                        reg-names = "rev", "sysc";
                        timer2: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER2_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER2_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
  
                target-module@34000 {                   /* 0x48034000, ap 7 46.0 */
                        compatible = "ti,sysc-omap4-timer", "ti,sysc";
 -                      ti,hwmods = "timer3";
                        reg = <0x34000 0x4>,
                              <0x34010 0x4>;
                        reg-names = "rev", "sysc";
                        timer3: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER3_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER3_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
  
                target-module@36000 {                   /* 0x48036000, ap 9 4e.0 */
                        compatible = "ti,sysc-omap4-timer", "ti,sysc";
 -                      ti,hwmods = "timer4";
                        reg = <0x36000 0x4>,
                              <0x36010 0x4>;
                        reg-names = "rev", "sysc";
                                        <SYSC_IDLE_SMART>,
                                        <SYSC_IDLE_SMART_WKUP>;
                        /* Domains (P, C): l4per_pwrdm, l4per_clkdm */
-                       clocks = <&l4per_clkctrl DRA7_L4PER_TIMER4_CLKCTRL 0>;
-                       clock-names = "fck";
+                       clocks = <&l4per_clkctrl DRA7_L4PER_TIMER4_CLKCTRL 0>,
+                                <&timer_sys_clk_div>;
+                       clock-names = "fck", "timer_sys_ck";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x0 0x36000 0x1000>;
                        timer4: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER4_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER4_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
                        timer9: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER9_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER9_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
                        timer10: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER10_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER10_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
                        timer11: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER11_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&l4per_clkctrl DRA7_L4PER_TIMER11_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
                                        <SYSC_IDLE_SMART>,
                                        <SYSC_IDLE_SMART_WKUP>;
                        /* Domains (P, C): ipu_pwrdm, ipu_clkdm */
-                       clocks = <&ipu_clkctrl DRA7_IPU_TIMER5_CLKCTRL 0>;
-                       clock-names = "fck";
+                       clocks = <&ipu_clkctrl DRA7_IPU_TIMER5_CLKCTRL 0>, <&timer_sys_clk_div>;
+                       clock-names = "fck", "timer_sys_ck";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x0 0x20000 0x1000>;
                                        <SYSC_IDLE_SMART>,
                                        <SYSC_IDLE_SMART_WKUP>;
                        /* Domains (P, C): ipu_pwrdm, ipu_clkdm */
-                       clocks = <&ipu_clkctrl DRA7_IPU_TIMER6_CLKCTRL 0>;
-                       clock-names = "fck";
+                       clocks = <&ipu_clkctrl DRA7_IPU_TIMER6_CLKCTRL 0>,
+                                <&timer_sys_clk_div>;
+                       clock-names = "fck", "timer_sys_ck";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x0 0x22000 0x1000>;
                        timer7: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&ipu_clkctrl DRA7_IPU_TIMER7_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&ipu_clkctrl DRA7_IPU_TIMER7_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
                        timer8: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&ipu_clkctrl DRA7_IPU_TIMER8_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&ipu_clkctrl DRA7_IPU_TIMER8_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
                        timer13: timer@0 {
                                compatible = "ti,omap5430-timer";
                                reg = <0x0 0x80>;
-                               clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER13_CLKCTRL 24>;
-                               clock-names = "fck";
+                               clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER13_CLKCTRL 24>, <&timer_sys_clk_div>;
+                               clock-names = "fck", "timer_sys_ck";
                                interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
                                ti,timer-pwm;
                        };
  
                target-module@4000 {                    /* 0x4ae04000, ap 15 40.0 */
                        compatible = "ti,sysc-omap2", "ti,sysc";
 -                      ti,hwmods = "counter_32k";
                        reg = <0x4000 0x4>,
                              <0x4010 0x4>;
                        reg-names = "rev", "sysc";
                        };
                };
  
 -              target-module@8000 {                    /* 0x4ae18000, ap 9 30.0 */
 +              timer1_target: target-module@8000 {     /* 0x4ae18000, ap 9 30.0 */
                        compatible = "ti,sysc-omap4-timer", "ti,sysc";
 -                      ti,hwmods = "timer1";
                        reg = <0x8000 0x4>,
                              <0x8010 0x4>;
                        reg-names = "rev", "sysc";
                        #address-cells = <1>;
                        ranges = <0x51000000 0x51000000 0x3000
                                  0x0        0x20000000 0x10000000>;
 +                      dma-ranges;
                        /**
                         * To enable PCI endpoint mode, disable the pcie1_rc
                         * node and enable pcie1_ep mode.
                                device_type = "pci";
                                ranges = <0x81000000 0 0          0x03000 0 0x00010000
                                          0x82000000 0 0x20013000 0x13000 0 0xffed000>;
 -                              dma-ranges = <0x02000000 0x0 0x00000000 0x00000000 0x1 0x00000000>;
                                bus-range = <0x00 0xff>;
                                #interrupt-cells = <1>;
                                num-lanes = <1>;
                        #address-cells = <1>;
                        ranges = <0x51800000 0x51800000 0x3000
                                  0x0        0x30000000 0x10000000>;
 +                      dma-ranges;
                        status = "disabled";
                        pcie2_rc: pcie@51800000 {
                                reg = <0x51800000 0x2000>, <0x51802000 0x14c>, <0x1000 0x2000>;
                                device_type = "pci";
                                ranges = <0x81000000 0 0          0x03000 0 0x00010000
                                          0x82000000 0 0x30013000 0x13000 0 0xffed000>;
 -                              dma-ranges = <0x02000000 0x0 0x00000000 0x00000000 0x1 0x00000000>;
                                bus-range = <0x00 0xff>;
                                #interrupt-cells = <1>;
                                num-lanes = <1>;
                        ti,hwmods = "dmm";
                };
  
+               ipu1: ipu@58820000 {
+                       compatible = "ti,dra7-ipu";
+                       reg = <0x58820000 0x10000>;
+                       reg-names = "l2ram";
+                       iommus = <&mmu_ipu1>;
+                       status = "disabled";
+                       resets = <&prm_ipu 0>, <&prm_ipu 1>;
+                       clocks = <&ipu1_clkctrl DRA7_IPU1_MMU_IPU1_CLKCTRL 0>;
+                       firmware-name = "dra7-ipu1-fw.xem4";
+               };
+               ipu2: ipu@55020000 {
+                       compatible = "ti,dra7-ipu";
+                       reg = <0x55020000 0x10000>;
+                       reg-names = "l2ram";
+                       iommus = <&mmu_ipu2>;
+                       status = "disabled";
+                       resets = <&prm_core 0>, <&prm_core 1>;
+                       clocks = <&ipu2_clkctrl DRA7_IPU2_MMU_IPU2_CLKCTRL 0>;
+                       firmware-name = "dra7-ipu2-fw.xem4";
+               };
+               dsp1: dsp@40800000 {
+                       compatible = "ti,dra7-dsp";
+                       reg = <0x40800000 0x48000>,
+                             <0x40e00000 0x8000>,
+                             <0x40f00000 0x8000>;
+                       reg-names = "l2ram", "l1pram", "l1dram";
+                       ti,bootreg = <&scm_conf 0x55c 10>;
+                       iommus = <&mmu0_dsp1>, <&mmu1_dsp1>;
+                       status = "disabled";
+                       resets = <&prm_dsp1 0>;
+                       clocks = <&dsp1_clkctrl DRA7_DSP1_MMU0_DSP1_CLKCTRL 0>;
+                       firmware-name = "dra7-dsp1-fw.xe66";
+               };
                target-module@40d01000 {
                        compatible = "ti,sysc-omap2", "ti,sysc";
                        reg = <0x40d01000 0x4>,
                reg = <0x1c00 0x60>;
        };
  };
 +
 +/* Preferred always-on timer for clockevent */
 +&timer1_target {
 +      ti,no-reset-on-init;
 +      ti,no-idle;
 +      timer@0 {
 +              assigned-clocks = <&wkupaon_clkctrl DRA7_TIMER1_CLKCTRL 24>;
 +              assigned-clock-parents = <&sys_32k_ck>;
 +      };
 +};
@@@ -74,7 -74,8 +74,8 @@@
                interrupt-parent = <&gpc>;
                interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
                fsl,tempmon = <&anatop>;
-               fsl,tempmon-data = <&ocotp>;
+               nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
+               nvmem-cell-names = "calib", "temp_grade";
                clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
                #thermal-sensor-cells = <0>;
        };
                                interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
                        };
  
-                       src: src@20d8000 {
+                       src: reset-controller@20d8000 {
                                compatible = "fsl,imx6q-src", "fsl,imx51-src";
                                reg = <0x020d8000 0x4000>;
                                interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
                                         <&clks IMX6QDL_CLK_ENET>,
                                         <&clks IMX6QDL_CLK_ENET_REF>;
                                clock-names = "ipg", "ahb", "ptp";
 -                              gpr = <&gpr>;
 +                              fsl,stop-mode = <&gpr 0x34 27>;
                                status = "disabled";
                        };
  
                                cpu_speed_grade: speed-grade@10 {
                                        reg = <0x10 4>;
                                };
+                               tempmon_calib: calib@38 {
+                                       reg = <0x38 4>;
+                               };
+                               tempmon_temp_grade: temp-grade@20 {
+                                       reg = <0x20 4>;
+                               };
                        };
  
                        tzasc@21d0000 { /* TZASC1 */
                                interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
                        };
  
-                       src: src@20d8000 {
+                       src: reset-controller@20d8000 {
                                compatible = "fsl,imx6sx-src", "fsl,imx51-src";
                                reg = <0x020d8000 0x4000>;
                                interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
                                              "enet_clk_ref", "enet_out";
                                fsl,num-tx-queues = <3>;
                                fsl,num-rx-queues = <3>;
 +                              fsl,stop-mode = <&gpr 0x10 3>;
                                status = "disabled";
                        };
  
                                         <&clks IMX6SX_CLK_ENET_PTP>;
                                clock-names = "ipg", "ahb", "ptp",
                                              "enet_clk_ref", "enet_out";
 +                              fsl,stop-mode = <&gpr 0x10 4>;
                                status = "disabled";
                        };
  
                                              "enet_clk_ref", "enet_out";
                                fsl,num-tx-queues = <1>;
                                fsl,num-rx-queues = <1>;
 +                              fsl,stop-mode = <&gpr 0x10 4>;
                                status = "disabled";
                        };
  
                                interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
                        };
  
-                       src: src@20d8000 {
+                       src: reset-controller@20d8000 {
                                compatible = "fsl,imx6ul-src", "fsl,imx51-src";
                                reg = <0x020d8000 0x4000>;
                                interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
                                              "enet_clk_ref", "enet_out";
                                fsl,num-tx-queues = <1>;
                                fsl,num-rx-queues = <1>;
 +                              fsl,stop-mode = <&gpr 0x10 3>;
                                status = "disabled";
                        };
  
                                clock-names = "ckil", "osc";
                        };
  
-                       src: src@30390000 {
+                       src: reset-controller@30390000 {
                                compatible = "fsl,imx7d-src", "syscon";
                                reg = <0x30390000 0x10000>;
                                interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                                        "enet_clk_ref", "enet_out";
                                fsl,num-tx-queues = <3>;
                                fsl,num-rx-queues = <3>;
 +                              fsl,stop-mode = <&gpr 0x10 3>;
                                status = "disabled";
                        };
                };
                         <0x00090000 0x00090000 0x002000>,      /* ap 55 */
                         <0x00092000 0x00092000 0x001000>,      /* ap 56 */
                         <0x000a4000 0x000a4000 0x001000>,      /* ap 57 */
+                        <0x000a5000 0x000a5000 0x001000>,
                         <0x000a6000 0x000a6000 0x001000>,      /* ap 58 */
                         <0x000a8000 0x000a8000 0x004000>,      /* ap 59 */
                         <0x000ac000 0x000ac000 0x001000>,      /* ap 60 */
                                 <0x00001000 0x000a5000 0x00001000>;
                };
  
+               des_target: target-module@a5000 {       /* 0x480a5000 */
+                       compatible = "ti,sysc-omap2", "ti,sysc";
+                       reg = <0xa5030 0x4>,
+                             <0xa5034 0x4>,
+                             <0xa5038 0x4>;
+                       reg-names = "rev", "sysc", "syss";
+                       ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
+                                        SYSC_OMAP2_AUTOIDLE)>;
+                       ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+                                       <SYSC_IDLE_NO>,
+                                       <SYSC_IDLE_SMART>,
+                                       <SYSC_IDLE_SMART_WKUP>;
+                       ti,syss-mask = <1>;
+                       /* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
+                       clocks = <&l4sec_clkctrl OMAP5_DES3DES_CLKCTRL 0>;
+                       clock-names = "fck";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0xa5000 0x00001000>;
+                       status = "disabled";
+                       des: des@0 {
+                               compatible = "ti,omap4-des";
+                               reg = <0 0xa0>;
+                               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&sdma 117>, <&sdma 116>;
+                               dma-names = "tx", "rx";
+                       };
+               };
                target-module@a8000 {                   /* 0x480a8000, ap 59 2a.0 */
                        compatible = "ti,sysc";
                        status = "disabled";
  
                target-module@4000 {                    /* 0x4ae04000, ap 17 20.0 */
                        compatible = "ti,sysc-omap2", "ti,sysc";
 -                      ti,hwmods = "counter_32k";
                        reg = <0x4000 0x4>,
                              <0x4010 0x4>;
                        reg-names = "rev", "sysc";
                        };
                };
  
 -              target-module@8000 {                    /* 0x4ae18000, ap 9 18.0 */
 +              timer1_target: target-module@8000 {     /* 0x4ae18000, ap 9 18.0 */
                        compatible = "ti,sysc-omap4-timer", "ti,sysc";
 -                      ti,hwmods = "timer1";
                        reg = <0x8000 0x4>,
                              <0x8010 0x4>;
                        reg-names = "rev", "sysc";
                        hw-caps-temp-alert;
                };
  
+               aes1_target: target-module@4b501000 {
+                       compatible = "ti,sysc-omap2", "ti,sysc";
+                       reg = <0x4b501080 0x4>,
+                             <0x4b501084 0x4>,
+                             <0x4b501088 0x4>;
+                       reg-names = "rev", "sysc", "syss";
+                       ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
+                                        SYSC_OMAP2_AUTOIDLE)>;
+                       ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+                                       <SYSC_IDLE_NO>,
+                                       <SYSC_IDLE_SMART>,
+                                       <SYSC_IDLE_SMART_WKUP>;
+                       ti,syss-mask = <1>;
+                       /* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
+                       clocks = <&l4sec_clkctrl OMAP5_AES1_CLKCTRL 0>;
+                       clock-names = "fck";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x4b501000 0x1000>;
+                       aes1: aes@0 {
+                               compatible = "ti,omap4-aes";
+                               reg = <0 0xa0>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&sdma 111>, <&sdma 110>;
+                               dma-names = "tx", "rx";
+                       };
+               };
+               aes2_target: target-module@4b701000 {
+                       compatible = "ti,sysc-omap2", "ti,sysc";
+                       reg = <0x4b701080 0x4>,
+                             <0x4b701084 0x4>,
+                             <0x4b701088 0x4>;
+                       reg-names = "rev", "sysc", "syss";
+                       ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
+                                        SYSC_OMAP2_AUTOIDLE)>;
+                       ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+                                       <SYSC_IDLE_NO>,
+                                       <SYSC_IDLE_SMART>,
+                                       <SYSC_IDLE_SMART_WKUP>;
+                       ti,syss-mask = <1>;
+                       /* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
+                       clocks = <&l4sec_clkctrl OMAP5_AES2_CLKCTRL 0>;
+                       clock-names = "fck";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x4b701000 0x1000>;
+                       aes2: aes@0 {
+                               compatible = "ti,omap4-aes";
+                               reg = <0 0xa0>;
+                               interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&sdma 114>, <&sdma 113>;
+                               dma-names = "tx", "rx";
+                       };
+               };
+               sham_target: target-module@4b100000 {
+                       compatible = "ti,sysc-omap3-sham", "ti,sysc";
+                       reg = <0x4b100100 0x4>,
+                             <0x4b100110 0x4>,
+                             <0x4b100114 0x4>;
+                       reg-names = "rev", "sysc", "syss";
+                       ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
+                                        SYSC_OMAP2_AUTOIDLE)>;
+                       ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+                                       <SYSC_IDLE_NO>,
+                                       <SYSC_IDLE_SMART>;
+                       ti,syss-mask = <1>;
+                       /* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
+                       clocks = <&l4sec_clkctrl OMAP5_SHA2MD5_CLKCTRL 0>;
+                       clock-names = "fck";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x4b100000 0x1000>;
+                       sham: sham@0 {
+                               compatible = "ti,omap4-sham";
+                               reg = <0 0x300>;
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&sdma 119>;
+                               dma-names = "rx";
+                       };
+               };
                bandgap: bandgap@4a0021e0 {
                        reg = <0x4a0021e0 0xc
                               0x4a00232c 0xc
                #reset-cells = <1>;
        };
  };
 +
 +/* Preferred always-on timer for clockevent */
 +&timer1_target {
 +      ti,no-reset-on-init;
 +      ti,no-idle;
 +      timer@0 {
 +              assigned-clocks = <&wkupaon_clkctrl OMAP5_TIMER1_CLKCTRL 24>;
 +              assigned-clock-parents = <&sys_32k_ck>;
 +      };
 +};
                             <1 4 0xf08>,
                             <1 1 0xf08>;
                clock-frequency = <48000000>;
+               always-on;
        };
  
        soc {
                                          "legacy";
                        status = "disabled";
                };
 +
 +              mdio: mdio@90000 {
 +                      #address-cells = <1>;
 +                      #size-cells = <0>;
 +                      compatible = "qcom,ipq4019-mdio";
 +                      reg = <0x90000 0x64>;
 +                      status = "disabled";
 +
 +                      ethphy0: ethernet-phy@0 {
 +                              reg = <0>;
 +                      };
 +
 +                      ethphy1: ethernet-phy@1 {
 +                              reg = <1>;
 +                      };
 +
 +                      ethphy2: ethernet-phy@2 {
 +                              reg = <2>;
 +                      };
 +
 +                      ethphy3: ethernet-phy@3 {
 +                              reg = <3>;
 +                      };
 +
 +                      ethphy4: ethernet-phy@4 {
 +                              reg = <4>;
 +                      };
 +              };
        };
  };
@@@ -83,7 -83,7 +83,7 @@@
        };
  
        cmt1: timer@e6138000 {
-               compatible = "renesas,cmt-48-r8a7740", "renesas,cmt-48";
+               compatible = "renesas,r8a7740-cmt1";
                reg = <0xe6138000 0x170>;
                interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7740_CLK_CMT1>;
                cpg_clocks: cpg_clocks@e6150000 {
                        compatible = "renesas,r8a7740-cpg-clocks";
                        reg = <0xe6150000 0x10000>;
 -                      clocks = <&extal1_clk>, <&extalr_clk>;
 +                      clocks = <&extal1_clk>, <&extal2_clk>, <&extalr_clk>;
                        #clock-cells = <1>;
                        clock-output-names = "system", "pllc0", "pllc1",
                                             "pllc2", "r",
        power-led {
                compatible = "gpio-leds";
  
-               blue {
+               blue_led: led-0 {
                        gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
        };
  
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>,
+                             <&gpio2 29 GPIO_ACTIVE_LOW>;
+       };
        vcc_host: vcc-host-regulator {
                compatible = "regulator-fixed";
                enable-active-high;
  
  &emmc {
        cap-mmc-highspeed;
-       disable-wp;
        non-removable;
        status = "okay";
  };
                #address-cells = <1>;
                #size-cells = <0>;
  
 -              phy: phy@0 {
 +              phy: ethernet-phy@0 {
                        compatible = "ethernet-phy-id1234.d400",
                                     "ethernet-phy-ieee802.3-c22";
                        reg = <0>;
        status = "okay";
  };
  
+ &sdio {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       vqmmc-supply = <&vccio_1v8>;
+       status = "okay";
+ };
  &sdmmc {
        cap-mmc-highspeed;
        disable-wp;
                                  "pp1",
                                  "ppmmu1";
                clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
 -              clock-names = "core", "bus";
 +              clock-names = "bus", "core";
                resets = <&cru SRST_GPU_A>;
                status = "disabled";
        };
                status = "disabled";
        };
  
+       rga: rga@20060000 {
+               compatible = "rockchip,rk3228-rga", "rockchip,rk3288-rga";
+               reg = <0x20060000 0x1000>;
+               interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>;
+               clock-names = "aclk", "hclk", "sclk";
+               resets = <&cru SRST_RGA>, <&cru SRST_RGA_A>, <&cru SRST_RGA_H>;
+               reset-names = "core", "axi", "ahb";
+       };
        iep_mmu: iommu@20070800 {
                compatible = "rockchip,iommu";
                reg = <0x20070800 0x100>;
                        };
                };
  
 -              spi-0 {
 +              spi0 {
                        spi0_clk: spi0-clk {
                                rockchip,pins = <0 RK_PB1 2 &pcfg_pull_up>;
                        };
                        };
                };
  
 -              spi-1 {
 +              spi1 {
                        spi1_clk: spi1-clk {
                                rockchip,pins = <0 RK_PC7 2 &pcfg_pull_up>;
                        };
                };
        };
  
 -      sound_spdif {
 -              compatible = "simple-audio-card";
 -              simple-audio-card,name = "On-board SPDIF";
 -
 -              simple-audio-card,cpu {
 -                      sound-dai = <&spdif>;
 -              };
 -
 -              simple-audio-card,codec {
 -                      sound-dai = <&spdif_out>;
 -              };
 -      };
 -
 -      spdif_out: spdif-out {
 -              #sound-dai-cells = <0>;
 -              compatible = "linux,spdif-dit";
 -      };
 -
        timer {
                compatible = "arm,armv8-timer";
                allwinner,erratum-unknown1;
                        resets = <&ccu RST_BUS_CE>;
                };
  
+               msgbox: mailbox@1c17000 {
+                       compatible = "allwinner,sun50i-a64-msgbox",
+                                    "allwinner,sun6i-a31-msgbox";
+                       reg = <0x01c17000 0x1000>;
+                       clocks = <&ccu CLK_BUS_MSGBOX>;
+                       resets = <&ccu RST_BUS_MSGBOX>;
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <1>;
+               };
                usb_otg: usb@1c19000 {
                        compatible = "allwinner,sun8i-a33-musb";
                        reg = <0x01c19000 0x0400>;
                        compatible = "allwinner,sun50i-a64-mbus";
                        reg = <0x01c62000 0x1000>;
                        clocks = <&ccu 112>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
                        dma-ranges = <0x00000000 0x40000000 0xc0000000>;
                        #interconnect-cells = <1>;
                };
                                };
                        };
  
+                       acodec: audio-controller@32000 {
+                               compatible = "amlogic,t9015";
+                               reg = <0x0 0x32000 0x0 0x14>;
+                               #sound-dai-cells = <0>;
+                               sound-name-prefix = "ACODEC";
+                               clocks = <&clkc CLKID_AUDIO_CODEC>;
+                               clock-names = "pclk";
+                               resets = <&reset RESET_AUDIO_CODEC>;
+                               status = "disabled";
+                       };
                        periphs: bus@34400 {
                                compatible = "simple-bus";
                                reg = <0x0 0x34400 0x0 0x400>;
                                reg = <0x0 0xff400000 0x0 0x40000>;
                                interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
 -                              clock-names = "ddr";
 +                              clock-names = "otg";
                                phys = <&usb2_phy1>;
                                phy-names = "usb2-phy";
                                dr_mode = "peripheral";
@@@ -1,3 -1,4 +1,3 @@@
 -
  // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  /*
   * Copyright (c) 2019 BayLibre, SAS
                        status = "disabled";
                };
  
+               toacodec: audio-controller@740 {
+                       compatible = "amlogic,g12a-toacodec";
+                       reg = <0x0 0x740 0x0 0x4>;
+                       #sound-dai-cells = <1>;
+                       sound-name-prefix = "TOACODEC";
+                       resets = <&clkc_audio AUD_RESET_TOACODEC>;
+                       status = "disabled";
+               };
                tohdmitx: audio-controller@744 {
                        compatible = "amlogic,g12a-tohdmitx";
                        reg = <0x0 0x744 0x0 0x4>;
        };
  };
  
- &cpu_thermal {
-       cooling-maps {
-               map0 {
-                       trip = <&cpu_passive>;
-                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-               };
-               map1 {
-                       trip = <&cpu_hot>;
-                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-               };
-       };
- };
  &ethmac {
        power-domains = <&pwrc PWRC_G12A_ETH_ID>;
  };
        sound {
                compatible = "amlogic,axg-sound-card";
                model = "G12B-KHADAS-VIM3";
-               audio-aux-devs = <&tdmout_b>;
-               audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
-                               "TDMOUT_B IN 1", "FRDDR_B OUT 1",
-                               "TDMOUT_B IN 2", "FRDDR_C OUT 1",
-                               "TDM_B Playback", "TDMOUT_B OUT";
+               audio-aux-devs = <&tdmout_a>;
+               audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
+                               "TDMOUT_A IN 1", "FRDDR_B OUT 0",
+                               "TDMOUT_A IN 2", "FRDDR_C OUT 0",
+                               "TDM_A Playback", "TDMOUT_A OUT";
  
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
@@@ -80,7 -80,7 +80,7 @@@
  
                /* 8ch hdmi interface */
                dai-link-3 {
-                       sound-dai = <&tdmif_b>;
+                       sound-dai = <&tdmif_a>;
                        dai-format = "i2s";
                        dai-tdm-slot-tx-mask-0 = <1 1>;
                        dai-tdm-slot-tx-mask-1 = <1 1>;
@@@ -89,7 -89,7 +89,7 @@@
                        mclk-fs = <256>;
  
                        codec {
-                               sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
+                               sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
                        };
                };
  
        clock-latency = <50000>;
  };
  
 +&frddr_a {
 +      status = "okay";
 +};
 +
  &frddr_b {
        status = "okay";
  };
        status = "okay";
  };
  
- &tdmif_b {
+ &tdmif_a {
        status = "okay";
  };
  
- &tdmout_b {
+ &tdmout_a {
        status = "okay";
  };
  
@@@ -7,42 -7,13 +7,13 @@@
  
  /dts-v1/;
  
- #include "meson-g12b.dtsi"
- #include "meson-g12b-s922x.dtsi"
- #include <dt-bindings/input/input.h>
- #include <dt-bindings/gpio/meson-g12a-gpio.h>
+ #include "meson-g12b-w400.dtsi"
  #include <dt-bindings/sound/meson-g12a-tohdmitx.h>
  
  / {
-       compatible = "ugoos,am6", "amlogic,g12b";
+       compatible = "ugoos,am6", "amlogic,s922x", "amlogic,g12b";
        model = "Ugoos AM6";
  
-       aliases {
-               serial0 = &uart_AO;
-               ethernet0 = &ethmac;
-       };
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-       memory@0 {
-               device_type = "memory";
-               reg = <0x0 0x0 0x0 0x40000000>;
-       };
-       emmc_pwrseq: emmc-pwrseq {
-               compatible = "mmc-pwrseq-emmc";
-               reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
-       };
-       sdio_pwrseq: sdio-pwrseq {
-               compatible = "mmc-pwrseq-simple";
-               reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
-               clocks = <&wifi32k>;
-               clock-names = "ext_clock";
-       };
        spdif_dit: audio-codec-1 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
                sound-name-prefix = "DIT";
        };
  
-       flash_1v8: regulator-flash_1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "FLASH_1V8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               vin-supply = <&vcc_3v3>;
-               regulator-always-on;
-       };
-       main_12v: regulator-main_12v {
-               compatible = "regulator-fixed";
-               regulator-name = "12V";
-               regulator-min-microvolt = <12000000>;
-               regulator-max-microvolt = <12000000>;
-               regulator-always-on;
-       };
-       vcc_5v: regulator-vcc_5v {
-               compatible = "regulator-fixed";
-               regulator-name = "VCC_5V";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               vin-supply = <&main_12v>;
-               gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
-               enable-active-high;
-       };
-       vcc_1v8: regulator-vcc_1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "VCC_1V8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               vin-supply = <&vcc_3v3>;
-               regulator-always-on;
-       };
-       vcc_3v3: regulator-vcc_3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "VCC_3V3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               vin-supply = <&vddao_3v3>;
-               regulator-always-on;
-               /* FIXME: actually controlled by VDDCPU_B_EN */
-       };
-       vddcpu_a: regulator-vddcpu-a {
-               /*
-                * MP1653 Regulator.
-                */
-               compatible = "pwm-regulator";
-               regulator-name = "VDDCPU_A";
-               regulator-min-microvolt = <721000>;
-               regulator-max-microvolt = <1022000>;
-               vin-supply = <&main_12v>;
-               pwms = <&pwm_ab 0 1250 0>;
-               pwm-dutycycle-range = <100 0>;
-               regulator-boot-on;
-               regulator-always-on;
-       };
-       vddcpu_b: regulator-vddcpu-b {
-               /*
-                * MP1652 Regulator.
-                */
-               compatible = "pwm-regulator";
-               regulator-name = "VDDCPU_B";
-               regulator-min-microvolt = <721000>;
-               regulator-max-microvolt = <1022000>;
-               vin-supply = <&main_12v>;
-               pwms = <&pwm_AO_cd 1 1250 0>;
-               pwm-dutycycle-range = <100 0>;
-               regulator-boot-on;
-               regulator-always-on;
-       };
-       usb1_pow: regulator-usb1-pow {
-               compatible = "regulator-fixed";
-               regulator-name = "USB1_POW";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               vin-supply = <&vcc_5v>;
-               /* connected to SY6280A Power Switch */
-               gpio = <&gpio GPIOA_8 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-       usb_pwr_en: regulator-usb-pwr-en {
-               compatible = "regulator-fixed";
-               regulator-name = "USB_PWR_EN";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               vin-supply = <&vcc_5v>;
-               /* Connected to USB3 Type-A Port power enable */
-               gpio = <&gpio GPIOAO_7 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-       vddao_1v8: regulator-vddao-1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "VDDAO_1V8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               vin-supply = <&vddao_3v3>;
-               regulator-always-on;
-       };
-       vddao_3v3: regulator-vddao-3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "VDDAO_3V3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               vin-supply = <&main_12v>;
-               regulator-always-on;
-       };
-       cvbs-connector {
-               compatible = "composite-video-connector";
-               port {
-                       cvbs_connector_in: endpoint {
-                               remote-endpoint = <&cvbs_vdac_out>;
-                       };
-               };
-       };
-       hdmi-connector {
-               compatible = "hdmi-connector";
-               type = "a";
-               port {
-                       hdmi_connector_in: endpoint {
-                               remote-endpoint = <&hdmi_tx_tmds_out>;
-                       };
-               };
-       };
        sound {
                compatible = "amlogic,axg-sound-card";
                model = "G12B-UGOOS-AM6";
                        };
                };
        };
-       wifi32k: wifi32k {
-               compatible = "pwm-clock";
-               #clock-cells = <0>;
-               clock-frequency = <32768>;
-               pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
-       };
  };
  
  &arb {
        status = "okay";
  };
  
- &cec_AO {
-       pinctrl-0 = <&cec_ao_a_h_pins>;
-       pinctrl-names = "default";
-       status = "disabled";
-       hdmi-phandle = <&hdmi_tx>;
- };
- &cecb_AO {
-       pinctrl-0 = <&cec_ao_b_h_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-       hdmi-phandle = <&hdmi_tx>;
- };
  &clkc_audio {
        status = "okay";
  };
  
- &cpu0 {
-       cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
-       clock-latency = <50000>;
- };
- &cpu1 {
-       cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
-       clock-latency = <50000>;
- };
- &cpu100 {
-       cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
-       clock-latency = <50000>;
- };
- &cpu101 {
-       cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
-       clock-latency = <50000>;
- };
- &cpu102 {
-       cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
-       clock-latency = <50000>;
- };
- &cpu103 {
-       cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
-       clock-latency = <50000>;
- };
- &cvbs_vdac_port {
-       cvbs_vdac_out: endpoint {
-               remote-endpoint = <&cvbs_connector_in>;
-       };
- };
- &ext_mdio {
-       external_phy: ethernet-phy@0 {
-               /* Realtek RTL8211F (0x001cc916) */
-               reg = <0>;
-               max-speed = <1000>;
-               reset-assert-us = <10000>;
-               reset-deassert-us = <30000>;
-               reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
-               interrupt-parent = <&gpio_intc>;
-               /* MAC_INTR on GPIOZ_14 */
-               interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
-       };
- };
- &ethmac {
-       pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-       phy-mode = "rgmii";
-       phy-handle = <&external_phy>;
-       amlogic,tx-delay-ns = <2>;
- };
  &frddr_a {
        status = "okay";
  };
        status = "okay";
  };
  
- &hdmi_tx {
-       status = "okay";
-       pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
-       pinctrl-names = "default";
-       hdmi-supply = <&vcc_5v>;
- };
- &hdmi_tx_tmds_port {
-       hdmi_tx_tmds_out: endpoint {
-               remote-endpoint = <&hdmi_connector_in>;
-       };
- };
  &ir {
-       status = "okay";
-       pinctrl-0 = <&remote_input_ao_pins>;
-       pinctrl-names = "default";
        linux,rc-map-name = "rc-khadas";
  };
  
- &pwm_ab {
-       pinctrl-0 = <&pwm_a_e_pins>;
-       pinctrl-names = "default";
-       clocks = <&xtal>;
-       clock-names = "clkin0";
-       status = "okay";
- };
- &pwm_AO_cd {
-       pinctrl-0 = <&pwm_ao_d_e_pins>;
-       pinctrl-names = "default";
-       clocks = <&xtal>;
-       clock-names = "clkin1";
-       status = "okay";
- };
- &pwm_ef {
-       pinctrl-0 = <&pwm_e_pins>;
-       pinctrl-names = "default";
-       clocks = <&xtal>;
-       clock-names = "clkin0";
-       status = "okay";
- };
- /* SDIO */
- &sd_emmc_a {
-       status = "okay";
-       pinctrl-0 = <&sdio_pins>;
-       pinctrl-1 = <&sdio_clk_gate_pins>;
-       pinctrl-names = "default", "clk-gate";
-       #address-cells = <1>;
-       #size-cells = <0>;
-       bus-width = <4>;
-       cap-sd-highspeed;
-       sd-uhs-sdr50;
-       max-frequency = <100000000>;
-       non-removable;
-       disable-wp;
-       mmc-pwrseq = <&sdio_pwrseq>;
-       vmmc-supply = <&vddao_3v3>;
-       vqmmc-supply = <&vddao_1v8>;
-       brcmf: wifi@1 {
-               reg = <1>;
-               compatible = "brcm,bcm4329-fmac";
-       };
- };
- /* SD card */
- &sd_emmc_b {
-       status = "okay";
-       pinctrl-0 = <&sdcard_c_pins>;
-       pinctrl-1 = <&sdcard_clk_gate_c_pins>;
-       pinctrl-names = "default", "clk-gate";
-       bus-width = <4>;
-       cap-sd-highspeed;
-       max-frequency = <50000000>;
-       disable-wp;
-       cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
-       vmmc-supply = <&vddao_3v3>;
-       vqmmc-supply = <&vddao_3v3>;
- };
- /* eMMC */
- &sd_emmc_c {
-       status = "okay";
-       pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
-       pinctrl-1 = <&emmc_clk_gate_pins>;
-       pinctrl-names = "default", "clk-gate";
-       bus-width = <8>;
-       cap-mmc-highspeed;
-       max-frequency = <100000000>;
-       disable-wp;
-       mmc-pwrseq = <&emmc_pwrseq>;
-       vmmc-supply = <&vcc_3v3>;
-       vqmmc-supply = <&flash_1v8>;
- };
  &spdifout {
        pinctrl-0 = <&spdif_out_h_pins>;
        pinctrl-names = "default";
  &usb {
        status = "okay";
        dr_mode = "host";
 -      vbus-regulator = <&usb_pwr_en>;
 +      vbus-supply = <&usb_pwr_en>;
  };
  
  &usb2_phy0 {
                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "dspi";
                        clocks = <&clockgen 4 1>;
+                       dmas = <&edma0 0 62>, <&edma0 0 60>;
+                       dma-names = "tx", "rx";
                        spi-num-chipselects = <4>;
                        little-endian;
                        status = "disabled";
                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "dspi";
                        clocks = <&clockgen 4 1>;
+                       dmas = <&edma0 0 58>, <&edma0 0 56>;
+                       dma-names = "tx", "rx";
                        spi-num-chipselects = <4>;
                        little-endian;
                        status = "disabled";
                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "dspi";
                        clocks = <&clockgen 4 1>;
+                       dmas = <&edma0 0 54>, <&edma0 0 2>;
+                       dma-names = "tx", "rx";
                        spi-num-chipselects = <3>;
                        little-endian;
                        status = "disabled";
  
                edma0: dma-controller@22c0000 {
                        #dma-cells = <2>;
 -                      compatible = "fsl,ls1028a-edma";
 +                      compatible = "fsl,ls1028a-edma", "fsl,vf610-edma";
                        reg = <0x0 0x22c0000 0x0 0x10000>,
                              <0x0 0x22d0000 0x0 0x10000>,
                              <0x0 0x22e0000 0x0 0x10000>;
  
                aips1: bus@30000000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x301f0000 0x10000>;
 +                      reg = <0x30000000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x30000000 0x30000000 0x400000>;
  
                        sai1: sai@30010000 {
+                               #sound-dai-cells = <0>;
                                compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
                                reg = <0x30010000 0x10000>;
                                interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
                        };
  
                        sai2: sai@30020000 {
+                               #sound-dai-cells = <0>;
                                compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
                                reg = <0x30020000 0x10000>;
                                interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
                        };
  
                        sai5: sai@30050000 {
+                               #sound-dai-cells = <0>;
                                compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
                                reg = <0x30050000 0x10000>;
                                interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
                        };
  
                        sai6: sai@30060000 {
+                               #sound-dai-cells = <0>;
                                compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
                                reg = <0x30060000 0x10000>;
                                interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
                                         <&clk_ext3>, <&clk_ext4>;
                                clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
                                              "clk_ext3", "clk_ext4";
-                               assigned-clocks = <&clk IMX8MM_CLK_NOC>,
+                               assigned-clocks = <&clk IMX8MM_CLK_A53_SRC>,
+                                               <&clk IMX8MM_CLK_A53_CORE>,
+                                               <&clk IMX8MM_CLK_NOC>,
                                                <&clk IMX8MM_CLK_AUDIO_AHB>,
                                                <&clk IMX8MM_CLK_IPG_AUDIO_ROOT>,
                                                <&clk IMX8MM_SYS_PLL3>,
                                                <&clk IMX8MM_VIDEO_PLL1>,
                                                <&clk IMX8MM_AUDIO_PLL1>,
                                                <&clk IMX8MM_AUDIO_PLL2>;
-                               assigned-clock-parents = <&clk IMX8MM_SYS_PLL3_OUT>,
+                               assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
+                                                        <&clk IMX8MM_ARM_PLL_OUT>,
+                                                        <&clk IMX8MM_SYS_PLL3_OUT>,
                                                         <&clk IMX8MM_SYS_PLL1_800M>;
-                               assigned-clock-rates = <0>,
+                               assigned-clock-rates = <0>, <0>, <0>,
                                                        <400000000>,
                                                        <400000000>,
                                                        <750000000>,
  
                aips2: bus@30400000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x305f0000 0x10000>;
 +                      reg = <0x30400000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x30400000 0x30400000 0x400000>;
  
                aips3: bus@30800000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x309f0000 0x10000>;
 +                      reg = <0x30800000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x30800000 0x30800000 0x400000>,
  
                aips4: bus@32c00000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x32df0000 0x10000>;
 +                      reg = <0x32c00000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x32c00000 0x32c00000 0x400000>;
  
                opp-1200000000 {
                        opp-hz = /bits/ 64 <1200000000>;
-                       opp-microvolt = <950000>;
+                       opp-microvolt = <850000>;
                        opp-supported-hw = <0xb00>, <0x7>;
                        clock-latency-ns = <150000>;
                        opp-suspend;
  
                aips1: bus@30000000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x301f0000 0x10000>;
 +                      reg = <0x30000000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
                                         <&clk_ext3>, <&clk_ext4>;
                                clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
                                              "clk_ext3", "clk_ext4";
-                               assigned-clocks = <&clk IMX8MN_CLK_NOC>,
+                               assigned-clocks = <&clk IMX8MN_CLK_A53_SRC>,
+                                               <&clk IMX8MN_CLK_A53_CORE>,
+                                               <&clk IMX8MN_CLK_NOC>,
                                                <&clk IMX8MN_CLK_AUDIO_AHB>,
                                                <&clk IMX8MN_CLK_IPG_AUDIO_ROOT>,
                                                <&clk IMX8MN_SYS_PLL3>;
-                               assigned-clock-parents = <&clk IMX8MN_SYS_PLL3_OUT>,
+                               assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_800M>,
+                                                        <&clk IMX8MN_ARM_PLL_OUT>,
+                                                        <&clk IMX8MN_SYS_PLL3_OUT>,
                                                         <&clk IMX8MN_SYS_PLL1_800M>;
-                               assigned-clock-rates = <0>,
+                               assigned-clock-rates = <0>, <0>, <0>,
                                                        <400000000>,
                                                        <400000000>,
                                                        <600000000>;
  
                aips2: bus@30400000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x305f0000 0x10000>;
 +                      reg = <0x30400000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
  
                aips3: bus@30800000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x309f0000 0x10000>;
 +                      reg = <0x30800000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
                                reg = <0x30bd0000 0x10000>;
                                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MN_CLK_SDMA1_ROOT>,
 -                                       <&clk IMX8MN_CLK_SDMA1_ROOT>;
 +                                       <&clk IMX8MN_CLK_AHB>;
                                clock-names = "ipg", "ahb";
                                #dma-cells = <3>;
                                fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
  
                aips4: bus@32c00000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x32df0000 0x10000>;
 +                      reg = <0x32c00000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
@@@ -7,6 -7,7 +7,7 @@@
  #include <dt-bindings/gpio/gpio.h>
  #include <dt-bindings/input/input.h>
  #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/thermal/thermal.h>
  
  #include "imx8mp-pinfunc.h"
  
@@@ -43,6 -44,7 +44,7 @@@
                        clocks = <&clk IMX8MP_CLK_ARM>;
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
+                       #cooling-cells = <2>;
                };
  
                A53_1: cpu@1 {
@@@ -53,6 -55,7 +55,7 @@@
                        clocks = <&clk IMX8MP_CLK_ARM>;
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
+                       #cooling-cells = <2>;
                };
  
                A53_2: cpu@2 {
@@@ -63,6 -66,7 +66,7 @@@
                        clocks = <&clk IMX8MP_CLK_ARM>;
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
+                       #cooling-cells = <2>;
                };
  
                A53_3: cpu@3 {
@@@ -73,6 -77,7 +77,7 @@@
                        clocks = <&clk IMX8MP_CLK_ARM>;
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
+                       #cooling-cells = <2>;
                };
  
                A53_L2: l2-cache0 {
                method = "smc";
        };
  
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <2000>;
+                       thermal-sensors = <&tmu 0>;
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit0: trip1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       cooling-device =
+                                               <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+               soc-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <2000>;
+                       thermal-sensors = <&tmu 1>;
+                       trips {
+                               soc_alert0: trip0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               soc_crit0: trip1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+                       cooling-maps {
+                               map0 {
+                                       trip = <&soc_alert0>;
+                                       cooling-device =
+                                               <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
  
                aips1: bus@30000000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x301f0000 0x10000>;
 +                      reg = <0x30000000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
                                gpio-ranges = <&iomuxc 0 114 30>;
                        };
  
+                       tmu: tmu@30260000 {
+                               compatible = "fsl,imx8mp-tmu";
+                               reg = <0x30260000 0x10000>;
+                               clocks = <&clk IMX8MP_CLK_TSENSOR_ROOT>;
+                               #thermal-sensor-cells = <1>;
+                       };
                        wdog1: watchdog@30280000 {
                                compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt";
                                reg = <0x30280000 0x10000>;
                                         <&clk_ext3>, <&clk_ext4>;
                                clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
                                              "clk_ext3", "clk_ext4";
-                               assigned-clocks = <&clk IMX8MP_CLK_NOC>,
+                               assigned-clocks = <&clk IMX8MP_CLK_A53_SRC>,
+                                                 <&clk IMX8MP_CLK_A53_CORE>,
+                                                 <&clk IMX8MP_CLK_NOC>,
                                                  <&clk IMX8MP_CLK_NOC_IO>,
                                                  <&clk IMX8MP_CLK_GIC>,
                                                  <&clk IMX8MP_CLK_AUDIO_AHB>,
                                                  <&clk IMX8MP_CLK_IPG_AUDIO_ROOT>,
                                                  <&clk IMX8MP_AUDIO_PLL1>,
                                                  <&clk IMX8MP_AUDIO_PLL2>;
-                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
+                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
+                                                        <&clk IMX8MP_ARM_PLL_OUT>,
+                                                        <&clk IMX8MP_SYS_PLL2_1000M>,
                                                         <&clk IMX8MP_SYS_PLL1_800M>,
                                                         <&clk IMX8MP_SYS_PLL2_500M>,
                                                         <&clk IMX8MP_SYS_PLL1_800M>,
                                                         <&clk IMX8MP_SYS_PLL1_800M>;
-                               assigned-clock-rates = <1000000000>,
+                               assigned-clock-rates = <0>, <0>,
+                                                      <1000000000>,
                                                       <800000000>,
                                                       <500000000>,
                                                       <400000000>,
                        src: reset-controller@30390000 {
                                compatible = "fsl,imx8mp-src", "syscon";
                                reg = <0x30390000 0x10000>;
+                               interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                                #reset-cells = <1>;
                        };
                };
  
                aips2: bus@30400000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x305f0000 0x400000>;
 +                      reg = <0x30400000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
  
                aips3: bus@30800000 {
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x309f0000 0x400000>;
 +                      reg = <0x30800000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
                        };
  
                        fec: ethernet@30be0000 {
-                               compatible = "fsl,imx8mp-fec", "fsl,imx8mq-fec";
+                               compatible = "fsl,imx8mp-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec";
                                reg = <0x30be0000 0x10000>;
                                interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
  
                bus@30000000 { /* AIPS1 */
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x301f0000 0x10000>;
 +                      reg = <0x30000000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x30000000 0x30000000 0x400000>;
                                clock-names = "ckil", "osc_25m", "osc_27m",
                                              "clk_ext1", "clk_ext2",
                                              "clk_ext3", "clk_ext4";
-                               assigned-clocks = <&clk IMX8MQ_CLK_NOC>;
-                               assigned-clock-rates = <800000000>;
+                               assigned-clocks = <&clk IMX8MQ_CLK_A53_SRC>,
+                                                 <&clk IMX8MQ_CLK_A53_CORE>,
+                                                 <&clk IMX8MQ_CLK_NOC>;
+                               assigned-clock-rates = <0>, <0>,
+                                                      <800000000>;
+                               assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>,
+                                                        <&clk IMX8MQ_ARM_PLL_OUT>;
                        };
  
                        src: reset-controller@30390000 {
                                compatible = "fsl,imx8mq-src", "syscon";
                                reg = <0x30390000 0x10000>;
+                               interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                                #reset-cells = <1>;
                        };
  
  
                bus@30400000 { /* AIPS2 */
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x305f0000 0x10000>;
 +                      reg = <0x30400000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x30400000 0x30400000 0x400000>;
  
                bus@30800000 { /* AIPS3 */
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x309f0000 0x10000>;
 +                      reg = <0x30800000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x30800000 0x30800000 0x400000>,
  
                bus@32c00000 { /* AIPS4 */
                        compatible = "fsl,aips-bus", "simple-bus";
 -                      reg = <0x32df0000 0x10000>;
 +                      reg = <0x32c00000 0x400000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x32c00000 0x32c00000 0x400000>;
@@@ -19,6 -19,7 +19,7 @@@
  #include <dt-bindings/power/mt8173-power.h>
  #include <dt-bindings/reset/mt8173-resets.h>
  #include <dt-bindings/gce/mt8173-gce.h>
+ #include <dt-bindings/thermal/thermal.h>
  #include "mt8173-pinfunc.h"
  
  / {
                dpi0 = &dpi0;
                dsi0 = &dsi0;
                dsi1 = &dsi1;
-               mdp_rdma0 = &mdp_rdma0;
-               mdp_rdma1 = &mdp_rdma1;
-               mdp_rsz0 = &mdp_rsz0;
-               mdp_rsz1 = &mdp_rsz1;
-               mdp_rsz2 = &mdp_rsz2;
-               mdp_wdma0 = &mdp_wdma0;
-               mdp_wrot0 = &mdp_wrot0;
-               mdp_wrot1 = &mdp_wrot1;
+               mdp-rdma0 = &mdp_rdma0;
+               mdp-rdma1 = &mdp_rdma1;
+               mdp-rsz0 = &mdp_rsz0;
+               mdp-rsz1 = &mdp_rsz1;
+               mdp-rsz2 = &mdp_rsz2;
+               mdp-wdma0 = &mdp_wdma0;
+               mdp-wrot0 = &mdp_wrot0;
+               mdp-wrot1 = &mdp_wrot1;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
        };
  
        cluster0_opp: opp_table0 {
                                 <&apmixedsys CLK_APMIXED_MAINPLL>;
                        clock-names = "cpu", "intermediate";
                        operating-points-v2 = <&cluster0_opp>;
+                       capacity-dmips-mhz = <526>;
                };
  
                cpu1: cpu@1 {
                                 <&apmixedsys CLK_APMIXED_MAINPLL>;
                        clock-names = "cpu", "intermediate";
                        operating-points-v2 = <&cluster0_opp>;
+                       capacity-dmips-mhz = <526>;
                };
  
                cpu2: cpu@100 {
                                 <&apmixedsys CLK_APMIXED_MAINPLL>;
                        clock-names = "cpu", "intermediate";
                        operating-points-v2 = <&cluster1_opp>;
+                       capacity-dmips-mhz = <1024>;
                };
  
                cpu3: cpu@101 {
                                 <&apmixedsys CLK_APMIXED_MAINPLL>;
                        clock-names = "cpu", "intermediate";
                        operating-points-v2 = <&cluster1_opp>;
+                       capacity-dmips-mhz = <1024>;
                };
  
                idle-states {
                cpu_on        = <0x84000003>;
        };
  
-       clk26m: oscillator@0 {
+       clk26m: oscillator0 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <26000000>;
                clock-output-names = "clk26m";
        };
  
-       clk32k: oscillator@1 {
+       clk32k: oscillator1 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32000>;
                clock-output-names = "clk32k";
        };
  
-       cpum_ck: oscillator@2 {
+       cpum_ck: oscillator2 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <0>;
                        sustainable-power = <1500>; /* milliwatts */
  
                        trips {
-                               threshold: trip-point@0 {
+                               threshold: trip-point0 {
                                        temperature = <68000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
  
-                               target: trip-point@1 {
+                               target: trip-point1 {
                                        temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
  
-                               cpu_crit: cpu_crit@0 {
+                               cpu_crit: cpu_crit0 {
                                        temperature = <115000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                        };
  
                        cooling-maps {
-                               map@0 {
+                               map0 {
                                        trip = <&target>;
-                                       cooling-device = <&cpu0 0 0>,
-                                                        <&cpu1 0 0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT
+                                                         THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT
+                                                         THERMAL_NO_LIMIT>;
                                        contribution = <3072>;
                                };
-                               map@1 {
+                               map1 {
                                        trip = <&target>;
-                                       cooling-device = <&cpu2 0 0>,
-                                                        <&cpu3 0 0>;
+                                       cooling-device = <&cpu2 THERMAL_NO_LIMIT
+                                                         THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT
+                                                         THERMAL_NO_LIMIT>;
                                        contribution = <1024>;
                                };
                        };
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
-               vpu_dma_reserved: vpu_dma_mem_region {
+               vpu_dma_reserved: vpu_dma_mem_region@b7000000 {
                        compatible = "shared-dma-pool";
                        reg = <0 0xb7000000 0 0x500000>;
                        alignment = <0x1000>;
                        reg = <0 0x10005000 0 0x1000>;
                };
  
-               pio: pinctrl@10005000 {
+               pio: pinctrl@1000b000 {
                        compatible = "mediatek,mt8173-pinctrl";
                        reg = <0 0x1000b000 0 0x1000>;
                        mediatek,pctl-regmap = <&syscfg_pctl_a>;
                        interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
                        clocks = <&infracfg CLK_INFRA_GCE>;
                        clock-names = "gce";
-                       #mbox-cells = <3>;
+                       #mbox-cells = <2>;
                };
  
                mipi_tx0: mipi-dphy@10215000 {
                        status = "disabled";
                };
  
-               gic: interrupt-controller@10220000 {
+               gic: interrupt-controller@10221000 {
                        compatible = "arm,gic-400";
                        #interrupt-cells = <3>;
                        interrupt-parent = <&gic>;
                        };
                };
  
-               mmsys: clock-controller@14000000 {
+               mmsys: syscon@14000000 {
                        compatible = "mediatek,mt8173-mmsys", "syscon";
                        reg = <0 0x14000000 0 0x1000>;
                        power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
                        assigned-clocks = <&topckgen CLK_TOP_MM_SEL>;
                        assigned-clock-rates = <400000000>;
                        #clock-cells = <1>;
+                       mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>,
+                                <&gce 1 CMDQ_THR_PRIO_HIGHEST>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
                };
  
                mdp_rdma0: rdma@14001000 {
                        clocks = <&mmsys CLK_MM_DISP_OVL0>;
                        iommus = <&iommu M4U_PORT_DISP_OVL0>;
                        mediatek,larb = <&larb0>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>;
                };
  
                ovl1: ovl@1400d000 {
                        clocks = <&mmsys CLK_MM_DISP_OVL1>;
                        iommus = <&iommu M4U_PORT_DISP_OVL1>;
                        mediatek,larb = <&larb4>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xd000 0x1000>;
                };
  
                rdma0: rdma@1400e000 {
                        clocks = <&mmsys CLK_MM_DISP_RDMA0>;
                        iommus = <&iommu M4U_PORT_DISP_RDMA0>;
                        mediatek,larb = <&larb0>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>;
                };
  
                rdma1: rdma@1400f000 {
                        clocks = <&mmsys CLK_MM_DISP_RDMA1>;
                        iommus = <&iommu M4U_PORT_DISP_RDMA1>;
                        mediatek,larb = <&larb4>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>;
                };
  
                rdma2: rdma@14010000 {
                        clocks = <&mmsys CLK_MM_DISP_RDMA2>;
                        iommus = <&iommu M4U_PORT_DISP_RDMA2>;
                        mediatek,larb = <&larb4>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0 0x1000>;
                };
  
                wdma0: wdma@14011000 {
                        clocks = <&mmsys CLK_MM_DISP_WDMA0>;
                        iommus = <&iommu M4U_PORT_DISP_WDMA0>;
                        mediatek,larb = <&larb0>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>;
                };
  
                wdma1: wdma@14012000 {
                        clocks = <&mmsys CLK_MM_DISP_WDMA1>;
                        iommus = <&iommu M4U_PORT_DISP_WDMA1>;
                        mediatek,larb = <&larb4>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>;
                };
  
                color0: color@14013000 {
                        interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_LOW>;
                        power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_COLOR0>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x3000 0x1000>;
                };
  
                color1: color@14014000 {
                        interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_LOW>;
                        power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_COLOR1>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x4000 0x1000>;
                };
  
                aal@14015000 {
                        interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>;
                        power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_AAL>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x5000 0x1000>;
                };
  
                gamma@14016000 {
                        interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>;
                        power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_GAMMA>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x6000 0x1000>;
                };
  
                merge@14017000 {
                        interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>;
                        power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_MUTEX_32K>;
+                       mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>,
+                                               <CMDQ_EVENT_MUTEX1_STREAM_EOF>;
                };
  
                larb0: larb@14021000 {
                                      "venc_lt_sel";
                        assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>,
                                          <&topckgen CLK_TOP_VENC_LT_SEL>;
 -                      assigned-clock-parents = <&topckgen CLK_TOP_VENCPLL_D2>,
 -                                               <&topckgen CLK_TOP_UNIVPLL1_D2>;
 +                      assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL>,
 +                                               <&topckgen CLK_TOP_VCODECPLL_370P5>;
                };
  
                jpegdec: jpegdec@18004000 {
                };
        };
  };
                regulator-max-microvolt = <3700000>;
        };
  
-       vreg_s8a_l3a_input: vreg-s8a-l3a-input {
-               compatible = "regulator-fixed";
-               regulator-name = "vreg_s8a_l3a_input";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <0>;
-               regulator-max-microvolt = <0>;
-       };
        wlan_en: wlan-en-1-8v {
                pinctrl-names = "default";
                pinctrl-0 = <&wlan_en_gpios>;
        status = "okay";
  };
  
+ &mmcc {
+       vdd-gfx-supply = <&vdd_gfx>;
+ };
  &msmgpio {
        gpio-line-names =
                "[SPI0_DOUT]", /* GPIO_0, BLSP1_SPI_MOSI, LSEC pin 14 */
        s11 {
                qcom,saw-leader;
                regulator-always-on;
 -              regulator-min-microvolt = <1230000>;
 -              regulator-max-microvolt = <1230000>;
 +              regulator-min-microvolt = <980000>;
 +              regulator-max-microvolt = <980000>;
        };
  };
  
        };
  };
  
+ &pmi8994_spmi_regulators {
+       vdd_gfx: s2@1700 {
+               reg = <0x1700 0x100>;
+               regulator-name = "VDD_GFX";
+               regulator-min-microvolt = <980000>;
+               regulator-max-microvolt = <980000>;
+       };
+ };
  &rpm_requests {
        pm8994-regulators {
                compatible = "qcom,rpm-pm8994-regulators";
                vdd_s10-supply = <&vph_pwr>;
                vdd_s11-supply = <&vph_pwr>;
                vdd_s12-supply = <&vph_pwr>;
+               vdd_l1-supply = <&vreg_s1b_1p025>;
                vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
-               vdd_l3_l11-supply = <&vreg_s8a_l3a_input>;
+               vdd_l3_l11-supply = <&vreg_s3a_1p3>;
                vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
                vdd_l5_l7-supply = <&vreg_s5a_2p15>;
                vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
                vdd_l8_l16_l30-supply = <&vph_pwr>;
+               vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>;
+               vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>;
                vdd_l14_l15-supply = <&vreg_s5a_2p15>;
+               vdd_l17_l29-supply = <&vph_pwr_bbyp>;
+               vdd_l20_l21-supply = <&vph_pwr_bbyp>;
                vdd_l25-supply = <&vreg_s3a_1p3>;
-               vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
+               vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;
  
                vreg_s3a_1p3: s3 {
                        regulator-name = "vreg_s3a_1p3";
                        regulator-name = "vreg_lvs2a_1p8";
                };
        };
+       pmi8994-regulators {
+               compatible = "qcom,rpm-pmi8994-regulators";
+               vdd_s1-supply = <&vph_pwr>;
+               vdd_s2-supply = <&vph_pwr>;
+               vdd_s3-supply = <&vph_pwr>;
+               vdd_bst_byp-supply = <&vph_pwr>;
+               vph_pwr_bbyp: boost-bypass {
+                       regulator-name = "vph_pwr_bbyp";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+               vreg_s1b_1p025: s1 {
+                       regulator-name = "vreg_s1b_1p025";
+                       regulator-min-microvolt = <1025000>;
+                       regulator-max-microvolt = <1025000>;
+               };
+       };
  };
  
  &sdhc2 {
        status = "okay";
  };
  
 +&q6asmdai {
 +      dai@0 {
 +              reg = <0>;
 +      };
 +
 +      dai@1 {
 +              reg = <1>;
 +      };
 +
 +      dai@2 {
 +              reg = <2>;
 +      };
 +};
 +
  &sound {
        compatible = "qcom,apq8096-sndcard";
        model = "DB820c";
 -      audio-routing = "RX_BIAS", "MCLK";
 +      audio-routing = "RX_BIAS", "MCLK",
 +              "MM_DL1",  "MultiMedia1 Playback",
 +              "MM_DL2",  "MultiMedia2 Playback",
 +              "MultiMedia3 Capture", "MM_UL3";
  
        mm1-dai-link {
                link-name = "MultiMedia1";
                                "mem",
                                "mem_iface";
  
-                       power-domains = <&mmcc GPU_GDSC>;
+                       power-domains = <&mmcc GPU_GX_GDSC>;
                        iommus = <&adreno_smmu 0>;
  
                        nvmem-cells = <&gpu_speed_bin>;
                                "csi_clk_mux",
                                "vfe0",
                                "vfe1";
-                       interrupts = <GIC_SPI 78 0>,
-                               <GIC_SPI 79 0>,
-                               <GIC_SPI 80 0>,
-                               <GIC_SPI 296 0>,
-                               <GIC_SPI 297 0>,
-                               <GIC_SPI 298 0>,
-                               <GIC_SPI 299 0>,
-                               <GIC_SPI 309 0>,
-                               <GIC_SPI 314 0>,
-                               <GIC_SPI 315 0>;
+                       interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 297 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 298 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 299 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 309 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 314 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 315 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "csiphy0",
                                "csiphy1",
                                "csiphy2",
                        };
                };
  
+               cci: cci@a0c000 {
+                       compatible = "qcom,msm8996-cci";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xa0c000 0x1000>;
+                       interrupts = <GIC_SPI 295 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&mmcc CAMSS_GDSC>;
+                       clocks = <&mmcc CAMSS_TOP_AHB_CLK>,
+                                <&mmcc CAMSS_CCI_AHB_CLK>,
+                                <&mmcc CAMSS_CCI_CLK>,
+                                <&mmcc CAMSS_AHB_CLK>;
+                       clock-names = "camss_top_ahb",
+                                     "cci_ahb",
+                                     "cci",
+                                     "camss_ahb";
+                       assigned-clocks = <&mmcc CAMSS_CCI_AHB_CLK>,
+                                         <&mmcc CAMSS_CCI_CLK>;
+                       assigned-clock-rates = <80000000>, <37500000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&cci0_default &cci1_default>;
+                       status = "disabled";
+                       cci_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <400000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+                       cci_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <400000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
                adreno_smmu: iommu@b40000 {
                        compatible = "qcom,msm8996-smmu-v2", "qcom,smmu-v2";
                        reg = <0x00b40000 0x10000>;
                                                reg = <APR_SVC_ASM>;
                                                q6asmdai: dais {
                                                        compatible = "qcom,q6asm-dais";
 +                                                      #address-cells = <1>;
 +                                                      #size-cells = <0>;
                                                        #sound-dai-cells = <1>;
                                                        iommus = <&lpass_q6_smmu 1>;
                                                };
                        thermal-sensors = <&tsens0 3>;
  
                        trips {
-                               cpu0_alert0: trip-point@0 {
+                               cpu0_alert0: trip-point0 {
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                        thermal-sensors = <&tsens0 5>;
  
                        trips {
-                               cpu1_alert0: trip-point@0 {
+                               cpu1_alert0: trip-point0 {
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                        thermal-sensors = <&tsens0 8>;
  
                        trips {
-                               cpu2_alert0: trip-point@0 {
+                               cpu2_alert0: trip-point0 {
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                        thermal-sensors = <&tsens0 10>;
  
                        trips {
-                               cpu3_alert0: trip-point@0 {
+                               cpu3_alert0: trip-point0 {
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                        thermal-sensors = <&tsens1 6>;
  
                        trips {
-                               gpu1_alert0: trip-point@0 {
+                               gpu1_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens1 7>;
  
                        trips {
-                               gpu2_alert0: trip-point@0 {
+                               gpu2_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens0 1>;
  
                        trips {
-                               m4m_alert0: trip-point@0 {
+                               m4m_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens0 2>;
  
                        trips {
-                               l3_or_venus_alert0: trip-point@0 {
+                               l3_or_venus_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens0 7>;
  
                        trips {
-                               cluster0_l2_alert0: trip-point@0 {
+                               cluster0_l2_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens0 12>;
  
                        trips {
-                               cluster1_l2_alert0: trip-point@0 {
+                               cluster1_l2_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens1 1>;
  
                        trips {
-                               camera_alert0: trip-point@0 {
+                               camera_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens1 2>;
  
                        trips {
-                               q6_dsp_alert0: trip-point@0 {
+                               q6_dsp_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens1 3>;
  
                        trips {
-                               mem_alert0: trip-point@0 {
+                               mem_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                        thermal-sensors = <&tsens1 4>;
  
                        trips {
-                               modemtx_alert0: trip-point@0 {
+                               modemtx_alert0: trip-point0 {
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                // enable-active-high;
        };
  
+       cam0_dvdd_1v2: reg_cam0_dvdd_1v2 {
+               compatible = "regulator-fixed";
+               regulator-name = "CAM0_DVDD_1V2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               enable-active-high;
+               gpio = <&pm8998_gpio 12 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&cam0_dvdd_1v2_en_default>;
+               vin-supply = <&vbat>;
+       };
+       cam0_avdd_2v8: reg_cam0_avdd_2v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "CAM0_AVDD_2V8";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               enable-active-high;
+               gpio = <&pm8998_gpio 10 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&cam0_avdd_2v8_en_default>;
+               vin-supply = <&vbat>;
+       };
+       /* This regulator is enabled when the VREG_LVS1A_1P8 trace is enabled */
+       cam3_avdd_2v8: reg_cam3_avdd_2v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "CAM3_AVDD_2V8";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               regulator-always-on;
+               vin-supply = <&vbat>;
+       };
        pcie0_3p3v_dual: vldo-3v3-regulator {
                compatible = "regulator-fixed";
                regulator-name = "VLDO_3V3";
  };
  
  &pm8998_gpio {
+       gpio-line-names =
+               "NC",
+               "NC",
+               "WLAN_SW_CTRL",
+               "NC",
+               "PM_GPIO5_BLUE_BT_LED",
+               "VOL_UP_N",
+               "NC",
+               "ADC_IN1",
+               "PM_GPIO9_YEL_WIFI_LED",
+               "CAM0_AVDD_EN",
+               "NC",
+               "CAM0_DVDD_EN",
+               "PM_GPIO13_GREEN_U4_LED",
+               "DIV_CLK2",
+               "NC",
+               "NC",
+               "NC",
+               "SMB_STAT",
+               "NC",
+               "NC",
+               "ADC_IN2",
+               "OPTION1",
+               "WCSS_PWR_REQ",
+               "PM845_GPIO24",
+               "OPTION2",
+               "PM845_SLB";
+       cam0_dvdd_1v2_en_default: cam0-dvdd-1v2-en {
+               pins = "gpio12";
+               function = "normal";
+               bias-pull-up;
+               drive-push-pull;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
+       cam0_avdd_2v8_en_default: cam0-avdd-2v8-en {
+               pins = "gpio10";
+               function = "normal";
+               bias-pull-up;
+               drive-push-pull;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
        vol_up_pin_a: vol-up-active {
                pins = "gpio6";
                function = "normal";
  &q6asmdai {
        dai@0 {
                reg = <0>;
 -              direction = <2>;
        };
  
        dai@1 {
                reg = <1>;
 -              direction = <2>;
        };
  
        dai@2 {
                reg = <2>;
 -              direction = <1>;
        };
  
        dai@3 {
  };
  
  &tlmm {
+       cam0_default: cam0_default {
+               rst {
+                       pins = "gpio9";
+                       function = "gpio";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+               mclk0 {
+                       pins = "gpio13";
+                       function = "cam_mclk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+       };
+       cam3_default: cam3_default {
+               rst {
+                       function = "gpio";
+                       pins = "gpio21";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+               mclk3 {
+                       function = "cam_mclk";
+                       pins = "gpio16";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+       };
        pcie0_default_state: pcie0-default {
                clkreq {
                        pins = "gpio36";
                bias-pull-up;
        };
  };
+ &pm8998_gpio {
+ };
+ &cci {
+       status = "ok";
+ };
+ &cci_i2c0 {
+       camera@10 {
+               compatible = "ovti,ov8856";
+               reg = <0x10>;
+               // CAM0_RST_N
+               reset-gpios = <&tlmm 9 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&cam0_default>;
+               gpios = <&tlmm 13 0>,
+                       <&tlmm 9 0>;
+               clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
+               clock-names = "xvclk";
+               clock-frequency = <19200000>;
+               /* The &vreg_s4a_1p8 trace is powered on as a,
+                * so it is represented by a fixed regulator.
+                *
+                * The 2.8V vdda-supply and 1.2V vddd-supply regulators
+                * both have to be enabled through the power management
+                * gpios.
+                */
+               power-domains = <&clock_camcc TITAN_TOP_GDSC>;
+               dovdd-supply = <&vreg_lvs1a_1p8>;
+               avdd-supply = <&cam0_avdd_2v8>;
+               dvdd-supply = <&cam0_dvdd_1v2>;
+               status = "disable";
+               port {
+                       ov8856_ep: endpoint {
+                               clock-lanes = <1>;
+                               link-frequencies = /bits/ 64
+                                       <360000000 180000000>;
+                               data-lanes = <1 2 3 4>;
+ //                            remote-endpoint = <&csiphy0_ep>;
+                       };
+               };
+       };
+ };
+ &cci_i2c1 {
+       camera@60 {
+               compatible = "ovti,ov7251";
+               // I2C address as per ov7251.txt linux documentation
+               reg = <0x60>;
+               // CAM3_RST_N
+               enable-gpios = <&tlmm 21 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&cam3_default>;
+               gpios = <&tlmm 16 0>,
+                       <&tlmm 21 0>;
+               clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
+               clock-names = "xclk";
+               clock-frequency = <24000000>;
+               /* The &vreg_s4a_1p8 trace always powered on.
+                *
+                * The 2.8V vdda-supply regulator is enabled when the
+                * vreg_s4a_1p8 trace is pulled high.
+                * It too is represented by a fixed regulator.
+                *
+                * No 1.2V vddd-supply regulator is used.
+                */
+               power-domains = <&clock_camcc TITAN_TOP_GDSC>;
+               vdddo-supply = <&vreg_lvs1a_1p8>;
+               vdda-supply = <&cam3_avdd_2v8>;
+               status = "disable";
+               port {
+                       ov7251_ep: endpoint {
+                               clock-lanes = <1>;
+                               data-lanes = <0 1>;
+ //                            remote-endpoint = <&csiphy3_ep>;
+                       };
+               };
+       };
+ };
  &q6asmdai {
        dai@0 {
                reg = <0>;
 -              direction = <2>;
        };
  
        dai@1 {
                reg = <1>;
 -              direction = <1>;
        };
  };
  
  &ufs_mem_hc {
        status = "okay";
  
+       reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
        vcc-supply = <&vreg_l20a_2p95>;
        vcc-max-microamp = <600000>;
  };
                };
        };
  };
+ &wifi {
+       status = "okay";
+       vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
+       vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
+       vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
+       vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
+       qcom,snoc-host-cap-8bit-quirk;
+ };
                        status = "disabled";
                };
  
-               ipmmu_ds1: mmu@e7740000 {
+               ipmmu_ds1: iommu@e7740000 {
                        compatible = "renesas,ipmmu-r8a77980";
                        reg = <0 0xe7740000 0 0x1000>;
                        renesas,ipmmu-main = <&ipmmu_mm 0>;
                        #iommu-cells = <1>;
                };
  
-               ipmmu_ir: mmu@ff8b0000 {
+               ipmmu_ir: iommu@ff8b0000 {
                        compatible = "renesas,ipmmu-r8a77980";
                        reg = <0 0xff8b0000 0 0x1000>;
                        renesas,ipmmu-main = <&ipmmu_mm 3>;
                        #iommu-cells = <1>;
                };
  
-               ipmmu_mm: mmu@e67b0000 {
+               ipmmu_mm: iommu@e67b0000 {
                        compatible = "renesas,ipmmu-r8a77980";
                        reg = <0 0xe67b0000 0 0x1000>;
                        interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
                        #iommu-cells = <1>;
                };
  
-               ipmmu_rt: mmu@ffc80000 {
+               ipmmu_rt: iommu@ffc80000 {
                        compatible = "renesas,ipmmu-r8a77980";
                        reg = <0 0xffc80000 0 0x1000>;
                        renesas,ipmmu-main = <&ipmmu_mm 10>;
                        #iommu-cells = <1>;
                };
  
-               ipmmu_vc0: mmu@fe990000 {
+               ipmmu_vc0: iommu@fe990000 {
                        compatible = "renesas,ipmmu-r8a77980";
                        reg = <0 0xfe990000 0 0x1000>;
                        renesas,ipmmu-main = <&ipmmu_mm 12>;
                        #iommu-cells = <1>;
                };
  
-               ipmmu_vi0: mmu@febd0000 {
+               ipmmu_vi0: iommu@febd0000 {
                        compatible = "renesas,ipmmu-r8a77980";
                        reg = <0 0xfebd0000 0 0x1000>;
                        renesas,ipmmu-main = <&ipmmu_mm 14>;
                        #iommu-cells = <1>;
                };
  
-               ipmmu_vip0: mmu@e7b00000 {
+               ipmmu_vip0: iommu@e7b00000 {
                        compatible = "renesas,ipmmu-r8a77980";
                        reg = <0 0xe7b00000 0 0x1000>;
 +                      renesas,ipmmu-main = <&ipmmu_mm 4>;
                        power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
                        #iommu-cells = <1>;
                };
  
-               ipmmu_vip1: mmu@e7960000 {
+               ipmmu_vip1: iommu@e7960000 {
                        compatible = "renesas,ipmmu-r8a77980";
                        reg = <0 0xe7960000 0 0x1000>;
 +                      renesas,ipmmu-main = <&ipmmu_mm 11>;
                        power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
                        #iommu-cells = <1>;
                };
        };
  
        arm-pmu {
 -              compatible = "arm,cortex-a53-pmu";
 +              compatible = "arm,cortex-a35-pmu";
                interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
                clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
                         <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               bus-width = <4>;
                fifo-depth = <0x100>;
                max-frequency = <150000000>;
                pinctrl-names = "default";
                clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
                         <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               bus-width = <4>;
                fifo-depth = <0x100>;
                max-frequency = <150000000>;
                pinctrl-names = "default";
                clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
                         <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               bus-width = <8>;
                fifo-depth = <0x100>;
                max-frequency = <150000000>;
                pinctrl-names = "default";
        leds {
                compatible = "gpio-leds";
  
-               power {
+               power_led: led-0 {
                        gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "mmc0";
                };
  
-               standby {
+               standby_led: led-1 {
                        gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
  &i2c1 {
        status = "okay";
  
 -      rk805: rk805@18 {
 +      rk805: pmic@18 {
                compatible = "rockchip,rk805";
                reg = <0x18>;
                interrupt-parent = <&gpio2>;
        grf: syscon@ff100000 {
                compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
                reg = <0x0 0xff100000 0x0 0x1000>;
 -              #address-cells = <1>;
 -              #size-cells = <1>;
  
                io_domains: io-domains {
                        compatible = "rockchip,rk3328-io-voltage-domain";
                        #address-cells = <1>;
                        #size-cells = <0>;
  
-                       phy: phy@0 {
+                       phy: ethernet-phy@0 {
                                compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
                                reg = <0>;
                                clocks = <&cru SCLK_MAC2PHY_OUT>;
                };
  
                gmac2phy {
 -                      fephyled_speed100: fephyled-speed100 {
 -                              rockchip,pins = <0 RK_PD7 1 &pcfg_pull_none>;
 -                      };
 -
                        fephyled_speed10: fephyled-speed10 {
                                rockchip,pins = <0 RK_PD6 1 &pcfg_pull_none>;
                        };
                                rockchip,pins = <0 RK_PD6 2 &pcfg_pull_none>;
                        };
  
 -                      fephyled_rxm0: fephyled-rxm0 {
 -                              rockchip,pins = <0 RK_PD5 1 &pcfg_pull_none>;
 -                      };
 -
 -                      fephyled_txm0: fephyled-txm0 {
 -                              rockchip,pins = <0 RK_PD5 2 &pcfg_pull_none>;
 -                      };
 -
 -                      fephyled_linkm0: fephyled-linkm0 {
 -                              rockchip,pins = <0 RK_PD4 1 &pcfg_pull_none>;
 -                      };
 -
                        fephyled_rxm1: fephyled-rxm1 {
                                rockchip,pins = <2 RK_PD1 2 &pcfg_pull_none>;
                        };
@@@ -90,9 -90,9 +90,9 @@@
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
-               pinctrl-0 = <&pwrled_gpio &slpled_gpio>;
+               pinctrl-0 = <&pwr_led_pin &slp_led_pin>;
  
-               green-led {
+               green_led: led-0 {
                        color = <LED_COLOR_ID_GREEN>;
                        default-state = "on";
                        function = LED_FUNCTION_POWER;
                        label = "green:power";
                };
  
-               red-led {
+               red_led: led-1 {
                        color = <LED_COLOR_ID_RED>;
                        default-state = "off";
                        function = LED_FUNCTION_STANDBY;
                        "Speaker", "Speaker Amplifier OUTL",
                        "Speaker", "Speaker Amplifier OUTR";
  
 -              simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>;
 +              simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
                simple-audio-card,aux-devs = <&speaker_amp>;
                simple-audio-card,pin-switches = "Speaker";
  
        fusb0: fusb30x@22 {
                compatible = "fcs,fusb302";
                reg = <0x22>;
 -              fcs,int_n = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
 +              interrupt-parent = <&gpio1>;
 +              interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&fusb0_int_gpio>;
                vbus-supply = <&vbus_typec>;
  };
  
  &i2s1 {
-       #sound-dai-cells = <0>;
        pinctrl-names = "default";
        pinctrl-0 = <&i2s_8ch_mclk_gpio>, <&i2s1_2ch_bus>;
        rockchip,capture-channels = <8>;
  
        dc-charger {
                dc_det_gpio: dc-det-gpio {
 -                      rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
 +                      rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
  
        es8316 {
                hp_det_gpio: hp-det-gpio {
 -                      rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
 +                      rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
  
        };
  
        leds {
-               pwrled_gpio: pwrled_gpio {
+               pwr_led_pin: pwr-led-pin {
                        rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
                };
  
-               slpled_gpio: slpled_gpio {
+               slp_led_pin: slp-led-pin {
                        rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
                reset-names = "usb3-otg";
                status = "disabled";
  
 -              usbdrd_dwc3_0: dwc3 {
 +              usbdrd_dwc3_0: usb@fe800000 {
                        compatible = "snps,dwc3";
                        reg = <0x0 0xfe800000 0x0 0x100000>;
                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
                reset-names = "usb3-otg";
                status = "disabled";
  
 -              usbdrd_dwc3_1: dwc3 {
 +              usbdrd_dwc3_1: usb@fe900000 {
                        compatible = "snps,dwc3";
                        reg = <0x0 0xfe900000 0x0 0x100000>;
                        interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&cru HCLK_SDIO>;
                                pm_qos = <&qos_sdioaudio>;
                        };
+                       pd_tcpc0@RK3399_PD_TCPD0 {
+                               reg = <RK3399_PD_TCPD0>;
+                               clocks = <&cru SCLK_UPHY0_TCPDCORE>,
+                                        <&cru SCLK_UPHY0_TCPDPHY_REF>;
+                       };
+                       pd_tcpc1@RK3399_PD_TCPD1 {
+                               reg = <RK3399_PD_TCPD1>;
+                               clocks = <&cru SCLK_UPHY1_TCPDCORE>,
+                                        <&cru SCLK_UPHY1_TCPDPHY_REF>;
+                       };
                        pd_usb3@RK3399_PD_USB3 {
                                reg = <RK3399_PD_USB3>;
                                clocks = <&cru ACLK_USB3>;
                                        pm_qos = <&qos_isp1_m0>,
                                                 <&qos_isp1_m1>;
                                };
-                               pd_tcpc0@RK3399_PD_TCPC0 {
-                                       reg = <RK3399_PD_TCPD0>;
-                                       clocks = <&cru SCLK_UPHY0_TCPDCORE>,
-                                                <&cru SCLK_UPHY0_TCPDPHY_REF>;
-                               };
-                               pd_tcpc1@RK3399_PD_TCPC1 {
-                                       reg = <RK3399_PD_TCPD1>;
-                                       clocks = <&cru SCLK_UPHY1_TCPDCORE>,
-                                                <&cru SCLK_UPHY1_TCPDPHY_REF>;
-                               };
                                pd_vo@RK3399_PD_VO {
                                        reg = <RK3399_PD_VO>;
                                        #address-cells = <1>;
        pmugrf: syscon@ff320000 {
                compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
                reg = <0x0 0xff320000 0x0 0x1000>;
 -              #address-cells = <1>;
 -              #size-cells = <1>;
  
                pmu_io_domains: io-domains {
                        compatible = "rockchip,rk3399-pmu-io-voltage-domain";
                power-domains = <&power RK3399_PD_VCODEC>;
        };
  
+       vdec: video-codec@ff660000 {
+               compatible = "rockchip,rk3399-vdec";
+               reg = <0x0 0xff660000 0x0 0x400>;
+               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vdpu";
+               clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
+                        <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
+               clock-names = "axi", "ahb", "cabac", "core";
+               iommus = <&vdec_mmu>;
+               power-domains = <&power RK3399_PD_VDU>;
+       };
        vdec_mmu: iommu@ff660480 {
                compatible = "rockchip,iommu";
                reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
                interrupt-names = "vdec_mmu";
                clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>;
                clock-names = "aclk", "iface";
+               power-domains = <&power RK3399_PD_VDU>;
                #iommu-cells = <0>;
-               status = "disabled";
        };
  
        iep_mmu: iommu@ff670800 {
        gpu: gpu@ff9a0000 {
                compatible = "rockchip,rk3399-mali", "arm,mali-t860";
                reg = <0x0 0xff9a0000 0x0 0x10000>;
 -              interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
 -                           <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
 -                           <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
 -              interrupt-names = "gpu", "job", "mmu";
 +              interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
 +                           <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
 +                           <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
 +              interrupt-names = "job", "mmu", "gpu";
                clocks = <&cru ACLK_GPU>;
                #cooling-cells = <2>;
                power-domains = <&power RK3399_PD_GPU>;
                        mux-reg-masks = <0x4080 0x3>, /* SERDES0 lane select */
                                        <0x4090 0x3>; /* SERDES1 lane select */
                };
+               dss_oldi_io_ctrl: dss_oldi_io_ctrl@41E0 {
+                       compatible = "syscon";
+                       reg = <0x0000041E0 0x14>;
+               };
+               ehrpwm_tbclk: syscon@4140 {
+                       compatible = "ti,am654-ehrpwm-tbclk", "syscon";
+                       reg = <0x4140 0x18>;
+                       #clock-cells = <1>;
+               };
        };
  
        dwc3_0: dwc3@4000000 {
                                                <0x5>; /* RX_CHAN */
                        ti,sci-rm-range-rflow = <0x6>; /* GP RFLOW */
                };
 +
 +              cpts@310d0000 {
 +                      compatible = "ti,am65-cpts";
 +                      reg = <0x0 0x310d0000 0x0 0x400>;
 +                      reg-names = "cpts";
 +                      clocks = <&main_cpts_mux>;
 +                      clock-names = "cpts";
 +                      interrupts-extended = <&intr_main_navss 163 0>;
 +                      interrupt-names = "cpts";
 +                      ti,cpts-periodic-outputs = <6>;
 +                      ti,cpts-ext-ts-inputs = <8>;
 +
 +                      main_cpts_mux: refclk-mux {
 +                              #clock-cells = <0>;
 +                              clocks = <&k3_clks 118 5>, <&k3_clks 118 11>,
 +                                      <&k3_clks 118 6>, <&k3_clks 118 3>,
 +                                      <&k3_clks 118 8>, <&k3_clks 118 14>,
 +                                      <&k3_clks 120 3>, <&k3_clks 121 3>;
 +                              assigned-clocks = <&main_cpts_mux>;
 +                              assigned-clock-parents = <&k3_clks 118 5>;
 +                      };
 +              };
        };
  
        main_gpio0:  main_gpio0@600000 {
                        };
                };
        };
+       dss: dss@04a00000 {
+               compatible = "ti,am65x-dss";
+               reg =   <0x0 0x04a00000 0x0 0x1000>, /* common */
+                       <0x0 0x04a02000 0x0 0x1000>, /* vidl1 */
+                       <0x0 0x04a06000 0x0 0x1000>, /* vid */
+                       <0x0 0x04a07000 0x0 0x1000>, /* ovr1 */
+                       <0x0 0x04a08000 0x0 0x1000>, /* ovr2 */
+                       <0x0 0x04a0a000 0x0 0x1000>, /* vp1 */
+                       <0x0 0x04a0b000 0x0 0x1000>; /* vp2 */
+               reg-names = "common", "vidl1", "vid",
+                       "ovr1", "ovr2", "vp1", "vp2";
+               ti,am65x-oldi-io-ctrl = <&dss_oldi_io_ctrl>;
+               power-domains = <&k3_pds 67 TI_SCI_PD_EXCLUSIVE>;
+               clocks =        <&k3_clks 67 1>,
+                               <&k3_clks 216 1>,
+                               <&k3_clks 67 2>;
+               clock-names = "fck", "vp1", "vp2";
+               /*
+                * Set vp2 clk (DPI_1_IN_CLK) mux to PLL4 via
+                * DIV1. See "Figure 12-3365. DSS Integration"
+                * in AM65x TRM for details.
+                */
+               assigned-clocks = <&k3_clks 67 2>;
+               assigned-clock-parents = <&k3_clks 67 5>;
+               interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>;
+               status = "disabled";
+               dss_ports: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+       ehrpwm0: pwm@3000000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x0 0x3000000 0x0 0x100>;
+               power-domains = <&k3_pds 40 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&ehrpwm_tbclk 0>, <&k3_clks 40 0>;
+               clock-names = "tbclk", "fck";
+       };
+       ehrpwm1: pwm@3010000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x0 0x3010000 0x0 0x100>;
+               power-domains = <&k3_pds 41 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&ehrpwm_tbclk 1>, <&k3_clks 41 0>;
+               clock-names = "tbclk", "fck";
+       };
+       ehrpwm2: pwm@3020000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x0 0x3020000 0x0 0x100>;
+               power-domains = <&k3_pds 42 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&ehrpwm_tbclk 2>, <&k3_clks 42 0>;
+               clock-names = "tbclk", "fck";
+       };
+       ehrpwm3: pwm@3030000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x0 0x3030000 0x0 0x100>;
+               power-domains = <&k3_pds 43 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&ehrpwm_tbclk 3>, <&k3_clks 43 0>;
+               clock-names = "tbclk", "fck";
+       };
+       ehrpwm4: pwm@3040000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x0 0x3040000 0x0 0x100>;
+               power-domains = <&k3_pds 44 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&ehrpwm_tbclk 4>, <&k3_clks 44 0>;
+               clock-names = "tbclk", "fck";
+       };
+       ehrpwm5: pwm@3050000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x0 0x3050000 0x0 0x100>;
+               power-domains = <&k3_pds 45 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&ehrpwm_tbclk 5>, <&k3_clks 45 0>;
+               clock-names = "tbclk", "fck";
+       };
  };
                                                <0x0c>; /* RX_UHCHAN */
                        ti,sci-rm-range-rflow = <0x00>; /* GP RFLOW */
                };
 +
 +              cpts@310d0000 {
 +                      compatible = "ti,j721e-cpts";
 +                      reg = <0x0 0x310d0000 0x0 0x400>;
 +                      reg-names = "cpts";
 +                      clocks = <&k3_clks 201 1>;
 +                      clock-names = "cpts";
 +                      interrupts-extended = <&main_navss_intr 201 0>;
 +                      interrupt-names = "cpts";
 +                      ti,cpts-periodic-outputs = <6>;
 +                      ti,cpts-ext-ts-inputs = <8>;
 +              };
        };
  
        main_pmx0: pinmux@11c000 {
                };
        };
  
+       dss: dss@04a00000 {
+               compatible = "ti,j721e-dss";
+               reg =
+                       <0x00 0x04a00000 0x00 0x10000>, /* common_m */
+                       <0x00 0x04a10000 0x00 0x10000>, /* common_s0*/
+                       <0x00 0x04b00000 0x00 0x10000>, /* common_s1*/
+                       <0x00 0x04b10000 0x00 0x10000>, /* common_s2*/
+                       <0x00 0x04a20000 0x00 0x10000>, /* vidl1 */
+                       <0x00 0x04a30000 0x00 0x10000>, /* vidl2 */
+                       <0x00 0x04a50000 0x00 0x10000>, /* vid1 */
+                       <0x00 0x04a60000 0x00 0x10000>, /* vid2 */
+                       <0x00 0x04a70000 0x00 0x10000>, /* ovr1 */
+                       <0x00 0x04a90000 0x00 0x10000>, /* ovr2 */
+                       <0x00 0x04ab0000 0x00 0x10000>, /* ovr3 */
+                       <0x00 0x04ad0000 0x00 0x10000>, /* ovr4 */
+                       <0x00 0x04a80000 0x00 0x10000>, /* vp1 */
+                       <0x00 0x04aa0000 0x00 0x10000>, /* vp2 */
+                       <0x00 0x04ac0000 0x00 0x10000>, /* vp3 */
+                       <0x00 0x04ae0000 0x00 0x10000>, /* vp4 */
+                       <0x00 0x04af0000 0x00 0x10000>; /* wb */
+               reg-names = "common_m", "common_s0",
+                       "common_s1", "common_s2",
+                       "vidl1", "vidl2","vid1","vid2",
+                       "ovr1", "ovr2", "ovr3", "ovr4",
+                       "vp1", "vp2", "vp3", "vp4",
+                       "wb";
+               clocks =        <&k3_clks 152 0>,
+                               <&k3_clks 152 1>,
+                               <&k3_clks 152 4>,
+                               <&k3_clks 152 9>,
+                               <&k3_clks 152 13>;
+               clock-names = "fck", "vp1", "vp2", "vp3", "vp4";
+               power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
+               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "common_m",
+                                 "common_s0",
+                                 "common_s1",
+                                 "common_s2";
+               status = "disabled";
+               dss_ports: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
        mcasp0: mcasp@2b00000 {
                compatible = "ti,am33xx-mcasp-audio";
                reg = <0x0 0x02b00000 0x0 0x2000>,
  
                status = "disabled";
        };
+       watchdog0: watchdog@2200000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x0 0x2200000 0x0 0x100>;
+               clocks = <&k3_clks 252 1>;
+               power-domains = <&k3_pds 252 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 252 1>;
+               assigned-clock-parents = <&k3_clks 252 5>;
+       };
+       watchdog1: watchdog@2210000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x0 0x2210000 0x0 0x100>;
+               clocks = <&k3_clks 253 1>;
+               power-domains = <&k3_pds 253 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 253 1>;
+               assigned-clock-parents = <&k3_clks 253 5>;
+       };
  };