Merge tag 'dt-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 10 Jan 2022 16:24:40 +0000 (08:24 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 10 Jan 2022 16:24:40 +0000 (08:24 -0800)
Pull ARM SoC devicetree updates from Arnd Bergmann:
 "As usual, this is the bulk of the updates for the SoC tree, adding
  more devices to existing files, addressing issues from ever improving
  automated checking, and fixing minor issues.

  The most interesting bits as usual are the new platforms. All the
  newly supported SoCs belong into existing families this time:

   - Qualcomm gets support for two newly announced platforms, both of
     which can now work in production environments: the SDX65 5G modem
     that can run a minimal Linux on its Cortex-A7 core, and the
     Snapdragon 8 Gen 1, their latest high-end phone SoC.

   - Renesas adds support for R-Car S4-8, the most recent automotive
     Server/Communication SoC.

   - TI adds support for J721s2, a new automotive SoC in the K3 family.

   - Mediatek MT7986a/b is a SoC used in Wifi routers, the latest
     generation following their popular MT76xx series. Only basic
     support is added for now.

   - NXP i.MX8 ULP8 is a new low-power variant of the widespread i.MX8
     series.

   - TI SPEAr320s is a minor variant of the old SPEAr320 SoC that we
     have supported for a long time.

  New boards with the existing SoCs include

   - Aspeed AST2500/AST2600 BMCs in TYAN, Facebook and Yadro servers

   - AT91/SAMA5 based evaluation board

   - NXP gains twenty new development and industrial boards for their
     i.MX and Layerscape SoCs

   - Intel IXP4xx now supports the final two machines in device tree
     that were previously only supported in old style board files.

   - Mediatek MT6589 is used in the Fairphone FP1 phone from 2013, while
     MT8183 is used in the Acer Chromebook 314.

   - Qualcomm gains support for the reference machines using the two new
     SoCs, plus a number of Chromebook variants and phones based on the
     Snapdragon 7c, 845 and 888 SoCs, including various Sony Xperia
     devices and the Microsoft Surface Duo 2.

   - ST STM32 now supports the Engicam i.Core STM32MP1 carrier board.

   - Tegra now boots various older Android devices based on 32-bit chips
     out of the box, including a number of ASUS Transformer tablets.

     There is also a new Jetson AGX Orin developer kit.

   - Apple support adds the missing device trees for all the remaining
     M1 Macbook and iMac variants, though not yet the M1 Pro/Max
     versions.

   - Allwinner now supports another version of the Tanix TX6 set-top box
     based on the H6 SoC.

   - Broadcom gains support for the Netgear RAXE500 Wireless router
     based on BCM4908"

* tag 'dt-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (574 commits)
  Revert "ARM: dts: BCM5301X: define RTL8365MB switch on Asus RT-AC88U"
  arm64: dts: qcom: sm6125: Avoid using missing SM6125_VDDCX
  arm64: dts: qcom: sm8450-qrd: Enable USB nodes
  arm64: dts: qcom: sm8450: Add usb nodes
  ARM: dts: aspeed: add LCLK setting into LPC KCS nodes
  dt-bindings: ipmi: bt-bmc: add 'clocks' as a required property
  ARM: dts: aspeed: add LCLK setting into LPC IBT node
  ARM: dts: aspeed: p10: Add TPM device
  ARM: dts: aspeed: p10: Enable USB host ports
  ARM: dts: aspeed: Add TYAN S8036 BMC machine
  ARM: dts: aspeed: tyan-s7106: Add uart_routing and fix vuart config
  ARM: dts: aspeed: Adding Facebook Bletchley BMC
  ARM: dts: aspeed: g220a: Enable secondary flash
  ARM: dts: Add openbmc-flash-layout-64-alt.dtsi
  ARM: dts: aspeed: Add secure boot controller node
  dt-bindings: aspeed: Add Secure Boot Controller bindings
  ARM: dts: Remove "spidev" nodes
  dt-bindings: pinctrl: samsung: Add pin drive definitions for Exynos850
  dt-bindings: arm: samsung: Document E850-96 board binding
  dt-bindings: Add vendor prefix for WinLink
  ...

1  2 
Documentation/devicetree/bindings/arm/qcom.yaml
MAINTAINERS
arch/arm/boot/dts/bcm5301x.dtsi
arch/arm64/boot/dts/apple/t8103.dtsi
arch/arm64/boot/dts/exynos/exynosautov9.dtsi
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
arch/arm64/boot/dts/freescale/imx8mq.dtsi
arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi

@@@ -48,9 -48,9 +48,10 @@@ description: 
          sdx65
          sm7225
          sm8150
+         sdx65
          sm8250
          sm8350
 +        sm8450
  
    The 'board' element must be one of the following strings:
  
@@@ -202,8 -202,10 +203,10 @@@ properties
  
        - items:
            - enum:
+               - qcom,sc7280-crd
                - qcom,sc7280-idp
                - qcom,sc7280-idp2
+               - google,hoglin
                - google,piglin
                - google,senor
            - const: qcom,sc7280
                - qcom,sdx65-mtp
            - const: qcom,sdx65
  
+       - items:
+           - enum:
+               - qcom,sdx65-mtp
+           - const: qcom,sdx65
        - items:
            - enum:
                - qcom,ipq6018-cp01
                - qcom,sm8350-mtp
            - const: qcom,sm8350
  
 +      - items:
 +          - enum:
 +              - qcom,sm8450-qrd
 +          - const: qcom,sm8450
 +
  additionalProperties: true
  
  ...
diff --combined MAINTAINERS
@@@ -1745,17 -1745,21 +1745,21 @@@ B:   https://github.com/AsahiLinux/linux/
  C:    irc://irc.oftc.net/asahi-dev
  T:    git https://github.com/AsahiLinux/linux.git
  F:    Documentation/devicetree/bindings/arm/apple.yaml
+ F:    Documentation/devicetree/bindings/arm/apple/*
  F:    Documentation/devicetree/bindings/i2c/apple,i2c.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
  F:    Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
  F:    Documentation/devicetree/bindings/pci/apple,pcie.yaml
  F:    Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
+ F:    Documentation/devicetree/bindings/power/apple*
+ F:    Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
  F:    arch/arm64/boot/dts/apple/
  F:    drivers/i2c/busses/i2c-pasemi-core.c
  F:    drivers/i2c/busses/i2c-pasemi-platform.c
  F:    drivers/irqchip/irq-apple-aic.c
  F:    drivers/mailbox/apple-mailbox.c
  F:    drivers/pinctrl/pinctrl-apple-gpio.c
+ F:    drivers/soc/apple/*
  F:    include/dt-bindings/interrupt-controller/apple-aic.h
  F:    include/dt-bindings/pinctrl/apple.h
  F:    include/linux/apple-mailbox.h
@@@ -2263,15 -2267,6 +2267,15 @@@ L:    linux-iio@vger.kernel.or
  S:    Maintained
  F:    drivers/counter/microchip-tcb-capture.c
  
 +ARM/MILBEAUT ARCHITECTURE
 +M:    Taichi Sugaya <sugaya.taichi@socionext.com>
 +M:    Takao Orito <orito.takao@socionext.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/boot/dts/milbeaut*
 +F:    arch/arm/mach-milbeaut/
 +N:    milbeaut
 +
  ARM/MIOA701 MACHINE SUPPORT
  M:    Robert Jarzmik <robert.jarzmik@free.fr>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -2551,7 -2546,6 +2555,7 @@@ Q:      https://patchwork.kernel.org/project
  F:    Documentation/arm/samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
  F:    Documentation/devicetree/bindings/power/pd-samsung.yaml
 +F:    Documentation/devicetree/bindings/soc/samsung/
  F:    arch/arm/boot/dts/exynos*
  F:    arch/arm/boot/dts/s3c*
  F:    arch/arm/boot/dts/s5p*
@@@ -2739,11 -2733,10 +2743,11 @@@ S:   Maintaine
  F:    drivers/memory/*emif*
  
  ARM/TEXAS INSTRUMENT KEYSTONE ARCHITECTURE
 +M:    Nishanth Menon <nm@ti.com>
  M:    Santosh Shilimkar <ssantosh@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
  F:    arch/arm/boot/dts/keystone-*
  F:    arch/arm/mach-keystone/
  
@@@ -3067,7 -3060,7 +3071,7 @@@ F:      Documentation/devicetree/bindings/ph
  F:    drivers/phy/qualcomm/phy-ath79-usb.c
  
  ATHEROS ATH GENERIC UTILITIES
 -M:    Kalle Valo <kvalo@codeaurora.org>
 +M:    Kalle Valo <kvalo@kernel.org>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  F:    drivers/net/wireless/ath/*
@@@ -3082,7 -3075,7 +3086,7 @@@ W:      https://wireless.wiki.kernel.org/en/
  F:    drivers/net/wireless/ath/ath5k/
  
  ATHEROS ATH6KL WIRELESS DRIVER
 -M:    Kalle Valo <kvalo@codeaurora.org>
 +M:    Kalle Valo <kvalo@kernel.org>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
@@@ -3581,14 -3574,13 +3585,14 @@@ L:   netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/broadcom/b44.*
  
 -BROADCOM B53 ETHERNET SWITCH DRIVER
 +BROADCOM B53/SF2 ETHERNET SWITCH DRIVER
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    netdev@vger.kernel.org
  L:    openwrt-devel@lists.openwrt.org (subscribers-only)
  S:    Supported
  F:    Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
  F:    drivers/net/dsa/b53/*
 +F:    drivers/net/dsa/bcm_sf2*
  F:    include/linux/dsa/brcm.h
  F:    include/linux/platform_data/b53.h
  
@@@ -3637,7 -3629,6 +3641,7 @@@ F:      drivers/net/ethernet/broadcom/bcm490
  F:    drivers/net/ethernet/broadcom/unimac.h
  
  BROADCOM BCM5301X ARM ARCHITECTURE
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Hauke Mehrtens <hauke@hauke-m.de>
  M:    Rafał Miłecki <zajec5@gmail.com>
  M:    bcm-kernel-feedback-list@broadcom.com
@@@ -3649,7 -3640,6 +3653,7 @@@ F:      arch/arm/boot/dts/bcm953012
  F:    arch/arm/mach-bcm/bcm_5301x.c
  
  BROADCOM BCM53573 ARM ARCHITECTURE
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Rafał Miłecki <rafal@milecki.pl>
  L:    bcm-kernel-feedback-list@broadcom.com
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -3772,8 -3762,7 +3776,8 @@@ S:      Supporte
  F:    drivers/net/wireless/broadcom/brcm80211/
  
  BROADCOM BRCMSTB GPIO DRIVER
 -M:    Gregory Fong <gregory.0xf0@gmail.com>
 +M:    Doug Berger <opendmb@gmail.com>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    bcm-kernel-feedback-list@broadcom.com
  S:    Supported
  F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
@@@ -9333,6 -9322,7 +9337,6 @@@ S:      Maintaine
  F:    drivers/iio/pressure/dps310.c
  
  INFINIBAND SUBSYSTEM
 -M:    Doug Ledford <dledford@redhat.com>
  M:    Jason Gunthorpe <jgg@nvidia.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
@@@ -10283,9 -10273,9 +10287,9 @@@ F:   lib/Kconfig.kcsa
  F:    scripts/Makefile.kcsan
  
  KDUMP
 -M:    Dave Young <dyoung@redhat.com>
  M:    Baoquan He <bhe@redhat.com>
  R:    Vivek Goyal <vgoyal@redhat.com>
 +R:    Dave Young <dyoung@redhat.com>
  L:    kexec@lists.infradead.org
  S:    Maintained
  W:    http://lse.sourceforge.net/kdump/
@@@ -12183,8 -12173,8 +12187,8 @@@ F:   drivers/net/ethernet/mellanox/mlx5/c
  F:    include/linux/mlx5/mlx5_ifc_fpga.h
  
  MELLANOX ETHERNET SWITCH DRIVERS
 -M:    Jiri Pirko <jiri@nvidia.com>
  M:    Ido Schimmel <idosch@nvidia.com>
 +M:    Petr Machata <petrm@nvidia.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://www.mellanox.com
@@@ -13252,7 -13242,7 +13256,7 @@@ F:   include/uapi/linux/if_
  F:    include/uapi/linux/netdevice.h
  
  NETWORKING DRIVERS (WIRELESS)
 -M:    Kalle Valo <kvalo@codeaurora.org>
 +M:    Kalle Valo <kvalo@kernel.org>
  L:    linux-wireless@vger.kernel.org
  S:    Maintained
  Q:    http://patchwork.kernel.org/project/linux-wireless/list/
@@@ -14849,7 -14839,7 +14853,7 @@@ PCIE DRIVER FOR MEDIATE
  M:    Ryder Lee <ryder.lee@mediatek.com>
  M:    Jianjun Wang <jianjun.wang@mediatek.com>
  L:    linux-pci@vger.kernel.org
 -L:    linux-mediatek@lists.infradead.org
 +L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/pci/mediatek*
  F:    drivers/pci/controller/*mediatek*
@@@ -15708,7 -15698,7 +15712,7 @@@ T:   git git://linuxtv.org/anttip/media_t
  F:    drivers/media/tuners/qt1010*
  
  QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
 -M:    Kalle Valo <kvalo@codeaurora.org>
 +M:    Kalle Valo <kvalo@kernel.org>
  L:    ath10k@lists.infradead.org
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
@@@ -15716,7 -15706,7 +15720,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    drivers/net/wireless/ath/ath10k/
  
  QUALCOMM ATHEROS ATH11K WIRELESS DRIVER
 -M:    Kalle Valo <kvalo@codeaurora.org>
 +M:    Kalle Valo <kvalo@kernel.org>
  L:    ath11k@lists.infradead.org
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
@@@ -15774,15 -15764,6 +15778,15 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/net/qcom,ethqos.txt
  F:    drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
  
 +QUALCOMM FASTRPC DRIVER
 +M:    Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 +M:    Amol Maheshwari <amahesh@qti.qualcomm.com>
 +L:    linux-arm-msm@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/misc/qcom,fastrpc.txt
 +F:    drivers/misc/fastrpc.c
 +F:    include/uapi/misc/fastrpc.h
 +
  QUALCOMM GENERIC INTERFACE I2C DRIVER
  M:    Akash Asthana <akashast@codeaurora.org>
  M:    Mukesh Savaliya <msavaliy@codeaurora.org>
@@@ -15889,7 -15870,7 +15893,7 @@@ F:   Documentation/devicetree/bindings/me
  F:    drivers/media/platform/qcom/venus/
  
  QUALCOMM WCN36XX WIRELESS DRIVER
 -M:    Kalle Valo <kvalo@codeaurora.org>
 +M:    Kalle Valo <kvalo@kernel.org>
  L:    wcn36xx@lists.infradead.org
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
@@@ -15991,7 -15972,6 +15995,7 @@@ F:   arch/mips/generic/board-ranchu.
  
  RANDOM NUMBER DRIVER
  M:    "Theodore Ts'o" <tytso@mit.edu>
 +M:    Jason A. Donenfeld <Jason@zx2c4.com>
  S:    Maintained
  F:    drivers/char/random.c
  
@@@ -16514,12 -16494,6 +16518,12 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml
  F:    drivers/media/platform/sunxi/sun8i-rotate/
  
 +RPMSG TTY DRIVER
 +M:    Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
 +L:    linux-remoteproc@vger.kernel.org
 +S:    Maintained
 +F:    drivers/tty/rpmsg_tty.c
 +
  RTL2830 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -16641,8 -16615,8 +16645,8 @@@ W:   http://www.ibm.com/developerworks/li
  F:    drivers/iommu/s390-iommu.c
  
  S390 IUCV NETWORK LAYER
 -M:    Julian Wiedmann <jwi@linux.ibm.com>
 -M:    Karsten Graul <kgraul@linux.ibm.com>
 +M:    Alexandra Winter <wintera@linux.ibm.com>
 +M:    Wenjia Zhang <wenjia@linux.ibm.com>
  L:    linux-s390@vger.kernel.org
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -16652,8 -16626,8 +16656,8 @@@ F:   include/net/iucv
  F:    net/iucv/
  
  S390 NETWORK DRIVERS
 -M:    Julian Wiedmann <jwi@linux.ibm.com>
 -M:    Karsten Graul <kgraul@linux.ibm.com>
 +M:    Alexandra Winter <wintera@linux.ibm.com>
 +M:    Wenjia Zhang <wenjia@linux.ibm.com>
  L:    linux-s390@vger.kernel.org
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -17427,7 -17401,7 +17431,7 @@@ F:   drivers/video/fbdev/sm712
  SILVACO I3C DUAL-ROLE MASTER
  M:    Miquel Raynal <miquel.raynal@bootlin.com>
  M:    Conor Culhane <conor.culhane@silvaco.com>
 -L:    linux-i3c@lists.infradead.org
 +L:    linux-i3c@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/i3c/silvaco,i3c-master.yaml
  F:    drivers/i3c/master/svc-i3c-master.c
@@@ -18513,7 -18487,6 +18517,7 @@@ F:   include/uapi/linux/pkt_sched.
  F:    include/uapi/linux/tc_act/
  F:    include/uapi/linux/tc_ematch/
  F:    net/sched/
 +F:    tools/testing/selftests/tc-testing
  
  TC90522 MEDIA DRIVER
  M:    Akihiro Tsukada <tskd08@gmail.com>
@@@ -19062,12 -19035,11 +19066,12 @@@ F:        drivers/mmc/host/tifm_sd.
  F:    include/linux/tifm.h
  
  TI KEYSTONE MULTICORE NAVIGATOR DRIVERS
 +M:    Nishanth Menon <nm@ti.com>
  M:    Santosh Shilimkar <ssantosh@kernel.org>
  L:    linux-kernel@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
  F:    drivers/soc/ti/*
  
  TI LM49xxx FAMILY ASoC CODEC DRIVERS
@@@ -21063,7 -21035,7 +21067,7 @@@ S:   Maintaine
  F:    arch/x86/kernel/cpu/zhaoxin.c
  
  ZONEFS FILESYSTEM
 -M:    Damien Le Moal <damien.lemoal@wdc.com>
 +M:    Damien Le Moal <damien.lemoal@opensource.wdc.com>
  M:    Naohiro Aota <naohiro.aota@wdc.com>
  R:    Johannes Thumshirn <jth@kernel.org>
  L:    linux-fsdevel@vger.kernel.org
                };
        };
  
-       usb2_phy: usb2-phy@1800c000 {
-               compatible = "brcm,ns-usb2-phy";
-               reg = <0x1800c000 0x1000>;
-               reg-names = "dmu";
-               #phy-cells = <0>;
-               clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
-               clock-names = "phy-ref-clk";
-       };
        axi@18000000 {
                compatible = "brcm,bus-axi";
                reg = <0x18000000 0x1000>;
  
                        gpio-controller;
                        #gpio-cells = <2>;
 +                      interrupt-controller;
 +                      #interrupt-cells = <2>;
                };
  
                pcie0: pcie@12000 {
        i2c0: i2c@18009000 {
                compatible = "brcm,iproc-i2c";
                reg = <0x18009000 0x50>;
 -              interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
 +              interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
                clock-frequency = <100000>;
                #address-cells = <1>;
                #size-cells = <1>;
  
-               cru@100 {
-                       compatible = "simple-bus";
+               cru-bus@100 {
+                       compatible = "brcm,ns-cru", "simple-mfd";
                        reg = <0x100 0x1a4>;
                        ranges;
                        #address-cells = <1>;
                        #size-cells = <1>;
  
-                       lcpll0: lcpll0@100 {
+                       lcpll0: clock-controller@100 {
                                #clock-cells = <1>;
                                compatible = "brcm,nsp-lcpll0";
                                reg = <0x100 0x14>;
                                                     "sdio", "ddr_phy";
                        };
  
-                       genpll: genpll@140 {
+                       genpll: clock-controller@140 {
                                #clock-cells = <1>;
                                compatible = "brcm,nsp-genpll";
                                reg = <0x140 0x24>;
                                                     "sata1", "sata2";
                        };
  
+                       usb2_phy: phy@164 {
+                               compatible = "brcm,ns-usb2-phy";
+                               reg = <0x164 0x4>;
+                               brcm,syscon-clkset = <&cru_clkset>;
+                               clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
+                               clock-names = "phy-ref-clk";
+                               #phy-cells = <0>;
+                       };
+                       cru_clkset: syscon@180 {
+                               compatible = "brcm,cru-clkset", "syscon";
+                               reg = <0x180 0x4>;
+                       };
                        pinctrl: pin-controller@1c0 {
                                compatible = "brcm,bcm4708-pinmux";
                                reg = <0x1c0 0x24>;
@@@ -7,7 -7,6 +7,7 @@@
   * Copyright The Asahi Linux Contributors
   */
  
 +#include <dt-bindings/gpio/gpio.h>
  #include <dt-bindings/interrupt-controller/apple-aic.h>
  #include <dt-bindings/interrupt-controller/irq.h>
  #include <dt-bindings/pinctrl/apple.h>
                             <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
        };
  
-       clk24: clock-24m {
+       clkref: clock-ref {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24000000>;
-               clock-output-names = "clk24";
+               clock-output-names = "clkref";
        };
  
        soc {
                ranges;
                nonposted-mmio;
  
+               i2c0: i2c@235010000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x35010000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c0_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       power-domains = <&ps_i2c0>;
+               };
+               i2c1: i2c@235014000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x35014000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c1_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       power-domains = <&ps_i2c1>;
+               };
+               i2c2: i2c@235018000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x35018000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c2_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       status = "disabled"; /* not used in all devices */
+                       power-domains = <&ps_i2c2>;
+               };
+               i2c3: i2c@23501c000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x3501c000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c3_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       power-domains = <&ps_i2c3>;
+               };
+               i2c4: i2c@235020000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x35020000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c4_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       power-domains = <&ps_i2c4>;
+                       status = "disabled"; /* only used in J293 */
+               };
                serial0: serial@235200000 {
                        compatible = "apple,s5l-uart";
                        reg = <0x2 0x35200000 0x0 0x1000>;
                         * TODO: figure out the clocking properly, there may
                         * be a third selectable clock.
                         */
-                       clocks = <&clk24>, <&clk24>;
+                       clocks = <&clkref>, <&clkref>;
+                       clock-names = "uart", "clk_uart_baud0";
+                       power-domains = <&ps_uart0>;
+                       status = "disabled";
+               };
+               serial2: serial@235208000 {
+                       compatible = "apple,s5l-uart";
+                       reg = <0x2 0x35208000 0x0 0x1000>;
+                       reg-io-width = <4>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clkref>, <&clkref>;
                        clock-names = "uart", "clk_uart_baud0";
+                       power-domains = <&ps_uart2>;
                        status = "disabled";
                };
  
                        #interrupt-cells = <3>;
                        interrupt-controller;
                        reg = <0x2 0x3b100000 0x0 0x8000>;
+                       power-domains = <&ps_aic>;
+               };
+               pmgr: power-management@23b700000 {
+                       compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x2 0x3b700000 0 0x14000>;
                };
  
                pinctrl_ap: pinctrl@23c100000 {
                        compatible = "apple,t8103-pinctrl", "apple,pinctrl";
                        reg = <0x2 0x3c100000 0x0 0x100000>;
+                       power-domains = <&ps_gpio>;
  
                        gpio-controller;
                        #gpio-cells = <2>;
                                     <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>,
                                     <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>;
  
+                       i2c0_pins: i2c0-pins {
+                               pinmux = <APPLE_PINMUX(192, 1)>,
+                                        <APPLE_PINMUX(188, 1)>;
+                       };
+                       i2c1_pins: i2c1-pins {
+                               pinmux = <APPLE_PINMUX(201, 1)>,
+                                        <APPLE_PINMUX(199, 1)>;
+                       };
+                       i2c2_pins: i2c2-pins {
+                               pinmux = <APPLE_PINMUX(163, 1)>,
+                                        <APPLE_PINMUX(162, 1)>;
+                       };
+                       i2c3_pins: i2c3-pins {
+                               pinmux = <APPLE_PINMUX(73, 1)>,
+                                        <APPLE_PINMUX(72, 1)>;
+                       };
+                       i2c4_pins: i2c4-pins {
+                               pinmux = <APPLE_PINMUX(135, 1)>,
+                                        <APPLE_PINMUX(134, 1)>;
+                       };
                        pcie_pins: pcie-pins {
                                pinmux = <APPLE_PINMUX(150, 1)>,
                                         <APPLE_PINMUX(151, 1)>,
                        };
                };
  
-               pinctrl_aop: pinctrl@24a820000 {
-                       compatible = "apple,t8103-pinctrl", "apple,pinctrl";
-                       reg = <0x2 0x4a820000 0x0 0x4000>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       gpio-ranges = <&pinctrl_aop 0 0 42>;
-                       apple,npins = <42>;
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-                       interrupt-parent = <&aic>;
-                       interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
-               };
                pinctrl_nub: pinctrl@23d1f0000 {
                        compatible = "apple,t8103-pinctrl", "apple,pinctrl";
                        reg = <0x2 0x3d1f0000 0x0 0x4000>;
+                       power-domains = <&ps_nub_gpio>;
  
                        gpio-controller;
                        #gpio-cells = <2>;
                                     <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>;
                };
  
+               pmgr_mini: power-management@23d280000 {
+                       compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x2 0x3d280000 0 0x4000>;
+               };
+               wdt: watchdog@23d2b0000 {
+                       compatible = "apple,t8103-wdt", "apple,wdt";
+                       reg = <0x2 0x3d2b0000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>;
+               };
                pinctrl_smc: pinctrl@23e820000 {
                        compatible = "apple,t8103-pinctrl", "apple,pinctrl";
                        reg = <0x2 0x3e820000 0x0 0x4000>;
                                     <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>;
                };
  
+               pinctrl_aop: pinctrl@24a820000 {
+                       compatible = "apple,t8103-pinctrl", "apple,pinctrl";
+                       reg = <0x2 0x4a820000 0x0 0x4000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl_aop 0 0 42>;
+                       apple,npins = <42>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
+               };
                pcie0_dart_0: dart@681008000 {
                        compatible = "apple,t8103-dart";
                        reg = <0x6 0x81008000 0x0 0x4000>;
                        #iommu-cells = <1>;
                        interrupt-parent = <&aic>;
                        interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&ps_apcie_gp>;
                };
  
                pcie0_dart_1: dart@682008000 {
                        #iommu-cells = <1>;
                        interrupt-parent = <&aic>;
                        interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&ps_apcie_gp>;
                };
  
                pcie0_dart_2: dart@683008000 {
                        #iommu-cells = <1>;
                        interrupt-parent = <&aic>;
                        interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&ps_apcie_gp>;
                };
  
                pcie0: pcie@690000000 {
                        ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
                                 <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
  
+                       power-domains = <&ps_apcie_gp>;
                        pinctrl-0 = <&pcie_pins>;
                        pinctrl-names = "default";
  
                        port00: pci@0,0 {
                                device_type = "pci";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
 -                              reset-gpios = <&pinctrl_ap 152 0>;
 +                              reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>;
-                               max-link-speed = <2>;
  
                                #address-cells = <3>;
                                #size-cells = <2>;
                        port01: pci@1,0 {
                                device_type = "pci";
                                reg = <0x800 0x0 0x0 0x0 0x0>;
 -                              reset-gpios = <&pinctrl_ap 153 0>;
 +                              reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>;
-                               max-link-speed = <2>;
  
                                #address-cells = <3>;
                                #size-cells = <2>;
                        port02: pci@2,0 {
                                device_type = "pci";
                                reg = <0x1000 0x0 0x0 0x0 0x0>;
 -                              reset-gpios = <&pinctrl_ap 33 0>;
 +                              reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>;
-                               max-link-speed = <1>;
  
                                #address-cells = <3>;
                                #size-cells = <2>;
                };
        };
  };
+ #include "t8103-pmgr.dtsi"
@@@ -7,6 -7,7 +7,7 @@@
   */
  
  #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/soc/samsung,exynos-usi.h>
  
  / {
        compatible = "samsung,exynosautov9";
                        reg = <0x17c20000 0x1000>;
                };
  
-               /* USI: UART */
-               serial_0: uart@10300000 {
-                       compatible = "samsung,exynos850-uart";
-                       reg = <0x10300000 0x100>;
-                       interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&uart0_bus_dual>;
+               syscon_peric0: syscon@10220000 {
+                       compatible = "samsung,exynosautov9-sysreg", "syscon";
+                       reg = <0x10220000 0x2000>;
+               };
+               usi_0: usi@103000c0 {
+                       compatible = "samsung,exynos850-usi";
+                       reg = <0x103000c0 0x20>;
+                       samsung,sysreg = <&syscon_peric0 0x1000>;
+                       samsung,mode = <USI_V2_UART>;
+                       samsung,clkreq-on; /* needed for UART mode */
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
                        clocks = <&uart_clock>, <&uart_clock>;
-                       clock-names = "uart", "clk_uart_baud0";
+                       clock-names = "pclk", "ipclk";
                        status = "disabled";
+                       /* USI: UART */
+                       serial_0: serial@10300000 {
+                               compatible = "samsung,exynos850-uart";
+                               reg = <0x10300000 0xc0>;
+                               interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&uart0_bus_dual>;
+                               clocks = <&uart_clock>, <&uart_clock>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               status = "disabled";
+                       };
                };
  
                ufs_0_phy: ufs0-phy@17e04000 {
                        pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
                        phys = <&ufs_0_phy>;
                        phy-names = "ufs-phy";
 -                      samsung,sysreg = <&syscon_fsys2>;
 -                      samsung,ufs-shareability-reg-offset = <0x710>;
 +                      samsung,sysreg = <&syscon_fsys2 0x710>;
                        status = "disabled";
                };
        };
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
 -                      scl-gpio = <&gpio2 15 GPIO_ACTIVE_HIGH>;
 +                      scl-gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>;
                        status = "disabled";
                };
  
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
 -                      scl-gpio = <&gpio2 16 GPIO_ACTIVE_HIGH>;
 +                      scl-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
                        status = "disabled";
                };
  
                        interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
+                       usb3-lpm-capable;
                        snps,dis_rxdet_inp3_quirk;
                        snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
                        status = "disabled";
                        interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
+                       usb3-lpm-capable;
                        snps,dis_rxdet_inp3_quirk;
                        snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
                        status = "disabled";
                        };
                };
        };
+       firmware {
+               optee: optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+                       status = "disabled";
+               };
+       };
  };
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MQ_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MQ_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MQ_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MQ_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
  
                A53_L2: l2-cache0 {
                        compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <0x100000>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
                };
        };
  
                                clocks = <&clk IMX8MQ_CLK_TMU_ROOT>;
                                little-endian;
                                fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>;
-                               fsl,tmu-calibration = <0x00000000 0x00000023
-                                                      0x00000001 0x00000029
-                                                      0x00000002 0x0000002f
-                                                      0x00000003 0x00000035
-                                                      0x00000004 0x0000003d
-                                                      0x00000005 0x00000043
-                                                      0x00000006 0x0000004b
-                                                      0x00000007 0x00000051
-                                                      0x00000008 0x00000057
-                                                      0x00000009 0x0000005f
-                                                      0x0000000a 0x00000067
-                                                      0x0000000b 0x0000006f
-                                                      0x00010000 0x0000001b
-                                                      0x00010001 0x00000023
-                                                      0x00010002 0x0000002b
-                                                      0x00010003 0x00000033
-                                                      0x00010004 0x0000003b
-                                                      0x00010005 0x00000043
-                                                      0x00010006 0x0000004b
-                                                      0x00010007 0x00000055
-                                                      0x00010008 0x0000005d
-                                                      0x00010009 0x00000067
-                                                      0x0001000a 0x00000070
-                                                      0x00020000 0x00000017
-                                                      0x00020001 0x00000023
-                                                      0x00020002 0x0000002d
-                                                      0x00020003 0x00000037
-                                                      0x00020004 0x00000041
-                                                      0x00020005 0x0000004b
-                                                      0x00020006 0x00000057
-                                                      0x00020007 0x00000063
-                                                      0x00020008 0x0000006f
-                                                      0x00030000 0x00000015
-                                                      0x00030001 0x00000021
-                                                      0x00030002 0x0000002d
-                                                      0x00030003 0x00000039
-                                                      0x00030004 0x00000045
-                                                      0x00030005 0x00000053
-                                                      0x00030006 0x0000005f
-                                                      0x00030007 0x00000071>;
+                               fsl,tmu-calibration = <0x00000000 0x00000023>,
+                                                     <0x00000001 0x00000029>,
+                                                     <0x00000002 0x0000002f>,
+                                                     <0x00000003 0x00000035>,
+                                                     <0x00000004 0x0000003d>,
+                                                     <0x00000005 0x00000043>,
+                                                     <0x00000006 0x0000004b>,
+                                                     <0x00000007 0x00000051>,
+                                                     <0x00000008 0x00000057>,
+                                                     <0x00000009 0x0000005f>,
+                                                     <0x0000000a 0x00000067>,
+                                                     <0x0000000b 0x0000006f>,
+                                                     <0x00010000 0x0000001b>,
+                                                     <0x00010001 0x00000023>,
+                                                     <0x00010002 0x0000002b>,
+                                                     <0x00010003 0x00000033>,
+                                                     <0x00010004 0x0000003b>,
+                                                     <0x00010005 0x00000043>,
+                                                     <0x00010006 0x0000004b>,
+                                                     <0x00010007 0x00000055>,
+                                                     <0x00010008 0x0000005d>,
+                                                     <0x00010009 0x00000067>,
+                                                     <0x0001000a 0x00000070>,
+                                                     <0x00020000 0x00000017>,
+                                                     <0x00020001 0x00000023>,
+                                                     <0x00020002 0x0000002d>,
+                                                     <0x00020003 0x00000037>,
+                                                     <0x00020004 0x00000041>,
+                                                     <0x00020005 0x0000004b>,
+                                                     <0x00020006 0x00000057>,
+                                                     <0x00020007 0x00000063>,
+                                                     <0x00020008 0x0000006f>,
+                                                     <0x00030000 0x00000015>,
+                                                     <0x00030001 0x00000021>,
+                                                     <0x00030002 0x0000002d>,
+                                                     <0x00030003 0x00000039>,
+                                                     <0x00030004 0x00000045>,
+                                                     <0x00030005 0x00000053>,
+                                                     <0x00030006 0x0000005f>,
+                                                     <0x00030007 0x00000071>;
                                #thermal-sensor-cells =  <1>;
                        };
  
                                                  <&clk IMX8MQ_VIDEO_PLL1>,
                                                  <&clk IMX8MQ_VIDEO_PLL1_OUT>;
                                assigned-clock-rates = <0>, <0>, <0>, <594000000>;
 -                              interconnects = <&noc IMX8MQ_ICM_LCDIF &noc IMX8MQ_ICS_DRAM>;
 -                              interconnect-names = "dram";
                                status = "disabled";
  
                                port@0 {
                                fsl,num-rx-queues = <3>;
                                nvmem-cells = <&fec_mac_address>;
                                nvmem-cell-names = "mac-address";
-                               nvmem_macaddr_swap;
                                fsl,stop-mode = <&iomuxc_gpr 0x10 3>;
                                status = "disabled";
                        };
                };
        };
  
+       hdd_a_power: hdd-a-power {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&hdd_a_power_en>;
+               pinctrl-names = "default";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "hdd_a_power";
+               startup-delay-us = <2000000>;
+       };
+       hdd_b_power: hdd-b-power {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&hdd_b_power_en>;
+               pinctrl-names = "default";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "hdd_b_power";
+               startup-delay-us = <2000000>;
+       };
        pcie_power: pcie-power {
                compatible = "regulator-fixed";
                enable-active-high;
                vin-supply = <&vcc5v0_perdev>;
        };
  
+       usblan_power: usblan-power {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_lan_en>;
+               regulator-name = "usblan_power";
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc5v0_usb>;
+       };
        vcc1v8_sys_s0: vcc1v8-sys-s0 {
                compatible = "regulator-fixed";
                regulator-name = "vcc1v8_sys_s0";
                clock-output-names = "xin32k", "rk808-clkout2";
                pinctrl-names = "default";
                pinctrl-0 = <&pmic_int_l>;
 +              rockchip,system-power-controller;
                vcc1-supply = <&vcc5v0_sys>;
                vcc2-supply = <&vcc5v0_sys>;
                vcc3-supply = <&vcc5v0_sys>;
  };
  
  &pcie0 {
+       ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
+       max-link-speed = <2>;
        num-lanes = <2>;
+       pinctrl-names = "default";
        status = "okay";
  
        vpcie12v-supply = <&vcc12v_dcin>;
        };
  
        power {
+               hdd_a_power_en: hdd-a-power-en {
+                       rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               hdd_b_power_en: hdd-b-power-en {
+                       rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
                vcc5v0_usb_en: vcc5v0-usb-en {
                        rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
                };
+               usb_lan_en: usb-lan-en {
+                       rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
        };
  
        vcc3v0-sd {
        usb@fe900000 {
                dr_mode = "host";
                status = "okay";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               hub@1 {
+                       compatible = "usb2109,0815";
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       port@1 {
+                               reg = <1>;
+                               #trigger-source-cells = <0>;
+                       };
+                       port@2 {
+                               reg = <2>;
+                               #trigger-source-cells = <0>;
+                       };
+                       port@3 {
+                               reg = <3>;
+                               #trigger-source-cells = <0>;
+                       };
+                       device@4 {
+                               compatible = "usbbda,8156";
+                               reg = <4>;
+                               #address-cells = <2>;
+                               #size-cells = <0>;
+                               interface@0 {   /* interface 0 of configuration 1 */
+                                       compatible = "usbbda,8156.config1.0";
+                                       reg = <0 1>;
+                               };
+                       };
+               };
        };
  };
@@@ -36,7 -36,7 +36,7 @@@
                reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
        };
  
-       sound {
+       sound: sound {
                compatible = "audio-graph-card";
                label = "Analog";
                dais = <&i2s0_p0>;
        status = "okay";
  
        bt656-supply = <&vcc_3v0>;
 -      audio-supply = <&vcc_3v0>;
 +      audio-supply = <&vcc1v8_codec>;
        sdmmc-supply = <&vcc_sdio>;
        gpio1830-supply = <&vcc_3v0>;
  };
                };
        };
  
+       es8316 {
+               hp_detect: hp-detect {
+                       rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               hp_int: hp-int {
+                       rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
        pcie {
                pcie_pwr_en: pcie-pwr-en {
                        rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;