Merge tag 'usb-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 7 Jun 2020 16:42:16 +0000 (09:42 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 7 Jun 2020 16:42:16 +0000 (09:42 -0700)
Pull USB/PHY driver updates from Greg KH:
 "Here are the large set of USB and PHY driver updates for 5.8-rc1.

  Nothing huge, just lots of little things:

   - USB gadget fixes and additions all over the place

   - new PHY drivers

   - PHY driver fixes and updates

   - XHCI driver updates

   - musb driver updates

   - more USB-serial driver ids added

   - various USB quirks added

   - thunderbolt minor updates and fixes

   - typec updates and additions

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'usb-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (245 commits)
  usb: dwc3: meson-g12a: fix USB2 PHY initialization on G12A and A1 SoCs
  usb: dwc3: meson-g12a: fix error path when fetching the reset line fails
  Revert "dt-bindings: usb: qcom,dwc3: Convert USB DWC3 bindings"
  Revert "dt-bindings: usb: qcom,dwc3: Add compatible for SC7180"
  Revert "dt-bindings: usb: qcom,dwc3: Introduce interconnect properties for Qualcomm DWC3 driver"
  USB: serial: ch341: fix lockup of devices with limited prescaler
  USB: serial: ch341: add basis for quirk detection
  CDC-ACM: heed quirk also in error handling
  USB: serial: option: add Telit LE910C1-EUX compositions
  usb: musb: Fix runtime PM imbalance on error
  usb: musb: jz4740: Prevent lockup when CONFIG_SMP is set
  usb: musb: mediatek: add reset FADDR to zero in reset interrupt handle
  usb: musb: use true for 'use_dma'
  usb: musb: start session in resume for host port
  usb: musb: return -ESHUTDOWN in urb when three-strikes error happened
  USB: serial: qcserial: add DW5816e QDL support
  thunderbolt: Add trivial .shutdown
  usb: dwc3: keystone: Turn on USB3 PHY before controller
  dt-bindings: usb: ti,keystone-dwc3.yaml: Add USB3.0 PHY property
  dt-bindings: usb: convert keystone-usb.txt to YAML
  ...

15 files changed:
1  2 
Documentation/devicetree/bindings/usb/amlogic,meson-g12a-usb-ctrl.yaml
Documentation/devicetree/bindings/usb/aspeed,usb-vhub.yaml
Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
Documentation/devicetree/bindings/usb/usb-xhci.txt
MAINTAINERS
arch/arm/boot/dts/at91sam9g45.dtsi
arch/arm/boot/dts/sama5d2.dtsi
arch/arm/boot/dts/sama5d3.dtsi
arch/arm/boot/dts/sama5d4.dtsi
arch/arm64/boot/dts/qcom/sc7180.dtsi
arch/arm64/boot/dts/qcom/sdm845.dtsi
drivers/gpio/gpiolib-of.c
drivers/thunderbolt/switch.c
drivers/usb/host/pci-quirks.c
drivers/usb/typec/mux/intel_pmc_mux.c

@@@ -25,9 -25,13 +25,13 @@@ description: 
    The Amlogic A1 embeds a DWC3 USB IP Core configured for USB2 in
    host-only mode.
  
+   The Amlogic GXL & GXM SoCs doesn't embed an USB3 PHY.
  properties:
    compatible:
      enum:
+       - amlogic,meson-gxl-usb-ctrl
+       - amlogic,meson-gxm-usb-ctrl
        - amlogic,meson-g12a-usb-ctrl
        - amlogic,meson-a1-usb-ctrl
  
  
    clocks:
      minItems: 1
+     maxItems: 3
+   clock-names:
+     minItems: 1
+     maxItems: 3
  
    resets:
      minItems: 1
      maxItems: 1
  
    phy-names:
-     items:
-       - const: usb2-phy0 # USB2 PHY0 if USBHOST_A port is used
-       - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
-       - const: usb3-phy0 # USB3 PHY if USB3_0 is used
+     minItems: 1
+     maxItems: 3
  
    phys:
      minItems: 1
@@@ -93,10 -100,68 +100,68 @@@ allOf
        properties:
          compatible:
            enum:
+             - amlogic,meson-g12a-usb-ctrl
+     then:
+       properties:
+         phy-names:
+           items:
+             - const: usb2-phy0 # USB2 PHY0 if USBHOST_A port is used
+             - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
+             - const: usb3-phy0 # USB3 PHY if USB3_0 is used
+   - if:
+       properties:
+         compatible:
+           enum:
+             - amlogic,meson-gxl-usb-ctrl
+     then:
+       properties:
+         clocks:
+           minItems: 2
+         clock-names:
+           items:
+             - const: usb_ctrl
+             - const: ddr
+         phy-names:
+           items:
+             - const: usb2-phy0 # USB2 PHY0 if USBHOST_A port is used
+             - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
+       required:
+         - clock-names
+   - if:
+       properties:
+         compatible:
+           enum:
+             - amlogic,meson-gxm-usb-ctrl
+     then:
+       properties:
+         clocks:
+           minItems: 2
+         clock-names:
+           items:
+             - const: usb_ctrl
+             - const: ddr
+         phy-names:
+           items:
+             - const: usb2-phy0 # USB2 PHY0 if USBHOST_A port is used
+             - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
+             - const: usb2-phy2 # USB2 PHY2 if USBOTG_C port is used
+       required:
+         - clock-names
+   - if:
+       properties:
+         compatible:
+           enum:
              - amlogic,meson-a1-usb-ctrl
  
      then:
        properties:
+         phy-names:
+           items:
+             - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
          clocks:
            minItems: 3
          clock-names:
@@@ -111,7 -176,7 +176,7 @@@ examples
    - |
      usb: usb@ffe09000 {
            compatible = "amlogic,meson-g12a-usb-ctrl";
 -          reg = <0x0 0xffe09000 0x0 0xa0>;
 +          reg = <0xffe09000 0xa0>;
            interrupts = <16>;
            #address-cells = <1>;
            #size-cells = <1>;
                snps,quirk-frame-length-adjustment;
            };
      };
 -
@@@ -38,18 -38,73 +38,71 @@@ properties
  
    aspeed,vhub-downstream-ports:
      description: Number of downstream ports supported by the Virtual Hub
 -    allOf:
 -      - $ref: /schemas/types.yaml#/definitions/uint32
 -      - default: 5
 -        minimum: 1
 -        maximum: 7
 +    $ref: /schemas/types.yaml#/definitions/uint32
 +    default: 5
 +    minimum: 1
 +    maximum: 7
  
    aspeed,vhub-generic-endpoints:
      description: Number of generic endpoints supported by the Virtual Hub
 -    allOf:
 -      - $ref: /schemas/types.yaml#/definitions/uint32
 -      - default: 15
 -        minimum: 1
 -        maximum: 21
 +    $ref: /schemas/types.yaml#/definitions/uint32
 +    default: 15
 +    minimum: 1
 +    maximum: 21
  
+   vhub-vendor-id:
+     description: vhub Vendor ID
+     allOf:
+       - $ref: /schemas/types.yaml#/definitions/uint32
+       - maximum: 65535
+   vhub-product-id:
+     description: vhub Product ID
+     allOf:
+       - $ref: /schemas/types.yaml#/definitions/uint32
+       - maximum: 65535
+   vhub-device-revision:
+     description: vhub Device Revision in binary-coded decimal
+     allOf:
+       - $ref: /schemas/types.yaml#/definitions/uint32
+       - maximum: 65535
+   vhub-strings:
+     type: object
+     properties:
+       '#address-cells':
+         const: 1
+       '#size-cells':
+         const: 0
+     patternProperties:
+       '^string@[0-9a-f]+$':
+         type: object
+         description: string descriptors of the specific language
+         properties:
+           reg:
+             maxItems: 1
+             description: 16-bit Language Identifier defined by USB-IF
+           manufacturer:
+             description: vhub manufacturer
+             allOf:
+               - $ref: /schemas/types.yaml#/definitions/string
+           product:
+             description: vhub product name
+             allOf:
+               - $ref: /schemas/types.yaml#/definitions/string
+           serial-number:
+             description: vhub device serial number
+             allOf:
+               - $ref: /schemas/types.yaml#/definitions/string
  required:
    - compatible
    - reg
@@@ -72,4 -127,19 +125,19 @@@ examples
              aspeed,vhub-generic-endpoints = <15>;
              pinctrl-names = "default";
              pinctrl-0 = <&pinctrl_usb2ad_default>;
+             vhub-vendor-id = <0x1d6b>;
+             vhub-product-id = <0x0107>;
+             vhub-device-revision = <0x0100>;
+             vhub-strings {
+                 #address-cells = <1>;
+                 #size-cells = <0>;
+                 string@0409 {
+                         reg = <0x0409>;
+                         manufacturer = "ASPEED";
+                         product = "USB Virtual Hub";
+                         serial-number = "0000";
+                 };
+             };
      };
@@@ -21,6 -21,7 +21,7 @@@ properties
        - enum:
            - nvidia,tegra210-xudc # For Tegra210
            - nvidia,tegra186-xudc # For Tegra186
+           - nvidia,tegra194-xudc # For Tegra194
  
    reg:
      minItems: 2
@@@ -144,6 -145,7 +145,7 @@@ allOf
            contains:
              enum:
                - nvidia,tegra186-xudc
+               - nvidia,tegra194-xudc
      then:
        properties:
          reg:
@@@ -163,9 -165,9 +165,9 @@@ examples
  
      usb@700d0000 {
          compatible = "nvidia,tegra210-xudc";
 -        reg = <0x0 0x700d0000 0x0 0x8000>,
 -              <0x0 0x700d8000 0x0 0x1000>,
 -              <0x0 0x700d9000 0x0 0x1000>;
 +        reg = <0x700d0000 0x8000>,
 +              <0x700d8000 0x1000>,
 +              <0x700d9000 0x1000>;
          reg-names = "base", "fpci", "ipfs";
  
          interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
@@@ -7,7 -7,6 +7,7 @@@ Required properties
      - "marvell,armada3700-xhci" for Armada 37xx SoCs
      - "marvell,armada-375-xhci" for Armada 375 SoCs
      - "marvell,armada-380-xhci" for Armada 38x SoCs
 +    - "renesas,xhci-r8a7742" for r8a7742 SoC
      - "renesas,xhci-r8a7743" for r8a7743 SoC
      - "renesas,xhci-r8a7744" for r8a7744 SoC
      - "renesas,xhci-r8a774a1" for r8a774a1 SoC
@@@ -25,6 -24,7 +25,7 @@@
        device
      - "renesas,rcar-gen3-xhci" for a generic R-Car Gen3 or RZ/G2 compatible
        device
+     - "brcm,bcm7445-xhci" for Broadcom STB SoCs with XHCI
      - "xhci-platform" (deprecated)
  
      When compatible with the generic version, nodes must list the
diff --combined MAINTAINERS
@@@ -147,7 -147,7 +147,7 @@@ Maintainers Lis
  M:    Steffen Klassert <klassert@kernel.org>
  L:    netdev@vger.kernel.org
  S:    Odd Fixes
 -F:    Documentation/networking/device_drivers/3com/vortex.txt
 +F:    Documentation/networking/device_drivers/3com/vortex.rst
  F:    drivers/net/ethernet/3com/3c59x.c
  
  3CR990 NETWORK DRIVER
@@@ -193,7 -193,7 +193,7 @@@ W: https://wireless.wiki.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
  F:    Documentation/driver-api/80211/cfg80211.rst
 -F:    Documentation/networking/regulatory.txt
 +F:    Documentation/networking/regulatory.rst
  F:    include/linux/ieee80211.h
  F:    include/net/cfg80211.h
  F:    include/net/ieee80211_radiotap.h
@@@ -815,7 -815,7 +815,7 @@@ R: Saeed Bishara <saeedb@amazon.com
  R:    Zorik Machulsky <zorik@amazon.com>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    Documentation/networking/device_drivers/amazon/ena.txt
 +F:    Documentation/networking/device_drivers/amazon/ena.rst
  F:    drivers/net/ethernet/amazon/
  
  AMAZON RDMA EFA DRIVER
@@@ -842,13 -842,6 +842,13 @@@ S:       Supporte
  T:    git git://people.freedesktop.org/~agd5f/linux
  F:    drivers/gpu/drm/amd/display/
  
 +AMD ENERGY DRIVER
 +M:    Naveen Krishna Chatradhi <nchatrad@amd.com>
 +L:    linux-hwmon@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/hwmon/amd_energy.rst
 +F:    drivers/hwmon/amd_energy.c
 +
  AMD FAM15H PROCESSOR POWER MONITORING DRIVER
  M:    Huang Rui <ray.huang@amd.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -899,11 -892,6 +899,11 @@@ F:       drivers/gpu/drm/amd/include/v9_struc
  F:    drivers/gpu/drm/amd/include/vi_structs.h
  F:    include/uapi/linux/kfd_ioctl.h
  
 +AMD SPI DRIVER
 +M:    Sanjay R Mehta <sanju.mehta@amd.com>
 +S:    Maintained
 +F:    drivers/spi/spi-amd.c
 +
  AMD MP2 I2C DRIVER
  M:    Elie Morisse <syniurge@gmail.com>
  M:    Nehal Shah <nehal-bakulchandra.shah@amd.com>
@@@ -1286,7 -1274,7 +1286,7 @@@ L:      netdev@vger.kernel.or
  S:    Supported
  W:    https://www.marvell.com/
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
 -F:    Documentation/networking/device_drivers/aquantia/atlantic.txt
 +F:    Documentation/networking/device_drivers/aquantia/atlantic.rst
  F:    drivers/net/ethernet/aquantia/atlantic/
  
  AQUANTIA ETHERNET DRIVER PTP SUBSYSTEM
@@@ -1350,11 -1338,10 +1350,11 @@@ F:   arch/arm/mach-integrator
  F:    arch/arm/mach-realview/
  F:    arch/arm/mach-versatile/
  F:    arch/arm/plat-versatile/
 +F:    drivers/bus/arm-integrator-lm.c
  F:    drivers/clk/versatile/
  F:    drivers/i2c/busses/i2c-versatile.c
  F:    drivers/irqchip/irq-versatile-fpga.c
 -F:    drivers/mtd/maps/physmap_of_versatile.c
 +F:    drivers/mtd/maps/physmap-versatile.*
  F:    drivers/power/reset/arm-versatile-reboot.c
  F:    drivers/soc/versatile/
  
@@@ -1469,13 -1456,6 +1469,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/interrupt-controller/arm,vic.txt
  F:    drivers/irqchip/irq-vic.c
  
 +ARM SMC WATCHDOG DRIVER
 +M:    Julius Werner <jwerner@chromium.org>
 +R:    Evan Benn <evanbenn@chromium.org>
 +S:    Maintained
 +F:    devicetree/bindings/watchdog/arm-smc-wdt.yaml
 +F:    drivers/watchdog/arm_smc_wdt.c
 +
  ARM SMMU DRIVERS
  M:    Will Deacon <will@kernel.org>
  R:    Robin Murphy <robin.murphy@arm.com>
@@@ -1704,6 -1684,11 +1704,6 @@@ S:     Maintaine
  T:    git git://git.armlinux.org.uk/~rmk/linux-arm.git clkdev
  F:    drivers/clk/clkdev.c
  
 -ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT
 -M:    Mike Rapoport <mike@compulab.co.il>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 -
  ARM/CONEXANT DIGICOLOR MACHINE SUPPORT
  M:    Baruch Siach <baruch@tkos.co.il>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -2012,7 -1997,6 +2012,7 @@@ F:      arch/arm/mach-dove
  F:    arch/arm/mach-mv78xx0/
  F:    arch/arm/mach-orion5x/
  F:    arch/arm/plat-orion/
 +F:    drivers/soc/dove/
  
  ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K, CN9130 SOC support
  M:    Jason Cooper <jason@lakedaemon.net>
@@@ -2241,7 -2225,6 +2241,7 @@@ F:      drivers/*/qcom
  F:    drivers/*/qcom/
  F:    drivers/bluetooth/btqcomsmd.c
  F:    drivers/clocksource/timer-qcom.c
 +F:    drivers/cpuidle/cpuidle-qcom-spm.c
  F:    drivers/extcon/extcon-qcom*
  F:    drivers/i2c/busses/i2c-qcom-geni.c
  F:    drivers/i2c/busses/i2c-qup.c
@@@ -2289,8 -2272,6 +2289,8 @@@ L:      linux-arm-kernel@lists.infradead.or
  L:    linux-realtek-soc@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/realtek.yaml
 +F:    arch/arm/boot/dts/rtd*
 +F:    arch/arm/mach-realtek/
  F:    arch/arm64/boot/dts/realtek/
  
  ARM/RENESAS ARM64 ARCHITECTURE
@@@ -2713,8 -2694,8 +2713,8 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Supported
  W:    http://wiki.xilinx.com
  T:    git https://github.com/Xilinx/linux-xlnx.git
 -F:    Documentation/devicetree/bindings/i2c/i2c-cadence.txt
 -F:    Documentation/devicetree/bindings/i2c/i2c-xiic.txt
 +F:    Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml
 +F:    Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml
  F:    arch/arm/mach-zynq/
  F:    drivers/block/xsysace.c
  F:    drivers/clocksource/timer-cadence-ttc.c
@@@ -3210,7 -3191,7 +3210,7 @@@ Q:      https://patchwork.ozlabs.org/project
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
  F:    Documentation/bpf/
 -F:    Documentation/networking/filter.txt
 +F:    Documentation/networking/filter.rst
  F:    arch/*/net/*
  F:    include/linux/bpf*
  F:    include/linux/filter.h
@@@ -3339,7 -3320,7 +3339,7 @@@ L:      bcm-kernel-feedback-list@broadcom.co
  L:    linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://github.com/anholt/linux
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nsaenz/linux-rpi.git
  F:    Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
  F:    drivers/pci/controller/pcie-brcmstb.c
  F:    drivers/staging/vc04_services
@@@ -3500,6 -3481,14 +3500,14 @@@ S:    Supporte
  F:    Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml
  F:    drivers/i2c/busses/i2c-brcmstb.c
  
+ BROADCOM BRCMSTB USB EHCI DRIVER
+ M:    Al Cooper <alcooperx@gmail.com>
+ L:    linux-usb@vger.kernel.org
+ L:    bcm-kernel-feedback-list@broadcom.com
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml
+ F:    drivers/usb/host/ehci-brcm.*
  BROADCOM BRCMSTB USB2 and USB3 PHY DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
  L:    linux-kernel@vger.kernel.org
@@@ -3688,7 -3677,7 +3696,7 @@@ L:      linux-media@vger.kernel.or
  S:    Odd fixes
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/bttv*
 +F:    Documentation/driver-api/media/drivers/bttv*
  F:    drivers/media/pci/bt8xx/bttv*
  
  BUS FREQUENCY DRIVER FOR SAMSUNG EXYNOS
@@@ -3749,7 -3738,7 +3757,7 @@@ CACHEFILES: FS-CACHE BACKEND FOR CACHIN
  M:    David Howells <dhowells@redhat.com>
  L:    linux-cachefs@redhat.com (moderated for non-subscribers)
  S:    Supported
 -F:    Documentation/filesystems/caching/cachefiles.txt
 +F:    Documentation/filesystems/caching/cachefiles.rst
  F:    fs/cachefiles/
  
  CADENCE MIPI-CSI2 BRIDGES
@@@ -3779,7 -3768,7 +3787,7 @@@ M:      Jonathan Corbet <corbet@lwn.net
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/cafe_ccic*
 +F:    Documentation/admin-guide/media/cafe_ccic*
  F:    drivers/media/platform/marvell-ccic/
  
  CAIF NETWORK LAYER
@@@ -3915,15 -3904,6 +3923,15 @@@ S:    Supporte
  W:    https://developer.arm.com/products/system-ip/trustzone-cryptocell/cryptocell-700-family
  F:    drivers/crypto/ccree/
  
 +CCTRNG ARM TRUSTZONE CRYPTOCELL TRUE RANDOM NUMBER GENERATOR (TRNG) DRIVER
 +M:    Hadar Gat <hadar.gat@arm.com>
 +L:    linux-crypto@vger.kernel.org
 +S:    Supported
 +F:    drivers/char/hw_random/cctrng.c
 +F:    drivers/char/hw_random/cctrng.h
 +F:    Documentation/devicetree/bindings/rng/arm-cctrng.txt
 +W:    https://developer.arm.com/products/system-ip/trustzone-cryptocell/cryptocell-700-family
 +
  CEC FRAMEWORK
  M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -3932,8 -3912,8 +3940,8 @@@ W:      http://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/ABI/testing/debugfs-cec-error-inj
  F:    Documentation/devicetree/bindings/media/cec.txt
 -F:    Documentation/media/kapi/cec-core.rst
 -F:    Documentation/media/uapi/cec
 +F:    Documentation/driver-api/media/cec-core.rst
 +F:    Documentation/userspace-api/media/cec
  F:    drivers/media/cec/
  F:    drivers/media/rc/keymaps/rc-cec.c
  F:    include/media/cec-notifier.h
@@@ -4088,11 -4068,12 +4096,11 @@@ M:   Charles Keepax <ckeepax@opensource.c
  M:    Richard Fitzgerald <rf@opensource.cirrus.com>
  L:    patches@opensource.cirrus.com
  S:    Supported
 -F:    Documentation/devicetree/bindings/clock/cirrus,lochnagar.txt
 -F:    Documentation/devicetree/bindings/hwmon/cirrus,lochnagar.txt
 -F:    Documentation/devicetree/bindings/mfd/cirrus,lochnagar.txt
 -F:    Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.txt
 -F:    Documentation/devicetree/bindings/regulator/cirrus,lochnagar.txt
 -F:    Documentation/devicetree/bindings/sound/cirrus,lochnagar.txt
 +F:    Documentation/devicetree/bindings/clock/cirrus,lochnagar.yaml
 +F:    Documentation/devicetree/bindings/hwmon/cirrus,lochnagar.yaml
 +F:    Documentation/devicetree/bindings/mfd/cirrus,lochnagar.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
 +F:    Documentation/devicetree/bindings/sound/cirrus,lochnagar.yaml
  F:    Documentation/hwmon/lochnagar.rst
  F:    drivers/clk/clk-lochnagar.c
  F:    drivers/hwmon/lochnagar-hwmon.c
@@@ -4112,9 -4093,9 +4120,9 @@@ L:      patches@opensource.cirrus.co
  S:    Supported
  W:    https://github.com/CirrusLogic/linux-drivers/wiki
  T:    git https://github.com/CirrusLogic/linux-drivers.git
 -F:    Documentation/devicetree/bindings/mfd/madera.txt
 -F:    Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt
 -F:    Documentation/devicetree/bindings/sound/madera.txt
 +F:    Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml
 +F:    Documentation/devicetree/bindings/sound/cirrus,madera.yaml
  F:    drivers/gpio/gpio-madera*
  F:    drivers/irqchip/irq-madera*
  F:    drivers/mfd/cs47l*
@@@ -4225,7 -4206,7 +4233,7 @@@ M:      coda@cs.cmu.ed
  L:    codalist@coda.cs.cmu.edu
  S:    Maintained
  W:    http://www.coda.cs.cmu.edu/
 -F:    Documentation/filesystems/coda.txt
 +F:    Documentation/filesystems/coda.rst
  F:    fs/coda/
  F:    include/linux/coda*.h
  F:    include/uapi/linux/coda*.h
@@@ -4564,7 -4545,7 +4572,7 @@@ L:      linux-media@vger.kernel.or
  S:    Odd fixes
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/cx88*
 +F:    Documentation/driver-api/media/drivers/cx88*
  F:    drivers/media/pci/cx88/
  
  CXD2820R MEDIA DRIVER
@@@ -4716,7 -4697,7 +4724,7 @@@ F:      net/ax25/sysctl_net_ax25.
  DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
  L:    netdev@vger.kernel.org
  S:    Orphan
 -F:    Documentation/networking/device_drivers/dec/dmfe.txt
 +F:    Documentation/networking/device_drivers/dec/dmfe.rst
  F:    drivers/net/ethernet/dec/tulip/dmfe.c
  
  DC390/AM53C974 SCSI driver
@@@ -4750,7 -4731,7 +4758,7 @@@ DECnet NETWORK LAYE
  L:    linux-decnet-user@lists.sourceforge.net
  S:    Orphan
  W:    http://linux-decnet.sourceforge.net
 -F:    Documentation/networking/decnet.txt
 +F:    Documentation/networking/decnet.rst
  F:    net/decnet/
  
  DECSTATION PLATFORM SUPPORT
@@@ -5018,7 -4999,7 +5026,7 @@@ M:      Jan Kara <jack@suse.cz
  R:    Amir Goldstein <amir73il@gmail.com>
  L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
 -F:    Documentation/filesystems/dnotify.txt
 +F:    Documentation/filesystems/dnotify.rst
  F:    fs/notify/dnotify/
  F:    include/linux/dnotify.h
  
@@@ -5032,7 -5013,7 +5040,7 @@@ W:      http://www.win.tue.nl/~aeb/partition
  DISKQUOTA
  M:    Jan Kara <jack@suse.com>
  S:    Maintained
 -F:    Documentation/filesystems/quota.txt
 +F:    Documentation/filesystems/quota.rst
  F:    fs/quota/
  F:    include/linux/quota*.h
  F:    include/uapi/linux/quota*.h
@@@ -5067,7 -5048,7 +5075,7 @@@ F:      drivers/dma-buf
  F:    include/linux/*fence.h
  F:    include/linux/dma-buf*
  F:    include/linux/dma-resv.h
 -K:    dma_(buf|fence|resv)
 +K:    \bdma_(?:buf|fence|resv)\b
  
  DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
  M:    Vinod Koul <vkoul@kernel.org>
@@@ -5147,14 -5128,12 +5155,14 @@@ F:   scripts/documentation-file-ref-chec
  F:    scripts/kernel-doc
  F:    scripts/sphinx-pre-install
  X:    Documentation/ABI/
 +X:    Documentation/admin-guide/media/
  X:    Documentation/devicetree/
 +X:    Documentation/driver-api/media/
  X:    Documentation/firmware-guide/acpi/
  X:    Documentation/i2c/
 -X:    Documentation/media/
  X:    Documentation/power/
  X:    Documentation/spi/
 +X:    Documentation/userspace-api/media/
  
  DOCUMENTATION SCRIPTS
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
@@@ -5281,7 -5260,7 +5289,7 @@@ DRM DRIVER FOR ARM VERSATILE TFT PANEL
  M:    Linus Walleij <linus.walleij@linaro.org>
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    Documentation/devicetree/bindings/display/panel/arm,versatile-tft-panel.txt
 +F:    Documentation/devicetree/bindings/display/panel/arm,versatile-tft-panel.yaml
  F:    drivers/gpu/drm/panel/panel-arm-versatile.c
  
  DRM DRIVER FOR ASPEED BMC GFX
@@@ -5307,7 -5286,7 +5315,7 @@@ F:      drivers/gpu/drm/bochs
  DRM DRIVER FOR BOE HIMAX8279D PANELS
  M:    Jerry Han <hanxu5@huaqin.corp-partner.google.com>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/display/panel/boe,himax8279d.txt
 +F:    Documentation/devicetree/bindings/display/panel/boe,himax8279d.yaml
  F:    drivers/gpu/drm/panel/panel-boe-himax8279d.c
  
  DRM DRIVER FOR FARADAY TVE200 TV ENCODER
@@@ -5325,7 -5304,7 +5333,7 @@@ F:      drivers/gpu/drm/panel/panel-feixin-k
  DRM DRIVER FOR FEIYANG FY07024DI26A30-D MIPI-DSI LCD PANELS
  M:    Jagan Teki <jagan@amarulasolutions.com>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/display/panel/feiyang,fy07024di26a30d.txt
 +F:    Documentation/devicetree/bindings/display/panel/feiyang,fy07024di26a30d.yaml
  F:    drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
  
  DRM DRIVER FOR GRAIN MEDIA GM12U320 PROJECTORS
@@@ -5360,14 -5339,6 +5368,14 @@@ S:    Orphan / Obsolet
  F:    drivers/gpu/drm/i810/
  F:    include/uapi/drm/i810_drm.h
  
 +DRM DRIVER FOR LVDS PANELS
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    dri-devel@lists.freedesktop.org
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +S:    Maintained
 +F:    drivers/gpu/drm/panel/panel-lvds.c
 +F:    Documentation/devicetree/bindings/display/panel/lvds.yaml
 +
  DRM DRIVER FOR MATROX G200/G400 GRAPHICS CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/mga/
@@@ -5416,7 -5387,7 +5424,7 @@@ F:      include/uapi/drm/nouveau_drm.
  DRM DRIVER FOR OLIMEX LCD-OLINUXINO PANELS
  M:    Stefan Mavrodiev <stefan@olimex.com>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt
 +F:    Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.yaml
  F:    drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
  
  DRM DRIVER FOR PERVASIVE DISPLAYS REPAPER PANELS
@@@ -5433,7 -5404,7 +5441,7 @@@ L:      virtualization@lists.linux-foundatio
  S:    Obsolete
  W:    https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/
  T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    drivers/gpu/drm/cirrus/
 +F:    drivers/gpu/drm/tiny/cirrus.c
  
  DRM DRIVER FOR QXL VIRTUAL GPU
  M:    Dave Airlie <airlied@redhat.com>
@@@ -5483,7 -5454,7 +5491,7 @@@ F:      drivers/gpu/drm/tiny/st7586.
  DRM DRIVER FOR SITRONIX ST7701 PANELS
  M:    Jagan Teki <jagan@amarulasolutions.com>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/display/panel/sitronix,st7701.txt
 +F:    Documentation/devicetree/bindings/display/panel/sitronix,st7701.yaml
  F:    drivers/gpu/drm/panel/panel-sitronix-st7701.c
  
  DRM DRIVER FOR SITRONIX ST7735R PANELS
@@@ -5544,10 -5515,10 +5552,10 @@@ F:   drivers/gpu/drm/vboxvideo
  
  DRM DRIVER FOR VMWARE VIRTUAL GPU
  M:    "VMware Graphics" <linux-graphics-maintainer@vmware.com>
 -M:    Thomas Hellstrom <thellstrom@vmware.com>
 +M:    Roland Scheidegger <sroland@vmware.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
 -T:    git git://people.freedesktop.org/~thomash/linux
 +T:    git git://people.freedesktop.org/~sroland/linux
  F:    drivers/gpu/drm/vmwgfx/
  F:    include/uapi/drm/vmwgfx_drm.h
  
@@@ -6209,6 -6180,7 +6217,6 @@@ M:      Yash Shah <yash.shah@sifive.com
  L:    linux-edac@vger.kernel.org
  S:    Supported
  F:    drivers/edac/sifive_edac.c
 -F:    drivers/soc/sifive_l2_cache.c
  
  EDAC-SKYLAKE
  M:    Tony Luck <tony.luck@intel.com>
@@@ -6268,7 -6240,7 +6276,7 @@@ L:      linux-media@vger.kernel.or
  S:    Maintained
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/em28xx*
 +F:    Documentation/admin-guide/media/em28xx*
  F:    drivers/media/usb/em28xx/
  
  EMBEDDED LINUX
@@@ -6749,13 -6721,6 +6757,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/crypto/fsl-sec4.txt
  F:    drivers/crypto/caam/
  
 +FREESCALE COLDFIRE M5441X MMC DRIVER
 +M:    Angelo Dureghello <angelo.dureghello@timesys.com>
 +L:    linux-mmc@vger.kernel.org
 +S:    Maintained
 +F:    drivers/mmc/host/sdhci-esdhc-mcf.c
 +F:    include/linux/platform_data/mmc-esdhc-mcf.h
 +
  FREESCALE DIU FRAMEBUFFER DRIVER
  M:    Timur Tabi <timur@kernel.org>
  L:    linux-fbdev@vger.kernel.org
@@@ -7063,24 -7028,13 +7071,24 @@@ R:   Darren Hart <dvhart@infradead.org
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
 -F:    Documentation/*futex*
 +F:    Documentation/locking/*futex*
  F:    include/asm-generic/futex.h
  F:    include/linux/futex.h
  F:    include/uapi/linux/futex.h
  F:    kernel/futex.c
  F:    tools/perf/bench/futex*
 -F:    tools/testing/selftests/futex/
 +F:    Documentation/locking/*futex*
 +
 +GATEWORKS SYSTEM CONTROLLER (GSC) DRIVER
 +M:    Tim Harvey <tharvey@gateworks.com>
 +M:    Robert Jones <rjones@gateworks.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml
 +F:    drivers/mfd/gateworks-gsc.c
 +F:    include/linux/mfd/gsc.h
 +F:    Documentation/hwmon/gsc-hwmon.rst
 +F:    drivers/hwmon/gsc-hwmon.c
 +F:    include/linux/platform_data/gsc_hwmon.h
  
  GASKET DRIVER FRAMEWORK
  M:    Rob Springer <rspringer@google.com>
@@@ -7283,13 -7237,6 +7291,13 @@@ F:    Documentation/firmware-guide/acpi/gp
  F:    drivers/gpio/gpiolib-acpi.c
  F:    drivers/gpio/gpiolib-acpi.h
  
 +GPIO AGGREGATOR
 +M:    Geert Uytterhoeven <geert+renesas@glider.be>
 +L:    linux-gpio@vger.kernel.org
 +S:    Supported
 +F:    Documentation/admin-guide/gpio/gpio-aggregator.rst
 +F:    drivers/gpio/gpio-aggregator.c
 +
  GPIO IR Transmitter
  M:    Sean Young <sean@mess.org>
  L:    linux-media@vger.kernel.org
@@@ -7303,12 -7250,6 +7311,12 @@@ S:    Maintaine
  F:    drivers/gpio/gpio-mockup.c
  F:    tools/testing/selftests/gpio/
  
 +GPIO REGMAP
 +R:    Michael Walle <michael@walle.cc>
 +S:    Maintained
 +F:    drivers/gpio/gpio-regmap.c
 +F:    include/linux/gpio/regmap.h
 +
  GPIO SUBSYSTEM
  M:    Linus Walleij <linus.walleij@linaro.org>
  M:    Bartosz Golaszewski <bgolaszewski@baylibre.com>
@@@ -7522,7 -7463,7 +7530,7 @@@ L:      linux-media@vger.kernel.or
  L:    linux-rockchip@lists.infradead.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/nxp,imx8mq-vpu.yaml
 -F:    Documentation/devicetree/bindings/media/rockchip-vpu.txt
 +F:    Documentation/devicetree/bindings/media/rockchip-vpu.yaml
  F:    drivers/staging/media/hantro/
  
  HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
@@@ -7563,7 -7504,7 +7571,7 @@@ L:      linux-remoteproc@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc.git hwspinlock-next
  F:    Documentation/devicetree/bindings/hwlock/
 -F:    Documentation/hwspinlock.txt
 +F:    Documentation/locking/hwspinlock.rst
  F:    drivers/hwspinlock/
  F:    include/linux/hwspinlock.h
  
@@@ -7796,9 -7737,7 +7804,9 @@@ L:      linux-mm@kvack.or
  S:    Maintained
  F:    Documentation/vm/hmm.rst
  F:    include/linux/hmm*
 +F:    lib/test_hmm*
  F:    mm/hmm*
 +F:    tools/testing/selftests/vm/*hmm*
  
  HOST AP DRIVER
  M:    Jouni Malinen <j@w1.fi>
@@@ -7872,10 -7811,10 +7880,10 @@@ F:   Documentation/devicetree/bindings/ii
  F:    drivers/iio/humidity/hts221*
  
  HUAWEI ETHERNET DRIVER
 -M:    Aviad Krawczyk <aviad.krawczyk@huawei.com>
 +M:    Bin Luo <luobin9@huawei.com>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    Documentation/networking/hinic.txt
 +F:    Documentation/networking/hinic.rst
  F:    drivers/net/ethernet/huawei/hinic/
  
  HUGETLB FILESYSTEM
@@@ -7898,7 -7837,7 +7906,7 @@@ T:      git git://linuxtv.org/media_tree.gi
  F:    drivers/media/platform/sti/hva
  
  HWPOISON MEMORY FAILURE HANDLING
 -M:    Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
 +M:    Naoya Horiguchi <naoya.horiguchi@nec.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/hwpoison-inject.c
@@@ -7927,7 -7866,7 +7935,7 @@@ S:      Supporte
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
  F:    Documentation/ABI/stable/sysfs-bus-vmbus
  F:    Documentation/ABI/testing/debugfs-hyperv
 -F:    Documentation/networking/device_drivers/microsoft/netvsc.txt
 +F:    Documentation/networking/device_drivers/microsoft/netvsc.rst
  F:    arch/x86/hyperv
  F:    arch/x86/include/asm/hyperv-tlfs.h
  F:    arch/x86/include/asm/mshyperv.h
@@@ -7944,7 -7883,6 +7952,7 @@@ F:      drivers/pci/controller/pci-hyperv.
  F:    drivers/scsi/storvsc_drv.c
  F:    drivers/uio/uio_hv_generic.c
  F:    drivers/video/fbdev/hyperv_fb.c
 +F:    include/asm-generic/hyperv-tlfs.h
  F:    include/asm-generic/mshyperv.h
  F:    include/clocksource/hyperv_timer.h
  F:    include/linux/hyperv.h
@@@ -8011,7 -7949,7 +8019,7 @@@ F:      Documentation/i2c/busses/i2c-parport
  F:    drivers/i2c/busses/i2c-parport.c
  
  I2C SUBSYSTEM
 -M:    Wolfram Sang <wsa@the-dreams.de>
 +M:    Wolfram Sang <wsa@kernel.org>
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
  W:    https://i2c.wiki.kernel.org/
@@@ -8561,13 -8499,6 +8569,13 @@@ L:    platform-driver-x86@vger.kernel.or
  S:    Maintained
  F:    drivers/platform/x86/intel_atomisp2_pm.c
  
 +INTEL BROXTON PMC DRIVER
 +M:    Mika Westerberg <mika.westerberg@linux.intel.com>
 +M:    Zha Qipeng <qipeng.zha@intel.com>
 +S:    Maintained
 +F:    drivers/mfd/intel_pmc_bxt.c
 +F:    include/linux/mfd/intel_pmc_bxt.h
 +
  INTEL C600 SERIES SAS CONTROLLER DRIVER
  M:    Intel SCU Linux support <intel-linux-scu@intel.com>
  M:    Artur Paszkiewicz <artur.paszkiewicz@intel.com>
@@@ -8714,18 -8645,16 +8722,18 @@@ M:   Bingbu Cao <bingbu.cao@intel.com
  R:    Tian Shu Qiu <tian.shu.qiu@intel.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    Documentation/media/uapi/v4l/pixfmt-srggb10-ipu3.rst
 +F:    Documentation/userspace-api/media/v4l/pixfmt-srggb10-ipu3.rst
  F:    drivers/media/pci/intel/ipu3/
  
  INTEL IPU3 CSI-2 IMGU DRIVER
  M:    Sakari Ailus <sakari.ailus@linux.intel.com>
 +R:    Bingbu Cao <bingbu.cao@intel.com>
 +R:    Tian Shu Qiu <tian.shu.qiu@intel.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    Documentation/media/uapi/v4l/pixfmt-meta-intel-ipu3.rst
 -F:    Documentation/media/v4l-drivers/ipu3.rst
 -F:    Documentation/media/v4l-drivers/ipu3_rcb.svg
 +F:    Documentation/admin-guide/media/ipu3.rst
 +F:    Documentation/admin-guide/media/ipu3_rcb.svg
 +F:    Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst
  F:    drivers/staging/media/ipu3/
  
  INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT
@@@ -8777,13 -8706,6 +8785,13 @@@ F:    include/uapi/linux/mic_common.
  F:    include/uapi/linux/mic_ioctl.h
  F:    include/uapi/linux/scif_ioctl.h
  
 +INTEL P-Unit IPC DRIVER
 +M:    Zha Qipeng <qipeng.zha@intel.com>
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    arch/x86/include/asm/intel_punit_ipc.h
 +F:    drivers/platform/x86/intel_punit_ipc.c
 +
  INTEL PMC CORE DRIVER
  M:    Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
  M:    Vishwanath Somayaji <vishwanath.somayaji@intel.com>
@@@ -8791,6 -8713,15 +8799,6 @@@ L:     platform-driver-x86@vger.kernel.or
  S:    Maintained
  F:    drivers/platform/x86/intel_pmc_core*
  
 -INTEL PMC/P-Unit IPC DRIVER
 -M:    Zha Qipeng<qipeng.zha@intel.com>
 -L:    platform-driver-x86@vger.kernel.org
 -S:    Maintained
 -F:    arch/x86/include/asm/intel_pmc_ipc.h
 -F:    arch/x86/include/asm/intel_punit_ipc.h
 -F:    drivers/platform/x86/intel_pmc_ipc.c
 -F:    drivers/platform/x86/intel_punit_ipc.c
 -
  INTEL PMIC GPIO DRIVERS
  M:    Andy Shevchenko <andy@kernel.org>
  S:    Maintained
@@@ -8810,8 -8741,8 +8818,8 @@@ INTEL PRO/WIRELESS 2100, 2200BG, 2915AB
  M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
  L:    linux-wireless@vger.kernel.org
  S:    Maintained
 -F:    Documentation/networking/device_drivers/intel/ipw2100.txt
 -F:    Documentation/networking/device_drivers/intel/ipw2200.txt
 +F:    Documentation/networking/device_drivers/intel/ipw2100.rst
 +F:    Documentation/networking/device_drivers/intel/ipw2200.rst
  F:    drivers/net/wireless/intel/ipw2x00/
  
  INTEL PSTATE DRIVER
@@@ -8829,12 -8760,6 +8837,12 @@@ S:    Supporte
  F:    drivers/infiniband/hw/i40iw/
  F:    include/uapi/rdma/i40iw-abi.h
  
 +INTEL SCU DRIVERS
 +M:    Mika Westerberg <mika.westerberg@linux.intel.com>
 +S:    Maintained
 +F:    arch/x86/include/asm/intel_scu_ipc.h
 +F:    drivers/platform/x86/intel_scu_*
 +
  INTEL SPEED SELECT TECHNOLOGY
  M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -8901,13 -8826,6 +8909,13 @@@ F:    Documentation/admin-guide/wimax/i240
  F:    drivers/net/wimax/i2400m/
  F:    include/uapi/linux/wimax/i2400m.h
  
 +INTEL WMI SLIM BOOTLOADER (SBL) FIRMWARE UPDATE DRIVER
 +M:    Jithu Joseph <jithu.joseph@intel.com>
 +R:    Maurice Ma <maurice.ma@intel.com>
 +S:    Maintained
 +W:    https://slimbootloader.github.io/security/firmware-update.html
 +F:    drivers/platform/x86/intel-wmi-sbl-fw-update.c
 +
  INTEL WMI THUNDERBOLT FORCE POWER DRIVER
  M:    Mario Limonciello <mario.limonciello@dell.com>
  S:    Maintained
@@@ -8993,7 -8911,7 +9001,7 @@@ M:      Corey Minyard <minyard@acm.org
  L:    openipmi-developer@lists.sourceforge.net (moderated for non-subscribers)
  S:    Supported
  W:    http://openipmi.sourceforge.net/
 -F:    Documentation/IPMI.txt
 +F:    Documentation/driver-api/ipmi.rst
  F:    Documentation/devicetree/bindings/ipmi/
  F:    drivers/char/ipmi/
  F:    include/linux/ipmi*
@@@ -9015,7 -8933,7 +9023,7 @@@ L:      lvs-devel@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs-next.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git
 -F:    Documentation/networking/ipvs-sysctl.txt
 +F:    Documentation/networking/ipvs-sysctl.rst
  F:    include/net/ip_vs.h
  F:    include/uapi/linux/ip_vs.h
  F:    net/netfilter/ipvs/
@@@ -9035,7 -8953,7 +9043,7 @@@ IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY
  M:    Marc Zyngier <maz@kernel.org>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
 -F:    Documentation/IRQ-domain.txt
 +F:    Documentation/core-api/irq/irq-domain.rst
  F:    include/linux/irqdomain.h
  F:    kernel/irq/irqdomain.c
  F:    kernel/irq/msi.c
@@@ -9160,7 -9078,7 +9168,7 @@@ L:      linux-media@vger.kernel.or
  S:    Maintained
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/ivtv*
 +F:    Documentation/admin-guide/media/ivtv*
  F:    drivers/media/pci/ivtv/
  F:    include/uapi/linux/ivtv*
  
@@@ -9275,11 -9193,6 +9283,11 @@@ L:    kexec@lists.infradead.or
  S:    Maintained
  W:    http://lse.sourceforge.net/kdump/
  F:    Documentation/admin-guide/kdump/
 +F:    fs/proc/vmcore.c
 +F:    include/linux/crash_core.h
 +F:    include/linux/crash_dump.h
 +F:    include/uapi/linux/vmcore.h
 +F:    kernel/crash_*.c
  
  KEENE FM RADIO TRANSMITTER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
@@@ -9390,6 -9303,7 +9398,6 @@@ F:      arch/arm64/include/asm/kvm
  F:    arch/arm64/include/uapi/asm/kvm*
  F:    arch/arm64/kvm/
  F:    include/kvm/arm_*
 -F:    virt/kvm/arm/
  
  KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
  L:    linux-mips@vger.kernel.org
@@@ -9600,7 -9514,7 +9608,7 @@@ F:      drivers/soc/lanti
  LAPB module
  L:    linux-x25@vger.kernel.org
  S:    Orphan
 -F:    Documentation/networking/lapb-module.txt
 +F:    Documentation/networking/lapb-module.rst
  F:    include/*/lapb.h
  F:    net/lapb/
  
@@@ -9814,13 -9728,6 +9822,13 @@@ F:    drivers/lightnvm
  F:    include/linux/lightnvm.h
  F:    include/uapi/linux/lightnvm.h
  
 +LINEAR RANGES HELPERS
 +M:    Mark Brown <broonie@kernel.org>
 +R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
 +F:    lib/linear_ranges.c
 +F:    lib/test_linear_ranges.c
 +F:    include/linux/linear_range.h
 +
  LINUX FOR POWER MACINTOSH
  M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -9887,7 -9794,7 +9895,7 @@@ F:      arch/powerpc/platforms/83xx
  F:    arch/powerpc/platforms/85xx/
  
  LINUX FOR POWERPC EMBEDDED PPC8XX
 -M:    Christophe Leroy <christophe.leroy@c-s.fr>
 +M:    Christophe Leroy <christophe.leroy@csgroup.eu>
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Maintained
  F:    arch/powerpc/platforms/8xx/
@@@ -9947,12 -9854,10 +9955,12 @@@ S:   Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching.git
  F:    Documentation/ABI/testing/sysfs-kernel-livepatch
  F:    Documentation/livepatch/
 +F:    arch/powerpc/include/asm/livepatch.h
 +F:    arch/s390/include/asm/livepatch.h
  F:    arch/x86/include/asm/livepatch.h
 -F:    arch/x86/kernel/livepatch.c
  F:    include/linux/livepatch.h
  F:    kernel/livepatch/
 +F:    lib/livepatch/
  F:    samples/livepatch/
  F:    tools/testing/selftests/livepatch/
  
@@@ -10051,7 -9956,7 +10059,7 @@@ F:    drivers/hid/hid-lg-g15.
  
  LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
  M:    Sathya Prakash <sathya.prakash@broadcom.com>
 -M:    Chaitra P B <chaitra.basappa@broadcom.com>
 +M:    Sreekanth Reddy <sreekanth.reddy@broadcom.com>
  M:    Suganath Prabu Subramani <suganath-prabu.subramani@broadcom.com>
  L:    MPT-FusionLinux.pdl@broadcom.com
  L:    linux-scsi@vger.kernel.org
@@@ -10173,7 -10078,7 +10181,7 @@@ S:   Maintaine
  W:    https://wireless.wiki.kernel.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
 -F:    Documentation/networking/mac80211-injection.txt
 +F:    Documentation/networking/mac80211-injection.rst
  F:    Documentation/networking/mac80211_hwsim/mac80211_hwsim.rst
  F:    drivers/net/wireless/mac80211_hwsim.[ch]
  F:    include/net/mac80211.h
@@@ -10354,7 -10259,7 +10362,7 @@@ L:   linux-media@vger.kernel.or
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/i2c/max2175.txt
 -F:    Documentation/media/v4l-drivers/max2175.rst
 +F:    Documentation/userspace-api/media/drivers/max2175.rst
  F:    drivers/media/i2c/max2175*
  F:    include/uapi/linux/max2175.h
  
@@@ -10554,8 -10459,8 +10562,8 @@@ M:   Philipp Zabel <p.zabel@pengutronix.d
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/admin-guide/media/imx.rst
  F:    Documentation/devicetree/bindings/media/imx.txt
 -F:    Documentation/media/v4l-drivers/imx.rst
  F:    drivers/staging/media/imx/
  F:    include/linux/imx-media.h
  F:    include/media/imx.h
@@@ -10565,9 -10470,9 +10573,9 @@@ M:   Rui Miguel Silva <rmfrfs@gmail.com
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/admin-guide/media/imx7.rst
  F:    Documentation/devicetree/bindings/media/imx7-csi.txt
  F:    Documentation/devicetree/bindings/media/imx7-mipi-csi2.txt
 -F:    Documentation/media/v4l-drivers/imx7.rst
  F:    drivers/staging/media/imx/imx7-media-csi.c
  F:    drivers/staging/media/imx/imx7-mipi-csis.c
  
@@@ -10713,10 -10618,8 +10721,10 @@@ S: Maintaine
  W:    https://linuxtv.org
  Q:    http://patchwork.kernel.org/project/linux-media/list/
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/admin-guide/media/
  F:    Documentation/devicetree/bindings/media/
 -F:    Documentation/media/
 +F:    Documentation/driver-api/media/
 +F:    Documentation/userspace-api/media/
  F:    drivers/media/
  F:    drivers/staging/media/
  F:    include/linux/platform_data/media/
@@@ -10767,13 -10670,6 +10775,13 @@@ L: netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/mediatek/
  
 +MEDIATEK I2C CONTROLLER DRIVER
 +M:    Qii Wang <qii.wang@mediatek.com>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/i2c/i2c-mt65xx.txt
 +F:    drivers/i2c/busses/i2c-mt65xx.c
 +
  MEDIATEK JPEG DRIVER
  M:    Rick Chang <rick.chang@mediatek.com>
  M:    Bin Liu <bin.liu@mediatek.com>
@@@ -11116,12 -11012,10 +11124,12 @@@ F:        drivers/mtd/nand/raw/meson_
  
  MESON VIDEO DECODER DRIVER FOR AMLOGIC SOCS
  M:    Maxime Jourdan <mjourdan@baylibre.com>
 +M:    Neil Armstrong <narmstrong@baylibre.com>
  L:    linux-media@vger.kernel.org
  L:    linux-amlogic@lists.infradead.org
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/amlogic,gx-vdec.yaml
  F:    drivers/staging/media/meson/vdec/
  
  METHODE UDPU SUPPORT
@@@ -11494,20 -11388,15 +11502,20 @@@ F:        kernel/module.
  MONOLITHIC POWER SYSTEM PMIC DRIVER
  M:    Saravanan Sekar <sravanhome@gmail.com>
  S:    Maintained
 +F:    Documentation/devicetree/bindings/mfd/mps,mp2629.yaml
  F:    Documentation/devicetree/bindings/regulator/mps,mp*.yaml
 +F:    drivers/iio/adc/mp2629_adc.c
 +F:    drivers/mfd/mp2629.c
 +F:    drivers/power/supply/mp2629_charger.c
  F:    drivers/regulator/mp5416.c
  F:    drivers/regulator/mpq7920.c
  F:    drivers/regulator/mpq7920.h
 +F:    include/linux/mfd/mp2629.h
  
  MOTION EYE VAIO PICTUREBOOK CAMERA DRIVER
  S:    Orphan
  W:    http://popies.net/meye/
 -F:    Documentation/media/v4l-drivers/meye*
 +F:    Documentation/userspace-api/media/drivers/meye*
  F:    drivers/media/pci/meye/
  F:    include/uapi/linux/meye.h
  
@@@ -11766,8 -11655,8 +11774,8 @@@ NETERION 10GbE DRIVERS (s2io/vxge
  M:    Jon Mason <jdmason@kudzu.us>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    Documentation/networking/device_drivers/neterion/s2io.txt
 -F:    Documentation/networking/device_drivers/neterion/vxge.txt
 +F:    Documentation/networking/device_drivers/neterion/s2io.rst
 +F:    Documentation/networking/device_drivers/neterion/vxge.rst
  F:    drivers/net/ethernet/neterion/
  
  NETFILTER
@@@ -12534,15 -12423,6 +12542,15 @@@ S: Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/ov2685.c
  
 +OMNIVISION OV2740 SENSOR DRIVER
 +M:    Tianshu Qiu <tian.shu.qiua@intel.com>
 +R:    Shawn Tu <shawnx.tu@intel.com>
 +R:    Bingbu Cao <bingbu.cao@intel.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/i2c/ov2740.c
 +
  OMNIVISION OV5640 SENSOR DRIVER
  M:    Steve Longerbeam <slongerbeam@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -12605,11 -12485,10 +12613,11 @@@ F:        Documentation/devicetree/bindings/me
  F:    drivers/media/i2c/ov7740.c
  
  OMNIVISION OV8856 SENSOR DRIVER
 -M:    Ben Kao <ben.kao@intel.com>
 +M:    Dongchun Zhu <dongchun.zhu@mediatek.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ov8856.yaml
  F:    drivers/media/i2c/ov8856.c
  
  OMNIVISION OV9640 SENSOR DRIVER
@@@ -12665,8 -12544,8 +12673,8 @@@ M:   Pantelis Antoniou <pantelis.antoniou
  M:    Frank Rowand <frowand.list@gmail.com>
  L:    devicetree@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/dynamic-resolution-notes.txt
 -F:    Documentation/devicetree/overlay-notes.txt
 +F:    Documentation/devicetree/dynamic-resolution-notes.rst
 +F:    Documentation/devicetree/overlay-notes.rst
  F:    drivers/of/overlay.c
  F:    drivers/of/resolver.c
  K:    of_overlay_notifier_
@@@ -12884,7 -12763,7 +12892,7 @@@ M:   "James E.J. Bottomley" <James.Bottom
  M:    Helge Deller <deller@gmx.de>
  L:    linux-parisc@vger.kernel.org
  S:    Maintained
 -W:    http://www.parisc-linux.org/
 +W:    https://parisc.wiki.kernel.org
  Q:    http://patchwork.kernel.org/project/linux-parisc/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git
@@@ -13074,7 -12953,7 +13082,7 @@@ L:   linux-pci@vger.kernel.or
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/layerscape-pcie-gen4.txt
 -F:    drivers/pci/controller/mobibeil/pcie-layerscape-gen4.c
 +F:    drivers/pci/controller/mobiveil/pcie-layerscape-gen4.c
  
  PCI DRIVER FOR RENESAS R-CAR
  M:    Marek Vasut <marek.vasut+renesas@gmail.com>
@@@ -13082,7 -12961,6 +13090,7 @@@ M:   Yoshihiro Shimoda <yoshihiro.shimoda
  L:    linux-pci@vger.kernel.org
  L:    linux-renesas-soc@vger.kernel.org
  S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/*rcar*
  F:    drivers/pci/controller/*rcar*
  
  PCI DRIVER FOR SAMSUNG EXYNOS
@@@ -13276,8 -13154,8 +13284,8 @@@ PCIE DRIVER FOR SOCIONEXT UNIPHIE
  M:    Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/pci/uniphier-pcie.txt
 -F:    drivers/pci/controller/dwc/pcie-uniphier.c
 +F:    Documentation/devicetree/bindings/pci/uniphier-pcie*
 +F:    drivers/pci/controller/dwc/pcie-uniphier*
  
  PCIE DRIVER FOR ST SPEAR13XX
  M:    Pratyush Anand <pratyush.anand@gmail.com>
@@@ -13384,7 -13262,7 +13392,7 @@@ F:   drivers/input/joystick/pxrc.
  PHONET PROTOCOL
  M:    Remi Denis-Courmont <courmisch@gmail.com>
  S:    Supported
 -F:    Documentation/networking/phonet.txt
 +F:    Documentation/networking/phonet.rst
  F:    include/linux/phonet.h
  F:    include/net/phonet/
  F:    include/uapi/linux/phonet.h
@@@ -13794,7 -13672,6 +13802,7 @@@ M:   Tony Luck <tony.luck@intel.com
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore
  F:    Documentation/admin-guide/ramoops.rst
 +F:    Documentation/admin-guide/pstore-blk.rst
  F:    Documentation/devicetree/bindings/reserved-memory/ramoops.txt
  F:    drivers/acpi/apei/erst.c
  F:    drivers/firmware/efi/efi-pstore.c
@@@ -13832,8 -13709,8 +13840,8 @@@ M:   Hans Verkuil <hverkuil@xs4all.nl
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/cec-drivers/pulse8-cec.rst
 -F:    drivers/media/usb/pulse8-cec/*
 +F:    Documentation/admin-guide/media/pulse8-cec.rst
 +F:    drivers/media/cec/usb/pulse8/
  
  PVRUSB2 VIDEO4LINUX DRIVER
  M:    Mike Isely <isely@pobox.com>
@@@ -13842,7 -13719,7 +13850,7 @@@ L:   linux-media@vger.kernel.or
  S:    Maintained
  W:    http://www.isely.net/pvrusb2/
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/pvrusb2*
 +F:    Documentation/driver-api/media/drivers/pvrusb2*
  F:    drivers/media/usb/pvrusb2/
  
  PWC WEBCAM DRIVER
@@@ -14089,8 -13966,8 +14097,8 @@@ QUALCOMM CAMERA SUBSYSTEM DRIVE
  M:    Todor Tomov <todor.too@gmail.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 +F:    Documentation/admin-guide/media/qcom_camss.rst
  F:    Documentation/devicetree/bindings/media/qcom,camss.txt
 -F:    Documentation/media/v4l-drivers/qcom_camss.rst
  F:    drivers/media/platform/qcom/camss/
  
  QUALCOMM CORE POWER REDUCTION (CPR) AVS DRIVER
@@@ -14154,7 -14031,7 +14162,7 @@@ M:   Subash Abhinov Kasiviswanathan <suba
  M:    Sean Tranchetti <stranche@codeaurora.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    Documentation/networking/device_drivers/qualcomm/rmnet.txt
 +F:    Documentation/networking/device_drivers/qualcomm/rmnet.rst
  F:    drivers/net/ethernet/qualcomm/rmnet/
  F:    include/linux/if_rmnet.h
  
@@@ -14185,7 -14062,7 +14193,7 @@@ F:   drivers/net/wireless/ath/wcn36xx
  
  QUANTENNA QTNFMAC WIRELESS DRIVER
  M:    Igor Mitsyanko <imitsyanko@quantenna.com>
 -M:    Sergey Matyukevich <smatyukevich@quantenna.com>
 +R:    Sergey Matyukevich <geomatsi@gmail.com>
  L:    linux-wireless@vger.kernel.org
  S:    Maintained
  F:    drivers/net/wireless/quantenna
  RADEON and AMDGPU DRM DRIVERS
  M:    Alex Deucher <alexander.deucher@amd.com>
  M:    Christian König <christian.koenig@amd.com>
 -M:    David (ChunMing) Zhou <David1.Zhou@amd.com>
  L:    amd-gfx@lists.freedesktop.org
  S:    Supported
  T:    git git://people.freedesktop.org/~agd5f/linux
@@@ -14245,7 -14123,7 +14253,7 @@@ M:   Hans Verkuil <hverkuil@xs4all.nl
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/usb/rainshadow-cec/*
 +F:    drivers/media/cec/usb/rainshadow/
  
  RALINK MIPS ARCHITECTURE
  M:    John Crispin <john@phrozen.org>
@@@ -14339,7 -14217,7 +14347,7 @@@ L:   linux-rdma@vger.kernel.or
  L:    rds-devel@oss.oracle.com (moderated for non-subscribers)
  S:    Supported
  W:    https://oss.oracle.com/projects/rds/
 -F:    Documentation/networking/rds.txt
 +F:    Documentation/networking/rds.rst
  F:    net/rds/
  
  RDT - RESOURCE ALLOCATION
@@@ -14348,7 -14226,7 +14356,7 @@@ M:   Reinette Chatre <reinette.chatre@int
  L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    Documentation/x86/resctrl*
 -F:    arch/x86/include/asm/resctrl_sched.h
 +F:    arch/x86/include/asm/resctrl.h
  F:    arch/x86/kernel/cpu/resctrl/
  F:    tools/testing/selftests/resctrl/
  
@@@ -14580,13 -14458,6 +14588,13 @@@ F: arch/riscv
  N:    riscv
  K:    riscv
  
 +RNBD BLOCK DRIVERS
 +M:    Danil Kipnis <danil.kipnis@cloud.ionos.com>
 +M:    Jack Wang <jinpu.wang@cloud.ionos.com>
 +L:    linux-block@vger.kernel.org
 +S:    Maintained
 +F:    drivers/block/rnbd/
 +
  ROCCAT DRIVERS
  M:    Stefan Achatz <erazor_de@users.sourceforge.net>
  S:    Maintained
@@@ -14605,19 -14476,10 +14613,19 @@@ ROCKCHIP RASTER 2D GRAPHIC ACCELERATIO
  M:    Jacob Chen <jacob-chen@iotwrt.com>
  M:    Ezequiel Garcia <ezequiel@collabora.com>
  L:    linux-media@vger.kernel.org
 +L:    linux-rockchip@lists.infradead.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/media/rockchip-rga.txt
 +F:    Documentation/devicetree/bindings/media/rockchip-rga.yaml
  F:    drivers/media/platform/rockchip/rga/
  
 +ROCKCHIP VIDEO DECODER DRIVER
 +M:    Ezequiel Garcia <ezequiel@collabora.com>
 +L:    linux-media@vger.kernel.org
 +L:    linux-rockchip@lists.infradead.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/rockchip,vdec.yaml
 +F:    drivers/staging/media/rkvdec/
 +
  ROCKER DRIVER
  M:    Jiri Pirko <jiri@resnulli.us>
  L:    netdev@vger.kernel.org
@@@ -14724,19 -14586,12 +14732,19 @@@ S:        Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8xxxu-devel
  F:    drivers/net/wireless/realtek/rtl8xxxu/
  
 +RTRS TRANSPORT DRIVERS
 +M:    Danil Kipnis <danil.kipnis@cloud.ionos.com>
 +M:    Jack Wang <jinpu.wang@cloud.ionos.com>
 +L:    linux-rdma@vger.kernel.org
 +S:    Maintained
 +F:    drivers/infiniband/ulp/rtrs/
 +
  RXRPC SOCKETS (AF_RXRPC)
  M:    David Howells <dhowells@redhat.com>
  L:    linux-afs@lists.infradead.org
  S:    Supported
  W:    https://www.infradead.org/~dhowells/kafs/
 -F:    Documentation/networking/rxrpc.txt
 +F:    Documentation/networking/rxrpc.rst
  F:    include/keys/rxrpc-type.h
  F:    include/net/af_rxrpc.h
  F:    include/trace/events/rxrpc.h
@@@ -14778,7 -14633,6 +14786,7 @@@ S:   Supporte
  W:    http://www.ibm.com/developerworks/linux/linux390/
  F:    block/partitions/ibm.c
  F:    drivers/s390/block/dasd*
 +F:    include/linux/dasd_mod.h
  
  S390 IOMMU (PCI)
  M:    Gerald Schaefer <gerald.schaefer@de.ibm.com>
@@@ -14874,7 -14728,7 +14882,7 @@@ L:   linux-media@vger.kernel.or
  S:    Odd fixes
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/saa7134*
 +F:    Documentation/driver-api/media/drivers/saa7134*
  F:    drivers/media/pci/saa7134/
  
  SAA7146 VIDEO4LINUX-2 DRIVER
@@@ -15145,7 -14999,7 +15153,7 @@@ M:   Marcelo Ricardo Leitner <marcelo.lei
  L:    linux-sctp@vger.kernel.org
  S:    Maintained
  W:    http://lksctp.sourceforge.net
 -F:    Documentation/networking/sctp.txt
 +F:    Documentation/networking/sctp.rst
  F:    include/linux/sctp.h
  F:    include/net/sctp/
  F:    include/uapi/linux/sctp.h
@@@ -15372,6 -15226,11 +15380,6 @@@ T:  git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/rj54n1cb0c.c
  F:    include/media/i2c/rj54n1cb0c.h
  
 -SH_VEU V4L2 MEM2MEM DRIVER
 -L:    linux-media@vger.kernel.org
 -S:    Orphan
 -F:    drivers/media/platform/sh_veu.c
 -
  SH_VOU V4L2 OUTPUT DRIVER
  L:    linux-media@vger.kernel.org
  S:    Orphan
@@@ -15616,15 -15475,6 +15624,15 @@@ M: Nicolas Pitre <nico@fluxnic.net
  S:    Odd Fixes
  F:    drivers/net/ethernet/smsc/smc91x.*
  
 +SECURE MONITOR CALL(SMC) CALLING CONVENTION (SMCCC)
 +M:    Mark Rutland <mark.rutland@arm.com>
 +M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
 +M:    Sudeep Holla <sudeep.holla@arm.com>
 +L:    linux-arm-kernel@lists.infradead.org
 +S:    Maintained
 +F:    drivers/firmware/smccc/
 +F:    include/linux/arm-smccc.h
 +
  SMIA AND SMIA++ IMAGE SENSOR DRIVER
  M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    linux-media@vger.kernel.org
@@@ -15693,7 -15543,7 +15701,7 @@@ SOCIONEXT (SNI) AVE NETWORK DRIVE
  M:    Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/socionext,uniphier-ave4.txt
 +F:    Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml
  F:    drivers/net/ethernet/socionext/sni_ave.c
  
  SOCIONEXT (SNI) NETSEC NETWORK DRIVER
@@@ -15801,7 -15651,7 +15809,7 @@@ F:   drivers/ssb
  F:    include/linux/ssb/
  
  SONY IMX214 SENSOR DRIVER
 -M:    Ricardo Ribalda <ricardo.ribalda@gmail.com>
 +M:    Ricardo Ribalda <ribalda@kernel.org>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -16024,7 -15874,7 +16032,7 @@@ SPIDERNET NETWORK DRIVER for CEL
  M:    Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    Documentation/networking/device_drivers/toshiba/spider_net.txt
 +F:    Documentation/networking/device_drivers/toshiba/spider_net.rst
  F:    drivers/net/ethernet/toshiba/spider_net*
  
  SPMI SUBSYSTEM
@@@ -16041,7 -15891,7 +16049,7 @@@ M:   Jeremy Kerr <jk@ozlabs.org
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Supported
  W:    http://www.ibm.com/developerworks/power/cell/
 -F:    Documentation/filesystems/spufs.txt
 +F:    Documentation/filesystems/spufs/spufs.rst
  F:    arch/powerpc/platforms/cell/spufs/
  
  SQUASHFS FILE SYSTEM
@@@ -16094,13 -15944,6 +16102,13 @@@ L: stable@vger.kernel.or
  S:    Supported
  F:    Documentation/process/stable-kernel-rules.rst
  
 +STAGING - ATOMISP DRIVER
 +M:    Mauro Carvalho Chehab <mchehab@kernel.org>
 +R:    Sakari Ailus <sakari.ailus@linux.intel.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/media/atomisp/
 +
  STAGING - COMEDI
  M:    Ian Abbott <abbotti@mev.co.uk>
  M:    H Hartley Sweeten <hsweeten@visionengravers.com>
@@@ -16396,10 -16239,9 +16404,10 @@@ F: drivers/tty/serial/8250/8250_lpss.
  
  SYNOPSYS DESIGNWARE APB GPIO DRIVER
  M:    Hoan Tran <hoan@os.amperecomputing.com>
 +M:    Serge Semin <fancer.lancer@gmail.com>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
 +F:    Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
  F:    drivers/gpio/gpio-dwapb.c
  
  SYNOPSYS DESIGNWARE AXI DMAC DRIVER
@@@ -16757,16 -16599,6 +16765,16 @@@ M: Laxman Dewangan <ldewangan@nvidia.co
  S:    Supported
  F:    drivers/spi/spi-tegra*
  
 +TEGRA VIDEO DRIVER
 +M:    Thierry Reding <thierry.reding@gmail.com>
 +M:    Jonathan Hunter <jonathanh@nvidia.com>
 +M:    Sowjanya Komatineni <skomatineni@nvidia.com>
 +L:    linux-media@vger.kernel.org
 +L:    linux-tegra@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
 +F:    drivers/staging/media/tegra-video/
 +
  TEGRA XUSB PADCTL DRIVER
  M:    JC Kuo <jckuo@nvidia.com>
  S:    Supported
@@@ -16806,7 -16638,7 +16814,7 @@@ S:   Maintaine
  F:    sound/soc/ti/
  
  TEXAS INSTRUMENTS' DAC7612 DAC DRIVER
 -M:    Ricardo Ribalda <ricardo@ribalda.com>
 +M:    Ricardo Ribalda <ribalda@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/iio/dac/ti,dac7612.txt
@@@ -17139,7 -16971,7 +17147,7 @@@ M:   Samuel Chessman <chessman@tux.org
  L:    tlan-devel@lists.sourceforge.net (subscribers-only)
  S:    Maintained
  W:    http://sourceforge.net/projects/tlan/
 -F:    Documentation/networking/device_drivers/ti/tlan.txt
 +F:    Documentation/networking/device_drivers/ti/tlan.rst
  F:    drivers/net/ethernet/ti/tlan.*
  
  TM6000 VIDEO4LINUX DRIVER
@@@ -17148,7 -16980,7 +17156,7 @@@ L:   linux-media@vger.kernel.or
  S:    Odd fixes
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/tm6000*
 +F:    Documentation/admin-guide/media/tm6000*
  F:    drivers/media/usb/tm6000/
  
  TMIO/SDHI MMC DRIVER
@@@ -17329,7 -17161,7 +17337,7 @@@ TUN/TAP drive
  M:    Maxim Krasnyansky <maxk@qti.qualcomm.com>
  S:    Maintained
  W:    http://vtun.sourceforge.net/tun
 -F:    Documentation/networking/tuntap.txt
 +F:    Documentation/networking/tuntap.rst
  F:    arch/um/os-Linux/drivers/
  
  TURBOCHANNEL SUBSYSTEM
@@@ -17759,6 -17591,13 +17767,13 @@@ F: Documentation/driver-api/usb/typec.r
  F:    drivers/usb/typec/
  F:    include/linux/usb/typec.h
  
+ USB TYPEC INTEL PMC MUX DRIVER
+ M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
+ L:    linux-usb@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/firmware-guide/acpi/intel-pmc-mux.rst
+ F:    drivers/usb/typec/mux/intel_pmc_mux.c
  USB TYPEC PI3USB30532 MUX DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    linux-usb@vger.kernel.org
@@@ -17829,7 -17668,7 +17844,7 @@@ L:   linux-media@vger.kernel.or
  S:    Maintained
  W:    http://royale.zerezo.com/zr364xx/
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/media/v4l-drivers/zr364xx*
 +F:    Documentation/admin-guide/media/zr364xx*
  F:    drivers/media/usb/zr364xx/
  
  USER-MODE LINUX (UML)
@@@ -17978,7 -17817,7 +17993,7 @@@ L:   linux-media@vger.kernel.or
  S:    Maintained
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/platform/vicodec/*
 +F:    drivers/media/test-drivers/vicodec/*
  
  VIDEO I2C POLLING DRIVER
  M:    Matt Ranostay <matt.ranostay@konsulko.com>
@@@ -18009,7 -17848,7 +18024,7 @@@ L:   linux-media@vger.kernel.or
  S:    Maintained
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/platform/vimc/*
 +F:    drivers/media/test-drivers/vimc/*
  
  VIRT LIB
  M:    Alex Williamson <alex.williamson@redhat.com>
@@@ -18176,7 -18015,7 +18191,7 @@@ L:   linux-media@vger.kernel.or
  S:    Maintained
  W:    https://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/media/platform/vivid/*
 +F:    drivers/media/test-drivers/vivid/*
  
  VLYNQ BUS
  M:    Florian Fainelli <f.fainelli@gmail.com>
@@@ -18274,7 -18113,7 +18289,7 @@@ M:   David Ahern <dsahern@kernel.org
  M:    Shrijeet Mukherjee <shrijeet@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    Documentation/networking/vrf.txt
 +F:    Documentation/networking/vrf.rst
  F:    drivers/net/vrf.c
  
  VSPRINTF
@@@ -18438,11 -18277,11 +18453,11 @@@ L:        patches@opensource.cirrus.co
  S:    Supported
  W:    https://github.com/CirrusLogic/linux-drivers/wiki
  T:    git https://github.com/CirrusLogic/linux-drivers.git
 -F:    Documentation/devicetree/bindings/extcon/extcon-arizona.txt
 -F:    Documentation/devicetree/bindings/mfd/arizona.txt
 +F:    Documentation/devicetree/bindings/extcon/wlf,arizona.yaml
 +F:    Documentation/devicetree/bindings/mfd/wlf,arizona.yaml
  F:    Documentation/devicetree/bindings/mfd/wm831x.txt
 -F:    Documentation/devicetree/bindings/regulator/arizona-regulator.txt
 -F:    Documentation/devicetree/bindings/sound/wlf,arizona.txt
 +F:    Documentation/devicetree/bindings/regulator/wlf,arizona.yaml
 +F:    Documentation/devicetree/bindings/sound/wlf,arizona.yaml
  F:    Documentation/hwmon/wm83??.rst
  F:    arch/arm/mach-s3c64xx/mach-crag6410*
  F:    drivers/clk/clk-wm83*.c
@@@ -18619,12 -18458,8 +18634,12 @@@ R: Jonathan Lemon <jonathan.lemon@gmail
  L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Maintained
 -F:    kernel/bpf/xskmap.c
 +F:    include/net/xdp_sock*
 +F:    include/net/xsk_buff_pool.h
 +F:    include/uapi/linux/if_xdp.h
  F:    net/xdp/
 +F:    samples/bpf/xdpsock*
 +F:    tools/lib/bpf/xsk*
  
  XEN BLOCK SUBSYSTEM
  M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
@@@ -18714,8 -18549,8 +18729,8 @@@ W:   http://xfs.org
  T:    git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
  F:    Documentation/ABI/testing/sysfs-fs-xfs
  F:    Documentation/admin-guide/xfs.rst
 -F:    Documentation/filesystems/xfs-delayed-logging-design.txt
 -F:    Documentation/filesystems/xfs-self-describing-metadata.txt
 +F:    Documentation/filesystems/xfs-delayed-logging-design.rst
 +F:    Documentation/filesystems/xfs-self-describing-metadata.rst
  F:    fs/xfs/
  F:    include/uapi/linux/dqblk_xfs.h
  F:    include/uapi/linux/fsmap.h
@@@ -18816,7 -18651,7 +18831,7 @@@ L:   linux-hams@vger.kernel.or
  S:    Maintained
  W:    http://yaina.de/jreuter/
  W:    http://www.qsl.net/dl1bke/
 -F:    Documentation/networking/z8530drv.txt
 +F:    Documentation/networking/z8530drv.rst
  F:    drivers/net/hamradio/*scc.c
  F:    drivers/net/hamradio/z8530.h
  
                        ramc0: ramc@ffffe400 {
                                compatible = "atmel,at91sam9g45-ddramc";
                                reg = <0xffffe400 0x200>;
 -                              clocks = <&ddrck>;
 +                              clocks = <&pmc PMC_TYPE_SYSTEM 2>;
                                clock-names = "ddrck";
                        };
  
                        ramc1: ramc@ffffe600 {
                                compatible = "atmel,at91sam9g45-ddramc";
                                reg = <0xffffe600 0x200>;
 -                              clocks = <&ddrck>;
 +                              clocks = <&pmc PMC_TYPE_SYSTEM 2>;
                                clock-names = "ddrck";
                        };
  
                                compatible = "atmel,at91sam9g45-pmc", "syscon";
                                reg = <0xfffffc00 0x100>;
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
 -                              interrupt-controller;
 -                              #address-cells = <1>;
 -                              #size-cells = <0>;
 -                              #interrupt-cells = <1>;
 -
 -                              main_osc: main_osc {
 -                                      compatible = "atmel,at91rm9200-clk-main-osc";
 -                                      #clock-cells = <0>;
 -                                      interrupts-extended = <&pmc AT91_PMC_MOSCS>;
 -                                      clocks = <&main_xtal>;
 -                              };
 -
 -                              main: mainck {
 -                                      compatible = "atmel,at91rm9200-clk-main";
 -                                      #clock-cells = <0>;
 -                                      clocks = <&main_osc>;
 -                              };
 -
 -                              plla: pllack {
 -                                      compatible = "atmel,at91rm9200-clk-pll";
 -                                      #clock-cells = <0>;
 -                                      interrupts-extended = <&pmc AT91_PMC_LOCKA>;
 -                                      clocks = <&main>;
 -                                      reg = <0>;
 -                                      atmel,clk-input-range = <2000000 32000000>;
 -                                      #atmel,pll-clk-output-range-cells = <4>;
 -                                      atmel,pll-clk-output-ranges = <745000000 800000000 0 0
 -                                                                     695000000 750000000 1 0
 -                                                                     645000000 700000000 2 0
 -                                                                     595000000 650000000 3 0
 -                                                                     545000000 600000000 0 1
 -                                                                     495000000 555000000 1 1
 -                                                                     445000000 500000000 2 1
 -                                                                     400000000 450000000 3 1>;
 -                              };
 -
 -                              plladiv: plladivck {
 -                                      compatible = "atmel,at91sam9x5-clk-plldiv";
 -                                      #clock-cells = <0>;
 -                                      clocks = <&plla>;
 -                              };
 -
 -                              utmi: utmick {
 -                                      compatible = "atmel,at91sam9x5-clk-utmi";
 -                                      #clock-cells = <0>;
 -                                      interrupts-extended = <&pmc AT91_PMC_LOCKU>;
 -                                      clocks = <&main>;
 -                              };
 -
 -                              mck: masterck {
 -                                      compatible = "atmel,at91rm9200-clk-master";
 -                                      #clock-cells = <0>;
 -                                      interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
 -                                      clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>;
 -                                      atmel,clk-output-range = <0 133333333>;
 -                                      atmel,clk-divisors = <1 2 4 3>;
 -                              };
 -
 -                              usb: usbck {
 -                                      compatible = "atmel,at91sam9x5-clk-usb";
 -                                      #clock-cells = <0>;
 -                                      clocks = <&plladiv>, <&utmi>;
 -                              };
 -
 -                              prog: progck {
 -                                      compatible = "atmel,at91sam9g45-clk-programmable";
 -                                      #address-cells = <1>;
 -                                      #size-cells = <0>;
 -                                      interrupt-parent = <&pmc>;
 -                                      clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
 -
 -                                      prog0: prog0 {
 -                                              #clock-cells = <0>;
 -                                              reg = <0>;
 -                                              interrupts = <AT91_PMC_PCKRDY(0)>;
 -                                      };
 -
 -                                      prog1: prog1 {
 -                                              #clock-cells = <0>;
 -                                              reg = <1>;
 -                                              interrupts = <AT91_PMC_PCKRDY(1)>;
 -                                      };
 -                              };
 -
 -                              systemck {
 -                                      compatible = "atmel,at91rm9200-clk-system";
 -                                      #address-cells = <1>;
 -                                      #size-cells = <0>;
 -
 -                                      ddrck: ddrck {
 -                                              #clock-cells = <0>;
 -                                              reg = <2>;
 -                                              clocks = <&mck>;
 -                                      };
 -
 -                                      uhpck: uhpck {
 -                                              #clock-cells = <0>;
 -                                              reg = <6>;
 -                                              clocks = <&usb>;
 -                                      };
 -
 -                                      pck0: pck0 {
 -                                              #clock-cells = <0>;
 -                                              reg = <8>;
 -                                              clocks = <&prog0>;
 -                                      };
 -
 -                                      pck1: pck1 {
 -                                              #clock-cells = <0>;
 -                                              reg = <9>;
 -                                              clocks = <&prog1>;
 -                                      };
 -                              };
 -
 -                              periphck {
 -                                      compatible = "atmel,at91rm9200-clk-peripheral";
 -                                      #address-cells = <1>;
 -                                      #size-cells = <0>;
 -                                      clocks = <&mck>;
 -
 -                                      pioA_clk: pioA_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <2>;
 -                                      };
 -
 -                                      pioB_clk: pioB_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <3>;
 -                                      };
 -
 -                                      pioC_clk: pioC_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <4>;
 -                                      };
 -
 -                                      pioDE_clk: pioDE_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <5>;
 -                                      };
 -
 -                                      trng_clk: trng_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <6>;
 -                                      };
 -
 -                                      usart0_clk: usart0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <7>;
 -                                      };
 -
 -                                      usart1_clk: usart1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <8>;
 -                                      };
 -
 -                                      usart2_clk: usart2_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <9>;
 -                                      };
 -
 -                                      usart3_clk: usart3_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <10>;
 -                                      };
 -
 -                                      mci0_clk: mci0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <11>;
 -                                      };
 -
 -                                      twi0_clk: twi0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <12>;
 -                                      };
 -
 -                                      twi1_clk: twi1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <13>;
 -                                      };
 -
 -                                      spi0_clk: spi0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <14>;
 -                                      };
 -
 -                                      spi1_clk: spi1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <15>;
 -                                      };
 -
 -                                      ssc0_clk: ssc0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <16>;
 -                                      };
 -
 -                                      ssc1_clk: ssc1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <17>;
 -                                      };
 -
 -                                      tcb0_clk: tcb0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <18>;
 -                                      };
 -
 -                                      pwm_clk: pwm_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <19>;
 -                                      };
 -
 -                                      adc_clk: adc_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <20>;
 -                                      };
 -
 -                                      dma0_clk: dma0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <21>;
 -                                      };
 -
 -                                      uhphs_clk: uhphs_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <22>;
 -                                      };
 -
 -                                      lcd_clk: lcd_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <23>;
 -                                      };
 -
 -                                      ac97_clk: ac97_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <24>;
 -                                      };
 -
 -                                      macb0_clk: macb0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <25>;
 -                                      };
 -
 -                                      isi_clk: isi_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <26>;
 -                                      };
 -
 -                                      udphs_clk: udphs_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <27>;
 -                                      };
 -
 -                                      aestdessha_clk: aestdessha_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <28>;
 -                                      };
 -
 -                                      mci1_clk: mci1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <29>;
 -                                      };
 -
 -                                      vdec_clk: vdec_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <30>;
 -                                      };
 -                              };
 +                              #clock-cells = <2>;
 +                              clocks = <&clk32k>, <&main_xtal>;
 +                              clock-names = "slow_clk", "main_xtal";
                        };
  
                        rstc@fffffd00 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffd30 0xf>;
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
 -                              clocks = <&mck>;
 +                              clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
                        };
  
  
                                #size-cells = <0>;
                                reg = <0xfff7c000 0x100>;
                                interrupts = <18 IRQ_TYPE_LEVEL_HIGH 0>;
 -                              clocks = <&tcb0_clk>, <&tcb0_clk>, <&tcb0_clk>, <&clk32k>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&clk32k>;
                                clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
                        };
  
                                #size-cells = <0>;
                                reg = <0xfffd4000 0x100>;
                                interrupts = <18 IRQ_TYPE_LEVEL_HIGH 0>;
 -                              clocks = <&tcb0_clk>, <&tcb0_clk>, <&tcb0_clk>, <&clk32k>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&clk32k>;
                                clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
                        };
  
                                reg = <0xffffec00 0x200>;
                                interrupts = <21 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
 -                              clocks = <&dma0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
                                clock-names = "dma_clk";
                        };
  
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioA_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
                                };
  
                                pioB: gpio@fffff400 {
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioB_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
                                };
  
                                pioC: gpio@fffff600 {
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioC_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
                                };
  
                                pioD: gpio@fffff800 {
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioDE_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
                                };
  
                                pioE: gpio@fffffa00 {
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioDE_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
                                };
                        };
  
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
 -                              clocks = <&mck>;
 +                              clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart0>;
 -                              clocks = <&usart0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart1>;
 -                              clocks = <&usart1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart2>;
 -                              clocks = <&usart2_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart3>;
 -                              clocks = <&usart3_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                interrupts = <25 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_macb_rmii>;
 -                              clocks = <&macb0_clk>, <&macb0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_PERIPHERAL 25>;
                                clock-names = "hclk", "pclk";
                                status = "disabled";
                        };
                                compatible = "atmel,at91sam9g45-trng";
                                reg = <0xfffcc000 0x100>;
                                interrupts = <6 IRQ_TYPE_LEVEL_HIGH 0>;
 -                              clocks = <&trng_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
                        };
  
                        i2c0: i2c@fff84000 {
                                pinctrl-0 = <&pinctrl_i2c0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&twi0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
                                status = "disabled";
                        };
  
                                pinctrl-0 = <&pinctrl_i2c1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&twi1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
                                status = "disabled";
                        };
  
                                interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
 -                              clocks = <&ssc0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
                                clock-names = "pclk";
                                status = "disabled";
                        };
                                interrupts = <17 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
 -                              clocks = <&ssc1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 17>;
                                clock-names = "pclk";
                                status = "disabled";
                        };
                                interrupts = <24 IRQ_TYPE_LEVEL_HIGH 4>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ac97>;
 -                              clocks = <&ac97_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
                                clock-names = "ac97_clk";
                                status = "disabled";
                        };
                                compatible = "atmel,at91sam9g45-adc";
                                reg = <0xfffb0000 0x100>;
                                interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
 -                              clocks = <&adc_clk>, <&adc_op_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 20>, <&adc_op_clk>;
                                clock-names = "adc_clk", "adc_op_clk";
                                atmel,adc-channels-used = <0xff>;
                                atmel,adc-vref = <3300>;
                                compatible = "atmel,at91sam9g45-isi";
                                reg = <0xfffb4000 0x4000>;
                                interrupts = <26 IRQ_TYPE_LEVEL_HIGH 5>;
 -                              clocks = <&isi_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 26>;
                                clock-names = "isi_clk";
                                status = "disabled";
                                port {
                                reg = <0xfffb8000 0x300>;
                                interrupts = <19 IRQ_TYPE_LEVEL_HIGH 4>;
                                #pwm-cells = <3>;
 -                              clocks = <&pwm_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
                                status = "disabled";
                        };
  
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&mci0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
                                clock-names = "mci_clk";
                                status = "disabled";
                        };
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&mci1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
                                clock-names = "mci_clk";
                                status = "disabled";
                        };
                                interrupts = <14 4 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
 -                              clocks = <&spi0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
                                clock-names = "spi_clk";
                                status = "disabled";
                        };
                                interrupts = <15 4 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
 -                              clocks = <&spi1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
                                clock-names = "spi_clk";
                                status = "disabled";
                        };
  
                        usb2: gadget@fff78000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
                                compatible = "atmel,at91sam9g45-udc";
                                reg = <0x00600000 0x80000
                                       0xfff78000 0x400>;
                                interrupts = <27 IRQ_TYPE_LEVEL_HIGH 0>;
 -                              clocks = <&udphs_clk>, <&utmi>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
                                clock-names = "pclk", "hclk";
                                status = "disabled";
-                               ep@0 {
-                                       reg = <0>;
-                                       atmel,fifo-size = <64>;
-                                       atmel,nb-banks = <1>;
-                               };
-                               ep@1 {
-                                       reg = <1>;
-                                       atmel,fifo-size = <1024>;
-                                       atmel,nb-banks = <2>;
-                                       atmel,can-dma;
-                                       atmel,can-isoc;
-                               };
-                               ep@2 {
-                                       reg = <2>;
-                                       atmel,fifo-size = <1024>;
-                                       atmel,nb-banks = <2>;
-                                       atmel,can-dma;
-                                       atmel,can-isoc;
-                               };
-                               ep@3 {
-                                       reg = <3>;
-                                       atmel,fifo-size = <1024>;
-                                       atmel,nb-banks = <3>;
-                                       atmel,can-dma;
-                               };
-                               ep@4 {
-                                       reg = <4>;
-                                       atmel,fifo-size = <1024>;
-                                       atmel,nb-banks = <3>;
-                                       atmel,can-dma;
-                               };
-                               ep@5 {
-                                       reg = <5>;
-                                       atmel,fifo-size = <1024>;
-                                       atmel,nb-banks = <3>;
-                                       atmel,can-dma;
-                                       atmel,can-isoc;
-                               };
-                               ep@6 {
-                                       reg = <6>;
-                                       atmel,fifo-size = <1024>;
-                                       atmel,nb-banks = <3>;
-                                       atmel,can-dma;
-                                       atmel,can-isoc;
-                               };
                        };
  
                        clk32k: sckc@fffffd50 {
                        interrupts = <23 IRQ_TYPE_LEVEL_HIGH 3>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_fb>;
 -                      clocks = <&lcd_clk>, <&lcd_clk>;
 +                      clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_PERIPHERAL 23>;
                        clock-names = "hclk", "lcdc_clk";
                        status = "disabled";
                };
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00700000 0x100000>;
                        interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
 -                      clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
 +                      clocks = <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_SYSTEM 6>;
                        clock-names = "ohci_clk", "hclk", "uhpck";
                        status = "disabled";
                };
                        compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
                        reg = <0x00800000 0x100000>;
                        interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
 -                      clocks = <&utmi>, <&uhphs_clk>;
 +                      clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 22>;
                        clock-names = "usb_clk", "ehci_clk";
                        status = "disabled";
                };
                                  0x3 0x0 0x40000000 0x10000000
                                  0x4 0x0 0x50000000 0x10000000
                                  0x5 0x0 0x60000000 0x10000000>;
 -                      clocks = <&mck>;
 +                      clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
                        status = "disabled";
  
                        nand_controller: nand-controller {
        aliases {
                serial0 = &uart1;
                serial1 = &uart3;
 -              tcb0 = &tcb0;
 -              tcb1 = &tcb1;
 -              i2s0 = &i2s0;
 -              i2s1 = &i2s1;
        };
  
        cpus {
                };
  
                usb0: gadget@300000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        compatible = "atmel,sama5d3-udc";
                        reg = <0x00300000 0x100000
                               0xfc02c000 0x400>;
                        clocks = <&pmc PMC_TYPE_PERIPHERAL 42>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
                        clock-names = "pclk", "hclk";
                        status = "disabled";
-                       ep@0 {
-                               reg = <0>;
-                               atmel,fifo-size = <64>;
-                               atmel,nb-banks = <1>;
-                       };
-                       ep@1 {
-                               reg = <1>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <3>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@2 {
-                               reg = <2>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <3>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@3 {
-                               reg = <3>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@4 {
-                               reg = <4>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@5 {
-                               reg = <5>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@6 {
-                               reg = <6>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@7 {
-                               reg = <7>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@8 {
-                               reg = <8>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@9 {
-                               reg = <9>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@10 {
-                               reg = <10>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@11 {
-                               reg = <11>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@12 {
-                               reg = <12>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@13 {
-                               reg = <13>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@14 {
-                               reg = <14>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@15 {
-                               reg = <15>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
                };
  
                usb1: ohci@400000 {
                                #size-cells = <1>;
                                ranges = <0x0 0xf8034000 0x800>;
                                status = "disabled";
 +
 +                              uart5: serial@200 {
 +                                      compatible = "atmel,at91sam9260-usart";
 +                                      reg = <0x200 0x200>;
 +                                      interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
 +                                      clock-names = "usart";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(11))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(12))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <32>;
 +                                      status = "disabled";
 +                              };
 +
 +                              spi2: spi@400 {
 +                                      compatible = "atmel,at91rm9200-spi";
 +                                      reg = <0x400 0x200>;
 +                                      interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
 +                                      clock-names = "spi_clk";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(11))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(12))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
 +
 +                              i2c2: i2c@600 {
 +                                      compatible = "atmel,sama5d2-i2c";
 +                                      reg = <0x600 0x200>;
 +                                      interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      #address-cells = <1>;
 +                                      #size-cells = <0>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(11))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(12))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
                        };
  
                        flx1: flexcom@f8038000 {
                                #size-cells = <1>;
                                ranges = <0x0 0xf8038000 0x800>;
                                status = "disabled";
 +
 +                              uart6: serial@200 {
 +                                      compatible = "atmel,at91sam9260-usart";
 +                                      reg = <0x200 0x200>;
 +                                      interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
 +                                      clock-names = "usart";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(13))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(14))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <32>;
 +                                      status = "disabled";
 +                              };
 +
 +                              spi3: spi@400 {
 +                                      compatible = "atmel,at91rm9200-spi";
 +                                      reg = <0x400 0x200>;
 +                                      interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
 +                                      clock-names = "spi_clk";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(13))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(14))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
 +
 +                              i2c3: i2c@600 {
 +                                      compatible = "atmel,sama5d2-i2c";
 +                                      reg = <0x600 0x200>;
 +                                      interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      #address-cells = <1>;
 +                                      #size-cells = <0>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(13))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(14))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
                        };
  
                        securam: sram@f8044000 {
                                #size-cells = <1>;
                                ranges = <0x0 0xfc010000 0x800>;
                                status = "disabled";
 +
 +                              uart7: serial@200 {
 +                                      compatible = "atmel,at91sam9260-usart";
 +                                      reg = <0x200 0x200>;
 +                                      interrupts = <21 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
 +                                      clock-names = "usart";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(15))>,
 +                                              <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(16))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <32>;
 +                                      status = "disabled";
 +                              };
 +
 +                              spi4: spi@400 {
 +                                      compatible = "atmel,at91rm9200-spi";
 +                                      reg = <0x400 0x200>;
 +                                      interrupts = <21 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
 +                                      clock-names = "spi_clk";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(15))>,
 +                                              <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(16))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
 +
 +                              i2c4: i2c@600 {
 +                                      compatible = "atmel,sama5d2-i2c";
 +                                      reg = <0x600 0x200>;
 +                                      interrupts = <21 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      #address-cells = <1>;
 +                                      #size-cells = <0>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(15))>,
 +                                              <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(16))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
                        };
  
                        flx3: flexcom@fc014000 {
                                #size-cells = <1>;
                                ranges = <0x0 0xfc014000 0x800>;
                                status = "disabled";
 +
 +                              uart8: serial@200 {
 +                                      compatible = "atmel,at91sam9260-usart";
 +                                      reg = <0x200 0x200>;
 +                                      interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
 +                                      clock-names = "usart";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(17))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(18))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <32>;
 +                                      status = "disabled";
 +                              };
 +
 +                              spi5: spi@400 {
 +                                      compatible = "atmel,at91rm9200-spi";
 +                                      reg = <0x400 0x200>;
 +                                      interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
 +                                      clock-names = "spi_clk";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(17))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(18))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
 +
 +                              i2c5: i2c@600 {
 +                                      compatible = "atmel,sama5d2-i2c";
 +                                      reg = <0x600 0x200>;
 +                                      interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      #address-cells = <1>;
 +                                      #size-cells = <0>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(17))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(18))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
 +
                        };
  
                        flx4: flexcom@fc018000 {
                                #size-cells = <1>;
                                ranges = <0x0 0xfc018000 0x800>;
                                status = "disabled";
 +
 +                              uart9: serial@200 {
 +                                      compatible = "atmel,at91sam9260-usart";
 +                                      reg = <0x200 0x200>;
 +                                      interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
 +                                      clock-names = "usart";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(19))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(20))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <32>;
 +                                      status = "disabled";
 +                              };
 +
 +                              spi6: spi@400 {
 +                                      compatible = "atmel,at91rm9200-spi";
 +                                      reg = <0x400 0x200>;
 +                                      interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
 +                                      clock-names = "spi_clk";
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(19))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(20))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
 +
 +                              i2c6: i2c@600 {
 +                                      compatible = "atmel,sama5d2-i2c";
 +                                      reg = <0x600 0x200>;
 +                                      interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
 +                                      #address-cells = <1>;
 +                                      #size-cells = <0>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
 +                                      dmas = <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(19))>,
 +                                             <&dma0
 +                                              (AT91_XDMAC_DT_MEM_IF(0) |
 +                                               AT91_XDMAC_DT_PER_IF(1) |
 +                                               AT91_XDMAC_DT_PERID(20))>;
 +                                      dma-names = "tx", "rx";
 +                                      atmel,fifo-size = <16>;
 +                                      status = "disabled";
 +                              };
                        };
  
                        trng@fc01c000 {
                                status = "disabled";
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&mci0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
                                clock-names = "mci_clk";
                        };
  
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
 -                              clocks = <&spi0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
                                clock-names = "spi_clk";
                                status = "disabled";
                        };
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
 -                              clocks = <&ssc0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
                                clock-names = "pclk";
                                status = "disabled";
                        };
                                #size-cells = <0>;
                                reg = <0xf0010000 0x100>;
                                interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
 -                              clocks = <&tcb0_clk>, <&clk32k>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&clk32k>;
                                clock-names = "t0_clk", "slow_clk";
                        };
  
                                pinctrl-0 = <&pinctrl_i2c0>;
                                pinctrl-1 = <&pinctrl_i2c0_gpio>;
                                sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>;
 -                              scl-gpios = <&pioA 31 GPIO_ACTIVE_HIGH>;
 +                              scl-gpios = <&pioA 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&twi0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
                                status = "disabled";
                        };
  
                                pinctrl-0 = <&pinctrl_i2c1>;
                                pinctrl-1 = <&pinctrl_i2c1_gpio>;
                                sda-gpios = <&pioC 26 GPIO_ACTIVE_HIGH>;
 -                              scl-gpios = <&pioC 27 GPIO_ACTIVE_HIGH>;
 +                              scl-gpios = <&pioC 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&twi1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
                                status = "disabled";
                        };
  
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart0>;
 -                              clocks = <&usart0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart1>;
 -                              clocks = <&usart1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_uart0>;
 -                              clocks = <&uart0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                reg = <0xf002c000 0x300>;
                                interrupts = <28 IRQ_TYPE_LEVEL_HIGH 4>;
                                #pwm-cells = <3>;
 -                              clocks = <&pwm_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
                                status = "disabled";
                        };
  
                                interrupts = <37 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_isi_data_0_7>;
 -                              clocks = <&isi_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 37>;
                                clock-names = "isi_clk";
                                status = "disabled";
                                port {
                                status = "disabled";
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&mci1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
                                clock-names = "mci_clk";
                        };
  
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
 -                              clocks = <&spi1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 25>;
                                clock-names = "spi_clk";
                                status = "disabled";
                        };
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
 -                              clocks = <&ssc1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
                                clock-names = "pclk";
                                status = "disabled";
                        };
                                        &pinctrl_adc0_ad10
                                        &pinctrl_adc0_ad11
                                        >;
 -                              clocks = <&adc_clk>,
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 29>,
                                         <&adc_op_clk>;
                                clock-names = "adc_clk", "adc_op_clk";
                                atmel,adc-channels-used = <0xfff>;
                                pinctrl-0 = <&pinctrl_i2c2>;
                                pinctrl-1 = <&pinctrl_i2c2_gpio>;
                                sda-gpios = <&pioA 18 GPIO_ACTIVE_HIGH>;
 -                              scl-gpios = <&pioA 19 GPIO_ACTIVE_HIGH>;
 +                              scl-gpios = <&pioA 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                                #address-cells = <1>;
                                #size-cells = <0>;
 -                              clocks = <&twi2_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
                                status = "disabled";
                        };
  
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart2>;
 -                              clocks = <&usart2_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart3>;
 -                              clocks = <&usart3_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                interrupts = <42 IRQ_TYPE_LEVEL_HIGH 0>;
                                dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(17)>;
                                dma-names = "tx";
 -                              clocks = <&sha_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
                                clock-names = "sha_clk";
                        };
  
                                dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(18)>,
                                       <&dma1 2 AT91_DMA_CFG_PER_ID(19)>;
                                dma-names = "tx", "rx";
 -                              clocks = <&aes_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 43>;
                                clock-names = "aes_clk";
                        };
  
                                dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(20)>,
                                       <&dma1 2 AT91_DMA_CFG_PER_ID(21)>;
                                dma-names = "tx", "rx";
 -                              clocks = <&tdes_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
                                clock-names = "tdes_clk";
                        };
  
                                compatible = "atmel,at91sam9g45-trng";
                                reg = <0xf8040000 0x100>;
                                interrupts = <45 IRQ_TYPE_LEVEL_HIGH 0>;
 -                              clocks = <&trng_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
                        };
  
                        hsmc: hsmc@ffffc000 {
                                compatible = "atmel,sama5d3-smc", "syscon", "simple-mfd";
                                reg = <0xffffc000 0x1000>;
                                interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
 -                              clocks = <&hsmc_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
                                #address-cells = <1>;
                                #size-cells = <1>;
                                ranges;
                                reg = <0xffffe600 0x200>;
                                interrupts = <30 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
 -                              clocks = <&dma0_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
                                clock-names = "dma_clk";
                        };
  
                                reg = <0xffffe800 0x200>;
                                interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
 -                              clocks = <&dma1_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 31>;
                                clock-names = "dma_clk";
                        };
  
                        ramc0: ramc@ffffea00 {
                                compatible = "atmel,sama5d3-ddramc";
                                reg = <0xffffea00 0x200>;
 -                              clocks = <&ddrck>, <&mpddr_clk>;
 +                              clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_PERIPHERAL 49>;
                                clock-names = "ddrck", "mpddr";
                        };
  
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
 -                              clocks = <&dbgu_clk>;
 +                              clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
                                clock-names = "usart";
                                status = "disabled";
                        };
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioA_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
                                };
  
                                pioB: gpio@fffff400 {
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioB_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
                                };
  
                                pioC: gpio@fffff600 {
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioC_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
                                };
  
                                pioD: gpio@fffff800 {
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioD_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
                                };
  
                                pioE: gpio@fffffa00 {
                                        gpio-controller;
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
 -                                      clocks = <&pioE_clk>;
 +                                      clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
                                };
                        };
  
                                compatible = "atmel,sama5d3-pmc", "syscon";
                                reg = <0xfffffc00 0x120>;
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
 -                              interrupt-controller;
 -                              #address-cells = <1>;
 -                              #size-cells = <0>;
 -                              #interrupt-cells = <1>;
 -
 -                              main_rc_osc: main_rc_osc {
 -                                      compatible = "atmel,at91sam9x5-clk-main-rc-osc";
 -                                      #clock-cells = <0>;
 -                                      interrupt-parent = <&pmc>;
 -                                      interrupts = <AT91_PMC_MOSCRCS>;
 -                                      clock-frequency = <12000000>;
 -                                      clock-accuracy = <50000000>;
 -                              };
 -
 -                              main_osc: main_osc {
 -                                      compatible = "atmel,at91rm9200-clk-main-osc";
 -                                      #clock-cells = <0>;
 -                                      interrupt-parent = <&pmc>;
 -                                      interrupts = <AT91_PMC_MOSCS>;
 -                                      clocks = <&main_xtal>;
 -                              };
 -
 -                              main: mainck {
 -                                      compatible = "atmel,at91sam9x5-clk-main";
 -                                      #clock-cells = <0>;
 -                                      interrupt-parent = <&pmc>;
 -                                      interrupts = <AT91_PMC_MOSCSELS>;
 -                                      clocks = <&main_rc_osc &main_osc>;
 -                              };
 -
 -                              plla: pllack {
 -                                      compatible = "atmel,sama5d3-clk-pll";
 -                                      #clock-cells = <0>;
 -                                      interrupt-parent = <&pmc>;
 -                                      interrupts = <AT91_PMC_LOCKA>;
 -                                      clocks = <&main>;
 -                                      reg = <0>;
 -                                      atmel,clk-input-range = <8000000 50000000>;
 -                                      #atmel,pll-clk-output-range-cells = <4>;
 -                                      atmel,pll-clk-output-ranges = <400000000 1000000000 0 0>;
 -                              };
 -
 -                              plladiv: plladivck {
 -                                      compatible = "atmel,at91sam9x5-clk-plldiv";
 -                                      #clock-cells = <0>;
 -                                      clocks = <&plla>;
 -                              };
 -
 -                              utmi: utmick {
 -                                      compatible = "atmel,at91sam9x5-clk-utmi";
 -                                      #clock-cells = <0>;
 -                                      interrupt-parent = <&pmc>;
 -                                      interrupts = <AT91_PMC_LOCKU>;
 -                                      clocks = <&main>;
 -                              };
 -
 -                              mck: masterck {
 -                                      compatible = "atmel,at91sam9x5-clk-master";
 -                                      #clock-cells = <0>;
 -                                      interrupt-parent = <&pmc>;
 -                                      interrupts = <AT91_PMC_MCKRDY>;
 -                                      clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>;
 -                                      atmel,clk-output-range = <0 166000000>;
 -                                      atmel,clk-divisors = <1 2 4 3>;
 -                              };
 -
 -                              usb: usbck {
 -                                      compatible = "atmel,at91sam9x5-clk-usb";
 -                                      #clock-cells = <0>;
 -                                      clocks = <&plladiv>, <&utmi>;
 -                              };
 -
 -                              prog: progck {
 -                                      compatible = "atmel,at91sam9x5-clk-programmable";
 -                                      #address-cells = <1>;
 -                                      #size-cells = <0>;
 -                                      interrupt-parent = <&pmc>;
 -                                      clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
 -
 -                                      prog0: prog0 {
 -                                              #clock-cells = <0>;
 -                                              reg = <0>;
 -                                              interrupts = <AT91_PMC_PCKRDY(0)>;
 -                                      };
 -
 -                                      prog1: prog1 {
 -                                              #clock-cells = <0>;
 -                                              reg = <1>;
 -                                              interrupts = <AT91_PMC_PCKRDY(1)>;
 -                                      };
 -
 -                                      prog2: prog2 {
 -                                              #clock-cells = <0>;
 -                                              reg = <2>;
 -                                              interrupts = <AT91_PMC_PCKRDY(2)>;
 -                                      };
 -                              };
 -
 -                              smd: smdclk {
 -                                      compatible = "atmel,at91sam9x5-clk-smd";
 -                                      #clock-cells = <0>;
 -                                      clocks = <&plladiv>, <&utmi>;
 -                              };
 -
 -                              systemck {
 -                                      compatible = "atmel,at91rm9200-clk-system";
 -                                      #address-cells = <1>;
 -                                      #size-cells = <0>;
 -
 -                                      ddrck: ddrck {
 -                                              #clock-cells = <0>;
 -                                              reg = <2>;
 -                                              clocks = <&mck>;
 -                                      };
 -
 -                                      smdck: smdck {
 -                                              #clock-cells = <0>;
 -                                              reg = <4>;
 -                                              clocks = <&smd>;
 -                                      };
 -
 -                                      uhpck: uhpck {
 -                                              #clock-cells = <0>;
 -                                              reg = <6>;
 -                                              clocks = <&usb>;
 -                                      };
 -
 -                                      udpck: udpck {
 -                                              #clock-cells = <0>;
 -                                              reg = <7>;
 -                                              clocks = <&usb>;
 -                                      };
 -
 -                                      pck0: pck0 {
 -                                              #clock-cells = <0>;
 -                                              reg = <8>;
 -                                              clocks = <&prog0>;
 -                                      };
 -
 -                                      pck1: pck1 {
 -                                              #clock-cells = <0>;
 -                                              reg = <9>;
 -                                              clocks = <&prog1>;
 -                                      };
 -
 -                                      pck2: pck2 {
 -                                              #clock-cells = <0>;
 -                                              reg = <10>;
 -                                              clocks = <&prog2>;
 -                                      };
 -                              };
 -
 -                              periphck {
 -                                      compatible = "atmel,at91sam9x5-clk-peripheral";
 -                                      #address-cells = <1>;
 -                                      #size-cells = <0>;
 -                                      clocks = <&mck>;
 -
 -                                      dbgu_clk: dbgu_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <2>;
 -                                      };
 -
 -                                      hsmc_clk: hsmc_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <5>;
 -                                      };
 -
 -                                      pioA_clk: pioA_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <6>;
 -                                      };
 -
 -                                      pioB_clk: pioB_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <7>;
 -                                      };
 -
 -                                      pioC_clk: pioC_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <8>;
 -                                      };
 -
 -                                      pioD_clk: pioD_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <9>;
 -                                      };
 -
 -                                      pioE_clk: pioE_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <10>;
 -                                      };
 -
 -                                      usart0_clk: usart0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <12>;
 -                                              atmel,clk-output-range = <0 83000000>;
 -                                      };
 -
 -                                      usart1_clk: usart1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <13>;
 -                                              atmel,clk-output-range = <0 83000000>;
 -                                      };
 -
 -                                      usart2_clk: usart2_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <14>;
 -                                              atmel,clk-output-range = <0 83000000>;
 -                                      };
 -
 -                                      usart3_clk: usart3_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <15>;
 -                                              atmel,clk-output-range = <0 83000000>;
 -                                      };
 -
 -                                      uart0_clk: uart0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <16>;
 -                                              atmel,clk-output-range = <0 83000000>;
 -                                      };
 -
 -                                      twi0_clk: twi0_clk {
 -                                              reg = <18>;
 -                                              #clock-cells = <0>;
 -                                              atmel,clk-output-range = <0 41500000>;
 -                                      };
 -
 -                                      twi1_clk: twi1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <19>;
 -                                              atmel,clk-output-range = <0 41500000>;
 -                                      };
 -
 -                                      twi2_clk: twi2_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <20>;
 -                                              atmel,clk-output-range = <0 41500000>;
 -                                      };
 -
 -                                      mci0_clk: mci0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <21>;
 -                                      };
 -
 -                                      mci1_clk: mci1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <22>;
 -                                      };
 -
 -                                      spi0_clk: spi0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <24>;
 -                                              atmel,clk-output-range = <0 166000000>;
 -                                      };
 -
 -                                      spi1_clk: spi1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <25>;
 -                                              atmel,clk-output-range = <0 166000000>;
 -                                      };
 -
 -                                      tcb0_clk: tcb0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <26>;
 -                                              atmel,clk-output-range = <0 166000000>;
 -                                      };
 -
 -                                      pwm_clk: pwm_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <28>;
 -                                      };
 -
 -                                      adc_clk: adc_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <29>;
 -                                              atmel,clk-output-range = <0 83000000>;
 -                                      };
 -
 -                                      dma0_clk: dma0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <30>;
 -                                      };
 -
 -                                      dma1_clk: dma1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <31>;
 -                                      };
 -
 -                                      uhphs_clk: uhphs_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <32>;
 -                                      };
 -
 -                                      udphs_clk: udphs_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <33>;
 -                                      };
 -
 -                                      isi_clk: isi_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <37>;
 -                                      };
 -
 -                                      ssc0_clk: ssc0_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <38>;
 -                                              atmel,clk-output-range = <0 83000000>;
 -                                      };
 -
 -                                      ssc1_clk: ssc1_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <39>;
 -                                              atmel,clk-output-range = <0 83000000>;
 -                                      };
 -
 -                                      sha_clk: sha_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <42>;
 -                                      };
 -
 -                                      aes_clk: aes_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <43>;
 -                                      };
 -
 -                                      tdes_clk: tdes_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <44>;
 -                                      };
 -
 -                                      trng_clk: trng_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <45>;
 -                                      };
 -
 -                                      fuse_clk: fuse_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <48>;
 -                                      };
 -
 -                                      mpddr_clk: mpddr_clk {
 -                                              #clock-cells = <0>;
 -                                              reg = <49>;
 -                                      };
 -                              };
 +                              #clock-cells = <2>;
 +                              clocks = <&clk32k>, <&main_xtal>;
 +                              clock-names = "slow_clk", "main_xtal";
                        };
  
                        reset_controller: rstc@fffffe00 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffe30 0xf>;
                                interrupts = <3 IRQ_TYPE_LEVEL_HIGH 5>;
 -                              clocks = <&mck>;
 +                              clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
                        };
  
                        watchdog: watchdog@fffffe40 {
                };
  
                usb0: gadget@500000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        compatible = "atmel,sama5d3-udc";
                        reg = <0x00500000 0x100000
                               0xf8030000 0x4000>;
                        interrupts = <33 IRQ_TYPE_LEVEL_HIGH 2>;
 -                      clocks = <&udphs_clk>, <&utmi>;
 +                      clocks = <&pmc PMC_TYPE_PERIPHERAL 33>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
                        clock-names = "pclk", "hclk";
                        status = "disabled";
-                       ep@0 {
-                               reg = <0>;
-                               atmel,fifo-size = <64>;
-                               atmel,nb-banks = <1>;
-                       };
-                       ep@1 {
-                               reg = <1>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <3>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@2 {
-                               reg = <2>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <3>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@3 {
-                               reg = <3>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                       };
-                       ep@4 {
-                               reg = <4>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                       };
-                       ep@5 {
-                               reg = <5>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                       };
-                       ep@6 {
-                               reg = <6>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                       };
-                       ep@7 {
-                               reg = <7>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                       };
-                       ep@8 {
-                               reg = <8>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                       };
-                       ep@9 {
-                               reg = <9>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                       };
-                       ep@10 {
-                               reg = <10>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                       };
-                       ep@11 {
-                               reg = <11>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                       };
-                       ep@12 {
-                               reg = <12>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                       };
-                       ep@13 {
-                               reg = <13>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                       };
-                       ep@14 {
-                               reg = <14>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                       };
-                       ep@15 {
-                               reg = <15>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                       };
                };
  
                usb1: ohci@600000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00600000 0x100000>;
                        interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>;
 -                      clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
 +                      clocks = <&pmc PMC_TYPE_PERIPHERAL 32>, <&pmc PMC_TYPE_PERIPHERAL 32>, <&pmc PMC_TYPE_SYSTEM 6>;
                        clock-names = "ohci_clk", "hclk", "uhpck";
                        status = "disabled";
                };
                        compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
                        reg = <0x00700000 0x100000>;
                        interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>;
 -                      clocks = <&utmi>, <&uhphs_clk>;
 +                      clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 32>;
                        clock-names = "usb_clk", "ehci_clk";
                        status = "disabled";
                };
                                  0x1 0x0 0x40000000 0x10000000
                                  0x2 0x0 0x50000000 0x10000000
                                  0x3 0x0 0x60000000 0x10000000>;
 -                      clocks = <&mck>;
 +                      clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
                        status = "disabled";
  
                        nand_controller: nand-controller {
@@@ -96,8 -96,6 +96,6 @@@
                };
  
                usb0: gadget@400000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        compatible = "atmel,sama5d3-udc";
                        reg = <0x00400000 0x100000
                               0xfc02c000 0x4000>;
                        clocks = <&pmc PMC_TYPE_PERIPHERAL 47>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
                        clock-names = "pclk", "hclk";
                        status = "disabled";
-                       ep@0 {
-                               reg = <0>;
-                               atmel,fifo-size = <64>;
-                               atmel,nb-banks = <1>;
-                       };
-                       ep@1 {
-                               reg = <1>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <3>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@2 {
-                               reg = <2>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <3>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@3 {
-                               reg = <3>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@4 {
-                               reg = <4>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@5 {
-                               reg = <5>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@6 {
-                               reg = <6>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@7 {
-                               reg = <7>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-dma;
-                               atmel,can-isoc;
-                       };
-                       ep@8 {
-                               reg = <8>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@9 {
-                               reg = <9>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@10 {
-                               reg = <10>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@11 {
-                               reg = <11>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@12 {
-                               reg = <12>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@13 {
-                               reg = <13>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@14 {
-                               reg = <14>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
-                       ep@15 {
-                               reg = <15>;
-                               atmel,fifo-size = <1024>;
-                               atmel,nb-banks = <2>;
-                               atmel,can-isoc;
-                       };
                };
  
                usb1: ohci@500000 {
                                pinctrl-0 = <&pinctrl_i2c0>;
                                pinctrl-1 = <&pinctrl_i2c0_gpio>;
                                sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>;
 -                              scl-gpios = <&pioA 31 GPIO_ACTIVE_HIGH>;
 +                              scl-gpios = <&pioA 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
                                pinctrl-0 = <&pinctrl_i2c1>;
                                pinctrl-1 = <&pinctrl_i2c1_gpio>;
                                sda-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
 -                              scl-gpios = <&pioE 30 GPIO_ACTIVE_HIGH>;
 +                              scl-gpios = <&pioE 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
                                pinctrl-0 = <&pinctrl_i2c2>;
                                pinctrl-1 = <&pinctrl_i2c2_gpio>;
                                sda-gpios = <&pioB 29 GPIO_ACTIVE_HIGH>;
 -                              scl-gpios = <&pioB 30 GPIO_ACTIVE_HIGH>;
 +                              scl-gpios = <&pioB 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                clocks = <&pmc PMC_TYPE_PERIPHERAL 34>;
@@@ -10,7 -10,6 +10,7 @@@
  #include <dt-bindings/clock/qcom,gpucc-sc7180.h>
  #include <dt-bindings/clock/qcom,rpmh.h>
  #include <dt-bindings/clock/qcom,videocc-sc7180.h>
 +#include <dt-bindings/interconnect/qcom,sc7180.h>
  #include <dt-bindings/interrupt-controller/arm-gic.h>
  #include <dt-bindings/phy/phy-qcom-qusb2.h>
  #include <dt-bindings/power/qcom-aoss-qmp.h>
                #size-cells = <2>;
                ranges;
  
 +              hyp_mem: memory@80000000 {
 +                      reg = <0x0 0x80000000 0x0 0x600000>;
 +                      no-map;
 +              };
 +
 +              xbl_mem: memory@80600000 {
 +                      reg = <0x0 0x80600000 0x0 0x200000>;
 +                      no-map;
 +              };
 +
 +              aop_mem: memory@80800000 {
 +                      reg = <0x0 0x80800000 0x0 0x20000>;
 +                      no-map;
 +              };
 +
                aop_cmd_db_mem: memory@80820000 {
                        reg = <0x0 0x80820000 0x0 0x20000>;
                        compatible = "qcom,cmd-db";
 +                      no-map;
 +              };
 +
 +              sec_apps_mem: memory@808ff000 {
 +                      reg = <0x0 0x808ff000 0x0 0x1000>;
 +                      no-map;
                };
  
                smem_mem: memory@80900000 {
                        no-map;
                };
  
 -              venus_mem: memory@8f600000 {
 -                      reg = <0 0x8f600000 0 0x500000>;
 +              tz_mem: memory@80b00000 {
 +                      reg = <0x0 0x80b00000 0x0 0x3900000>;
 +                      no-map;
 +              };
 +
 +              rmtfs_mem: memory@84400000 {
 +                      compatible = "qcom,rmtfs-mem";
 +                      reg = <0x0 0x84400000 0x0 0x200000>;
                        no-map;
 +
 +                      qcom,client-id = <1>;
 +                      qcom,vmid = <15>;
                };
        };
  
  
                CPU0: cpu@0 {
                        device_type = "cpu";
 -                      compatible = "arm,armv8";
 +                      compatible = "qcom,kryo468";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
 +                      cpu-idle-states = <&LITTLE_CPU_SLEEP_0
 +                                         &LITTLE_CPU_SLEEP_1
 +                                         &CLUSTER_SLEEP_0>;
                        capacity-dmips-mhz = <1024>;
                        dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_0>;
  
                CPU1: cpu@100 {
                        device_type = "cpu";
 -                      compatible = "arm,armv8";
 +                      compatible = "qcom,kryo468";
                        reg = <0x0 0x100>;
                        enable-method = "psci";
 +                      cpu-idle-states = <&LITTLE_CPU_SLEEP_0
 +                                         &LITTLE_CPU_SLEEP_1
 +                                         &CLUSTER_SLEEP_0>;
                        capacity-dmips-mhz = <1024>;
                        dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_100>;
  
                CPU2: cpu@200 {
                        device_type = "cpu";
 -                      compatible = "arm,armv8";
 +                      compatible = "qcom,kryo468";
                        reg = <0x0 0x200>;
                        enable-method = "psci";
 +                      cpu-idle-states = <&LITTLE_CPU_SLEEP_0
 +                                         &LITTLE_CPU_SLEEP_1
 +                                         &CLUSTER_SLEEP_0>;
                        capacity-dmips-mhz = <1024>;
                        dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_200>;
  
                CPU3: cpu@300 {
                        device_type = "cpu";
 -                      compatible = "arm,armv8";
 +                      compatible = "qcom,kryo468";
                        reg = <0x0 0x300>;
                        enable-method = "psci";
 +                      cpu-idle-states = <&LITTLE_CPU_SLEEP_0
 +                                         &LITTLE_CPU_SLEEP_1
 +                                         &CLUSTER_SLEEP_0>;
                        capacity-dmips-mhz = <1024>;
                        dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_300>;
  
                CPU4: cpu@400 {
                        device_type = "cpu";
 -                      compatible = "arm,armv8";
 +                      compatible = "qcom,kryo468";
                        reg = <0x0 0x400>;
                        enable-method = "psci";
 +                      cpu-idle-states = <&LITTLE_CPU_SLEEP_0
 +                                         &LITTLE_CPU_SLEEP_1
 +                                         &CLUSTER_SLEEP_0>;
                        capacity-dmips-mhz = <1024>;
                        dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_400>;
  
                CPU5: cpu@500 {
                        device_type = "cpu";
 -                      compatible = "arm,armv8";
 +                      compatible = "qcom,kryo468";
                        reg = <0x0 0x500>;
                        enable-method = "psci";
 +                      cpu-idle-states = <&LITTLE_CPU_SLEEP_0
 +                                         &LITTLE_CPU_SLEEP_1
 +                                         &CLUSTER_SLEEP_0>;
                        capacity-dmips-mhz = <1024>;
                        dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_500>;
  
                CPU6: cpu@600 {
                        device_type = "cpu";
 -                      compatible = "arm,armv8";
 +                      compatible = "qcom,kryo468";
                        reg = <0x0 0x600>;
                        enable-method = "psci";
 +                      cpu-idle-states = <&BIG_CPU_SLEEP_0
 +                                         &BIG_CPU_SLEEP_1
 +                                         &CLUSTER_SLEEP_0>;
                        capacity-dmips-mhz = <1740>;
                        dynamic-power-coefficient = <405>;
                        next-level-cache = <&L2_600>;
  
                CPU7: cpu@700 {
                        device_type = "cpu";
 -                      compatible = "arm,armv8";
 +                      compatible = "qcom,kryo468";
                        reg = <0x0 0x700>;
                        enable-method = "psci";
 +                      cpu-idle-states = <&BIG_CPU_SLEEP_0
 +                                         &BIG_CPU_SLEEP_1
 +                                         &CLUSTER_SLEEP_0>;
                        capacity-dmips-mhz = <1740>;
                        dynamic-power-coefficient = <405>;
                        next-level-cache = <&L2_700>;
                                };
                        };
                };
 +
 +              idle-states {
 +                      entry-method = "psci";
 +
 +                      LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
 +                              compatible = "arm,idle-state";
 +                              idle-state-name = "little-power-down";
 +                              arm,psci-suspend-param = <0x40000003>;
 +                              entry-latency-us = <549>;
 +                              exit-latency-us = <901>;
 +                              min-residency-us = <1774>;
 +                              local-timer-stop;
 +                      };
 +
 +                      LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
 +                              compatible = "arm,idle-state";
 +                              idle-state-name = "little-rail-power-down";
 +                              arm,psci-suspend-param = <0x40000004>;
 +                              entry-latency-us = <702>;
 +                              exit-latency-us = <915>;
 +                              min-residency-us = <4001>;
 +                              local-timer-stop;
 +                      };
 +
 +                      BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
 +                              compatible = "arm,idle-state";
 +                              idle-state-name = "big-power-down";
 +                              arm,psci-suspend-param = <0x40000003>;
 +                              entry-latency-us = <523>;
 +                              exit-latency-us = <1244>;
 +                              min-residency-us = <2207>;
 +                              local-timer-stop;
 +                      };
 +
 +                      BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
 +                              compatible = "arm,idle-state";
 +                              idle-state-name = "big-rail-power-down";
 +                              arm,psci-suspend-param = <0x40000004>;
 +                              entry-latency-us = <526>;
 +                              exit-latency-us = <1854>;
 +                              min-residency-us = <5555>;
 +                              local-timer-stop;
 +                      };
 +
 +                      CLUSTER_SLEEP_0: cluster-sleep-0 {
 +                              compatible = "arm,idle-state";
 +                              idle-state-name = "cluster-power-down";
 +                              arm,psci-suspend-param = <0x40003444>;
 +                              entry-latency-us = <3263>;
 +                              exit-latency-us = <6562>;
 +                              min-residency-us = <9926>;
 +                              local-timer-stop;
 +                      };
 +              };
        };
  
        memory@80000000 {
                        interrupt-controller;
                        #interrupt-cells = <2>;
                };
 +
 +              ipa_smp2p_out: ipa-ap-to-modem {
 +                      qcom,entry-name = "ipa";
 +                      #qcom,smem-state-cells = <1>;
 +              };
 +
 +              ipa_smp2p_in: ipa-modem-to-ap {
 +                      qcom,entry-name = "ipa";
 +                      interrupt-controller;
 +                      #interrupt-cells = <2>;
 +              };
        };
  
        psci {
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
  
 +              ipa: ipa@1e40000 {
 +                      compatible = "qcom,sc7180-ipa";
 +
 +                      iommus = <&apps_smmu 0x440 0x3>;
 +                      reg = <0 0x1e40000 0 0x7000>,
 +                            <0 0x1e47000 0 0x2000>,
 +                            <0 0x1e04000 0 0x2c000>;
 +                      reg-names = "ipa-reg",
 +                                  "ipa-shared",
 +                                  "gsi";
 +
 +                      interrupts-extended = <&intc 0 311 IRQ_TYPE_EDGE_RISING>,
 +                                            <&intc 0 432 IRQ_TYPE_LEVEL_HIGH>,
 +                                            <&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
 +                                            <&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
 +                      interrupt-names = "ipa",
 +                                        "gsi",
 +                                        "ipa-clock-query",
 +                                        "ipa-setup-ready";
 +
 +                      clocks = <&rpmhcc RPMH_IPA_CLK>;
 +                      clock-names = "core";
 +
 +                      interconnects = <&aggre2_noc MASTER_IPA &mc_virt SLAVE_EBI1>,
 +                                      <&aggre2_noc MASTER_IPA &system_noc SLAVE_IMEM>,
 +                                      <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_IPA_CFG>;
 +                      interconnect-names = "memory",
 +                                           "imem",
 +                                           "config";
 +
 +                      qcom,smem-states = <&ipa_smp2p_out 0>,
 +                                         <&ipa_smp2p_out 1>;
 +                      qcom,smem-state-names = "ipa-clock-enabled-valid",
 +                                              "ipa-clock-enabled";
 +
 +                      modem-remoteproc = <&remoteproc_mpss>;
 +
 +                      status = "disabled";
 +              };
 +
                tcsr_mutex_regs: syscon@1f40000 {
                        compatible = "syscon";
                        reg = <0 0x01f40000 0 0x40000>;
                };
  
 +              tcsr_regs: syscon@1fc0000 {
 +                      compatible = "syscon";
 +                      reg = <0 0x01fc0000 0 0x40000>;
 +              };
 +
                tlmm: pinctrl@3500000 {
                        compatible = "qcom,sc7180-pinctrl";
                        reg = <0 0x03500000 0 0x300000>,
                        };
                };
  
 -              sdhc_2: sdhci@8804000 {
 -                      compatible = "qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
 -                      reg = <0 0x08804000 0 0x1000>;
 +              gpu: gpu@5000000 {
 +                      compatible = "qcom,adreno-618.0", "qcom,adreno";
 +                      #stream-id-cells = <16>;
 +                      reg = <0 0x05000000 0 0x40000>, <0 0x0509e000 0 0x1000>,
 +                              <0 0x05061000 0 0x800>;
 +                      reg-names = "kgsl_3d0_reg_memory", "cx_mem", "cx_dbgc";
 +                      interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
 +                      iommus = <&adreno_smmu 0>;
 +                      operating-points-v2 = <&gpu_opp_table>;
 +                      qcom,gmu = <&gmu>;
  
 -                      iommus = <&apps_smmu 0x80 0>;
 -                      interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
 -                                      <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
 -                      interrupt-names = "hc_irq", "pwr_irq";
 +                      gpu_opp_table: opp-table {
 +                              compatible = "operating-points-v2";
  
 -                      clocks = <&gcc GCC_SDCC2_APPS_CLK>,
 -                                      <&gcc GCC_SDCC2_AHB_CLK>;
 -                      clock-names = "core", "iface";
 +                              opp-800000000 {
 +                                      opp-hz = /bits/ 64 <800000000>;
 +                                      opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
 +                              };
  
 -                      bus-width = <4>;
 +                              opp-650000000 {
 +                                      opp-hz = /bits/ 64 <650000000>;
 +                                      opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
 +                              };
  
 -                      status = "disabled";
 +                              opp-565000000 {
 +                                      opp-hz = /bits/ 64 <565000000>;
 +                                      opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
 +                              };
 +
 +                              opp-430000000 {
 +                                      opp-hz = /bits/ 64 <430000000>;
 +                                      opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
 +                              };
 +
 +                              opp-355000000 {
 +                                      opp-hz = /bits/ 64 <355000000>;
 +                                      opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
 +                              };
 +
 +                              opp-267000000 {
 +                                      opp-hz = /bits/ 64 <267000000>;
 +                                      opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
 +                              };
 +
 +                              opp-180000000 {
 +                                      opp-hz = /bits/ 64 <180000000>;
 +                                      opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
 +                              };
 +                      };
 +              };
 +
 +              adreno_smmu: iommu@5040000 {
 +                      compatible = "qcom,sc7180-smmu-v2", "qcom,smmu-v2";
 +                      reg = <0 0x05040000 0 0x10000>;
 +                      #iommu-cells = <1>;
 +                      #global-interrupts = <2>;
 +                      interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
 +                                      <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
 +                                      <GIC_SPI 364 IRQ_TYPE_EDGE_RISING>,
 +                                      <GIC_SPI 365 IRQ_TYPE_EDGE_RISING>,
 +                                      <GIC_SPI 366 IRQ_TYPE_EDGE_RISING>,
 +                                      <GIC_SPI 367 IRQ_TYPE_EDGE_RISING>,
 +                                      <GIC_SPI 368 IRQ_TYPE_EDGE_RISING>,
 +                                      <GIC_SPI 369 IRQ_TYPE_EDGE_RISING>,
 +                                      <GIC_SPI 370 IRQ_TYPE_EDGE_RISING>,
 +                                      <GIC_SPI 371 IRQ_TYPE_EDGE_RISING>;
 +
 +                      clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
 +                              <&gcc GCC_GPU_CFG_AHB_CLK>;
 +                      clock-names = "bus", "iface";
 +
 +                      power-domains = <&gpucc CX_GDSC>;
 +              };
 +
 +              gmu: gmu@506a000 {
 +                      compatible="qcom,adreno-gmu-618.0", "qcom,adreno-gmu";
 +                      reg = <0 0x0506a000 0 0x31000>, <0 0x0b290000 0 0x10000>,
 +                              <0 0x0b490000 0 0x10000>;
 +                      reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq";
 +                      interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
 +                                 <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
 +                      interrupt-names = "hfi", "gmu";
 +                      clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
 +                             <&gpucc GPU_CC_CXO_CLK>,
 +                             <&gcc GCC_DDRSS_GPU_AXI_CLK>,
 +                             <&gcc GCC_GPU_MEMNOC_GFX_CLK>;
 +                      clock-names = "gmu", "cxo", "axi", "memnoc";
 +                      power-domains = <&gpucc CX_GDSC>, <&gpucc GX_GDSC>;
 +                      power-domain-names = "cx", "gx";
 +                      iommus = <&adreno_smmu 5>;
 +                      operating-points-v2 = <&gmu_opp_table>;
 +
 +                      gmu_opp_table: opp-table {
 +                              compatible = "operating-points-v2";
 +
 +                              opp-200000000 {
 +                                      opp-hz = /bits/ 64 <200000000>;
 +                                      opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
 +                              };
 +                      };
                };
  
                gpucc: clock-controller@5090000 {
                        #power-domain-cells = <1>;
                };
  
 +              stm@6002000 {
 +                      compatible = "arm,coresight-stm", "arm,primecell";
 +                      reg = <0 0x06002000 0 0x1000>,
 +                            <0 0x16280000 0 0x180000>;
 +                      reg-names = "stm-base", "stm-stimulus-base";
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      stm_out: endpoint {
 +                                              remote-endpoint = <&funnel0_in7>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              funnel@6041000 {
 +                      compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 +                      reg = <0 0x06041000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      funnel0_out: endpoint {
 +                                              remote-endpoint = <&merge_funnel_in0>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              #address-cells = <1>;
 +                              #size-cells = <0>;
 +
 +                              port@7 {
 +                                      reg = <7>;
 +                                      funnel0_in7: endpoint {
 +                                              remote-endpoint = <&stm_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              funnel@6042000 {
 +                      compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 +                      reg = <0 0x06042000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      funnel1_out: endpoint {
 +                                              remote-endpoint = <&merge_funnel_in1>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              #address-cells = <1>;
 +                              #size-cells = <0>;
 +
 +                              port@4 {
 +                                      reg = <4>;
 +                                      funnel1_in4: endpoint {
 +                                              remote-endpoint = <&apss_merge_funnel_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              funnel@6045000 {
 +                      compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 +                      reg = <0 0x06045000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      merge_funnel_out: endpoint {
 +                                              remote-endpoint = <&swao_funnel_in>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              #address-cells = <1>;
 +                              #size-cells = <0>;
 +
 +                              port@0 {
 +                                      reg = <0>;
 +                                      merge_funnel_in0: endpoint {
 +                                              remote-endpoint = <&funnel0_out>;
 +                                      };
 +                              };
 +
 +                              port@1 {
 +                                      reg = <1>;
 +                                      merge_funnel_in1: endpoint {
 +                                              remote-endpoint = <&funnel1_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              replicator@6046000 {
 +                      compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
 +                      reg = <0 0x06046000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      replicator_out: endpoint {
 +                                              remote-endpoint = <&etr_in>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              port {
 +                                      replicator_in: endpoint {
 +                                              remote-endpoint = <&swao_replicator_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etr@6048000 {
 +                      compatible = "arm,coresight-tmc", "arm,primecell";
 +                      reg = <0 0x06048000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,scatter-gather;
 +
 +                      in-ports {
 +                              port {
 +                                      etr_in: endpoint {
 +                                              remote-endpoint = <&replicator_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              funnel@6b04000 {
 +                      compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 +                      reg = <0 0x06b04000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      swao_funnel_out: endpoint {
 +                                              remote-endpoint = <&etf_in>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              #address-cells = <1>;
 +                              #size-cells = <0>;
 +
 +                              port@7 {
 +                                      reg = <7>;
 +                                      swao_funnel_in: endpoint {
 +                                              remote-endpoint = <&merge_funnel_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etf@6b05000 {
 +                      compatible = "arm,coresight-tmc", "arm,primecell";
 +                      reg = <0 0x06b05000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      etf_out: endpoint {
 +                                              remote-endpoint = <&swao_replicator_in>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              port {
 +                                      etf_in: endpoint {
 +                                              remote-endpoint = <&swao_funnel_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              replicator@6b06000 {
 +                      compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
 +                      reg = <0 0x06b06000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      swao_replicator_out: endpoint {
 +                                              remote-endpoint = <&replicator_in>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              port {
 +                                      swao_replicator_in: endpoint {
 +                                              remote-endpoint = <&etf_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etm@7040000 {
 +                      compatible = "arm,coresight-etm4x", "arm,primecell";
 +                      reg = <0 0x07040000 0 0x1000>;
 +
 +                      cpu = <&CPU0>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,coresight-loses-context-with-cpu;
 +
 +                      out-ports {
 +                              port {
 +                                      etm0_out: endpoint {
 +                                              remote-endpoint = <&apss_funnel_in0>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etm@7140000 {
 +                      compatible = "arm,coresight-etm4x", "arm,primecell";
 +                      reg = <0 0x07140000 0 0x1000>;
 +
 +                      cpu = <&CPU1>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,coresight-loses-context-with-cpu;
 +
 +                      out-ports {
 +                              port {
 +                                      etm1_out: endpoint {
 +                                              remote-endpoint = <&apss_funnel_in1>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etm@7240000 {
 +                      compatible = "arm,coresight-etm4x", "arm,primecell";
 +                      reg = <0 0x07240000 0 0x1000>;
 +
 +                      cpu = <&CPU2>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,coresight-loses-context-with-cpu;
 +
 +                      out-ports {
 +                              port {
 +                                      etm2_out: endpoint {
 +                                              remote-endpoint = <&apss_funnel_in2>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etm@7340000 {
 +                      compatible = "arm,coresight-etm4x", "arm,primecell";
 +                      reg = <0 0x07340000 0 0x1000>;
 +
 +                      cpu = <&CPU3>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,coresight-loses-context-with-cpu;
 +
 +                      out-ports {
 +                              port {
 +                                      etm3_out: endpoint {
 +                                              remote-endpoint = <&apss_funnel_in3>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etm@7440000 {
 +                      compatible = "arm,coresight-etm4x", "arm,primecell";
 +                      reg = <0 0x07440000 0 0x1000>;
 +
 +                      cpu = <&CPU4>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,coresight-loses-context-with-cpu;
 +
 +                      out-ports {
 +                              port {
 +                                      etm4_out: endpoint {
 +                                              remote-endpoint = <&apss_funnel_in4>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etm@7540000 {
 +                      compatible = "arm,coresight-etm4x", "arm,primecell";
 +                      reg = <0 0x07540000 0 0x1000>;
 +
 +                      cpu = <&CPU5>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,coresight-loses-context-with-cpu;
 +
 +                      out-ports {
 +                              port {
 +                                      etm5_out: endpoint {
 +                                              remote-endpoint = <&apss_funnel_in5>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etm@7640000 {
 +                      compatible = "arm,coresight-etm4x", "arm,primecell";
 +                      reg = <0 0x07640000 0 0x1000>;
 +
 +                      cpu = <&CPU6>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,coresight-loses-context-with-cpu;
 +
 +                      out-ports {
 +                              port {
 +                                      etm6_out: endpoint {
 +                                              remote-endpoint = <&apss_funnel_in6>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              etm@7740000 {
 +                      compatible = "arm,coresight-etm4x", "arm,primecell";
 +                      reg = <0 0x07740000 0 0x1000>;
 +
 +                      cpu = <&CPU7>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +                      arm,coresight-loses-context-with-cpu;
 +
 +                      out-ports {
 +                              port {
 +                                      etm7_out: endpoint {
 +                                              remote-endpoint = <&apss_funnel_in7>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              funnel@7800000 { /* APSS Funnel */
 +                      compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 +                      reg = <0 0x07800000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      apss_funnel_out: endpoint {
 +                                              remote-endpoint = <&apss_merge_funnel_in>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              #address-cells = <1>;
 +                              #size-cells = <0>;
 +
 +                              port@0 {
 +                                      reg = <0>;
 +                                      apss_funnel_in0: endpoint {
 +                                              remote-endpoint = <&etm0_out>;
 +                                      };
 +                              };
 +
 +                              port@1 {
 +                                      reg = <1>;
 +                                      apss_funnel_in1: endpoint {
 +                                              remote-endpoint = <&etm1_out>;
 +                                      };
 +                              };
 +
 +                              port@2 {
 +                                      reg = <2>;
 +                                      apss_funnel_in2: endpoint {
 +                                              remote-endpoint = <&etm2_out>;
 +                                      };
 +                              };
 +
 +                              port@3 {
 +                                      reg = <3>;
 +                                      apss_funnel_in3: endpoint {
 +                                              remote-endpoint = <&etm3_out>;
 +                                      };
 +                              };
 +
 +                              port@4 {
 +                                      reg = <4>;
 +                                      apss_funnel_in4: endpoint {
 +                                              remote-endpoint = <&etm4_out>;
 +                                      };
 +                              };
 +
 +                              port@5 {
 +                                      reg = <5>;
 +                                      apss_funnel_in5: endpoint {
 +                                              remote-endpoint = <&etm5_out>;
 +                                      };
 +                              };
 +
 +                              port@6 {
 +                                      reg = <6>;
 +                                      apss_funnel_in6: endpoint {
 +                                              remote-endpoint = <&etm6_out>;
 +                                      };
 +                              };
 +
 +                              port@7 {
 +                                      reg = <7>;
 +                                      apss_funnel_in7: endpoint {
 +                                              remote-endpoint = <&etm7_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              funnel@7810000 {
 +                      compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 +                      reg = <0 0x07810000 0 0x1000>;
 +
 +                      clocks = <&aoss_qmp>;
 +                      clock-names = "apb_pclk";
 +
 +                      out-ports {
 +                              port {
 +                                      apss_merge_funnel_out: endpoint {
 +                                              remote-endpoint = <&funnel1_in4>;
 +                                      };
 +                              };
 +                      };
 +
 +                      in-ports {
 +                              port {
 +                                      apss_merge_funnel_in: endpoint {
 +                                              remote-endpoint = <&apss_funnel_out>;
 +                                      };
 +                              };
 +                      };
 +              };
 +
 +              remoteproc_mpss: remoteproc@4080000 {
 +                      compatible = "qcom,sc7180-mpss-pas";
 +                      reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
 +                      reg-names = "qdsp6", "rmb";
 +
 +                      interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
 +                                            <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
 +                                            <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
 +                                            <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
 +                                            <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
 +                                            <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
 +                      interrupt-names = "wdog", "fatal", "ready", "handover",
 +                                        "stop-ack", "shutdown-ack";
 +
 +                      clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
 +                               <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
 +                               <&gcc GCC_MSS_NAV_AXI_CLK>,
 +                               <&gcc GCC_MSS_SNOC_AXI_CLK>,
 +                               <&gcc GCC_MSS_MFAB_AXIS_CLK>,
 +                               <&rpmhcc RPMH_CXO_CLK>;
 +                      clock-names = "iface", "bus", "nav", "snoc_axi",
 +                                    "mnoc_axi", "xo";
 +
 +                      power-domains = <&aoss_qmp AOSS_QMP_LS_MODEM>,
 +                                      <&rpmhpd SC7180_CX>,
 +                                      <&rpmhpd SC7180_MX>,
 +                                      <&rpmhpd SC7180_MSS>;
 +                      power-domain-names = "load_state", "cx", "mx", "mss";
 +
 +                      memory-region = <&mpss_mem>;
 +
 +                      qcom,smem-states = <&modem_smp2p_out 0>;
 +                      qcom,smem-state-names = "stop";
 +
 +                      resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
 +                               <&pdc_reset PDC_MODEM_SYNC_RESET>;
 +                      reset-names = "mss_restart", "pdc_reset";
 +
 +                      qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
 +                      qcom,spare-regs = <&tcsr_regs 0xb3e4>;
 +
 +                      status = "disabled";
 +
 +                      glink-edge {
 +                              interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
 +                              label = "modem";
 +                              qcom,remote-pid = <1>;
 +                              mboxes = <&apss_shared 12>;
 +                      };
 +              };
 +
 +              sdhc_2: sdhci@8804000 {
 +                      compatible = "qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
 +                      reg = <0 0x08804000 0 0x1000>;
 +
 +                      iommus = <&apps_smmu 0x80 0>;
 +                      interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
 +                                      <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
 +                      interrupt-names = "hc_irq", "pwr_irq";
 +
 +                      clocks = <&gcc GCC_SDCC2_APPS_CLK>,
 +                                      <&gcc GCC_SDCC2_AHB_CLK>;
 +                      clock-names = "core", "iface";
 +
 +                      bus-width = <4>;
 +
 +                      status = "disabled";
 +              };
 +
                qspi: spi@88dc000 {
                        compatible = "qcom,qspi-v1";
                        reg = <0 0x088dc000 0 0x600>;
                };
  
                usb_1_hsphy: phy@88e3000 {
 -                      compatible = "qcom,sc7180-qusb2-phy";
 +                      compatible = "qcom,sc7180-qusb2-phy", "qcom,qusb2-v2-phy";
                        reg = <0 0x088e3000 0 0x400>;
                        status = "disabled";
                        #phy-cells = <0>;
  
                        resets = <&gcc GCC_USB30_PRIM_BCR>;
  
+                       interconnects = <&aggre2_noc MASTER_USB3 &mc_virt SLAVE_EBI1>,
+                                       <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_USB3>;
+                       interconnect-names = "usb-ddr", "apps-usb";
                        usb_1_dwc3: dwc3@a600000 {
                                compatible = "snps,dwc3";
                                reg = <0 0x0a600000 0 0xe000>;
                                      "vcodec0_core", "vcodec0_bus";
                        iommus = <&apps_smmu 0x0c00 0x60>;
                        memory-region = <&venus_mem>;
 +                      interconnects = <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI1>,
 +                                      <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_VENUS_CFG>;
 +                      interconnect-names = "video-mem", "cpu-cfg";
  
                        video-decoder {
                                compatible = "venus-decoder";
                                clock-names = "iface", "rot", "lut", "core",
                                              "vsync";
                                assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
 -                                                <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
 +                                                <&dispcc DISP_CC_MDSS_VSYNC_CLK>,
 +                                                <&dispcc DISP_CC_MDSS_ROT_CLK>,
 +                                                <&dispcc DISP_CC_MDSS_AHB_CLK>;
                                assigned-clock-rates = <300000000>,
 +                                                     <19200000>,
 +                                                     <19200000>,
                                                       <19200000>;
  
                                interrupt-parent = <&mdss>;
                pdc: interrupt-controller@b220000 {
                        compatible = "qcom,sc7180-pdc", "qcom,pdc";
                        reg = <0 0x0b220000 0 0x30000>;
 -                      qcom,pdc-ranges = <0 480 15>, <17 497 98>,
 -                                        <119 634 4>, <124 639 1>;
 +                      qcom,pdc-ranges = <0 480 94>, <94 609 31>, <125 63 1>;
                        #interrupt-cells = <2>;
                        interrupt-parent = <&intc>;
                        interrupt-controller;
  
        thermal-zones {
                cpu0-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 1>;
  
                };
  
                cpu1-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 2>;
  
                };
  
                cpu2-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 3>;
  
                };
  
                cpu3-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 4>;
  
                };
  
                cpu4-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 5>;
  
                };
  
                cpu5-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 6>;
  
                };
  
                cpu6-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 9>;
  
                };
  
                cpu7-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 10>;
  
                };
  
                cpu8-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 11>;
  
                };
  
                cpu9-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 12>;
  
                };
  
                aoss0-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 0>;
  
                };
  
                cpuss0-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 7>;
  
                };
  
                cpuss1-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 8>;
  
                };
  
                gpuss0-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 13>;
  
                };
  
                gpuss1-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens0 14>;
  
                };
  
                aoss1-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 0>;
  
                };
  
                cwlan-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 1>;
  
                };
  
                audio-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 2>;
  
                };
  
                ddr-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 3>;
  
                };
  
                q6-hvx-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 4>;
  
                };
  
                camera-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 5>;
  
                };
  
                mdm-core-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 6>;
  
                };
  
                mdm-dsp-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 7>;
  
                };
  
                npu-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 8>;
  
                };
  
                video-thermal {
 -                      polling-delay-passive = <250>;
 -                      polling-delay = <1000>;
 +                      polling-delay-passive = <0>;
 +                      polling-delay = <0>;
  
                        thermal-sensors = <&tsens1 9>;
  
@@@ -5,7 -5,6 +5,7 @@@
   * Copyright (c) 2018, The Linux Foundation. All rights reserved.
   */
  
 +#include <dt-bindings/clock/qcom,camcc-sdm845.h>
  #include <dt-bindings/clock/qcom,dispcc-sdm845.h>
  #include <dt-bindings/clock/qcom,gcc-sdm845.h>
  #include <dt-bindings/clock/qcom,gpucc-sdm845.h>
  
                ipa: ipa@1e40000 {
                        compatible = "qcom,sdm845-ipa";
 +
 +                      iommus = <&apps_smmu 0x720 0x3>;
                        reg = <0 0x1e40000 0 0x7000>,
                              <0 0x1e47000 0 0x2000>,
                              <0 0x1e04000 0 0x2c000>;
                        gpio-ranges = <&tlmm 0 0 150>;
                        wakeup-parent = <&pdc_intc>;
  
 +                      cci0_default: cci0-default {
 +                              /* SDA, SCL */
 +                              pins = "gpio17", "gpio18";
 +                              function = "cci_i2c";
 +
 +                              bias-pull-up;
 +                              drive-strength = <2>; /* 2 mA */
 +                      };
 +
 +                      cci0_sleep: cci0-sleep {
 +                              /* SDA, SCL */
 +                              pins = "gpio17", "gpio18";
 +                              function = "cci_i2c";
 +
 +                              drive-strength = <2>; /* 2 mA */
 +                              bias-pull-down;
 +                      };
 +
 +                      cci1_default: cci1-default {
 +                              /* SDA, SCL */
 +                              pins = "gpio19", "gpio20";
 +                              function = "cci_i2c";
 +
 +                              bias-pull-up;
 +                              drive-strength = <2>; /* 2 mA */
 +                      };
 +
 +                      cci1_sleep: cci1-sleep {
 +                              /* SDA, SCL */
 +                              pins = "gpio19", "gpio20";
 +                              function = "cci_i2c";
 +
 +                              drive-strength = <2>; /* 2 mA */
 +                              bias-pull-down;
 +                      };
 +
                        qspi_clk: qspi-clk {
                                pinmux {
                                        pins = "gpio95";
                };
  
                usb_1_hsphy: phy@88e2000 {
 -                      compatible = "qcom,sdm845-qusb2-phy";
 +                      compatible = "qcom,sdm845-qusb2-phy", "qcom,qusb2-v2-phy";
                        reg = <0 0x088e2000 0 0x400>;
                        status = "disabled";
                        #phy-cells = <0>;
                };
  
                usb_2_hsphy: phy@88e3000 {
 -                      compatible = "qcom,sdm845-qusb2-phy";
 +                      compatible = "qcom,sdm845-qusb2-phy", "qcom,qusb2-v2-phy";
                        reg = <0 0x088e3000 0 0x400>;
                        status = "disabled";
                        #phy-cells = <0>;
  
                        resets = <&gcc GCC_USB30_PRIM_BCR>;
  
+                       interconnects = <&aggre2_noc MASTER_USB3_0 &mem_noc SLAVE_EBI1>,
+                                       <&gladiator_noc MASTER_APPSS_PROC &config_noc SLAVE_USB3_0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
                        usb_1_dwc3: dwc3@a600000 {
                                compatible = "snps,dwc3";
                                reg = <0 0x0a600000 0 0xcd00>;
  
                        resets = <&gcc GCC_USB30_SEC_BCR>;
  
+                       interconnects = <&aggre2_noc MASTER_USB3_1 &mem_noc SLAVE_EBI1>,
+                                       <&gladiator_noc MASTER_APPSS_PROC &config_noc SLAVE_USB3_1>;
+                       interconnect-names = "usb-ddr", "apps-usb";
                        usb_2_dwc3: dwc3@a800000 {
                                compatible = "snps,dwc3";
                                reg = <0 0x0a800000 0 0xcd00>;
                        #reset-cells = <1>;
                };
  
 +              cci: cci@ac4a000 {
 +                      compatible = "qcom,sdm845-cci";
 +                      #address-cells = <1>;
 +                      #size-cells = <0>;
 +
 +                      reg = <0 0x0ac4a000 0 0x4000>;
 +                      interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>;
 +                      power-domains = <&clock_camcc TITAN_TOP_GDSC>;
 +
 +                      clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
 +                              <&clock_camcc CAM_CC_SOC_AHB_CLK>,
 +                              <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
 +                              <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
 +                              <&clock_camcc CAM_CC_CCI_CLK>,
 +                              <&clock_camcc CAM_CC_CCI_CLK_SRC>;
 +                      clock-names = "camnoc_axi",
 +                              "soc_ahb",
 +                              "slow_ahb_src",
 +                              "cpas_ahb",
 +                              "cci",
 +                              "cci_src";
 +
 +                      assigned-clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
 +                              <&clock_camcc CAM_CC_CCI_CLK>;
 +                      assigned-clock-rates = <80000000>, <37500000>;
 +
 +                      pinctrl-names = "default", "sleep";
 +                      pinctrl-0 = <&cci0_default &cci1_default>;
 +                      pinctrl-1 = <&cci0_sleep &cci1_sleep>;
 +
 +                      status = "disabled";
 +
 +                      cci_i2c0: i2c-bus@0 {
 +                              reg = <0>;
 +                              clock-frequency = <1000000>;
 +                              #address-cells = <1>;
 +                              #size-cells = <0>;
 +                      };
 +
 +                      cci_i2c1: i2c-bus@1 {
 +                              reg = <1>;
 +                              clock-frequency = <1000000>;
 +                              #address-cells = <1>;
 +                              #size-cells = <0>;
 +                      };
 +              };
 +
 +              clock_camcc: clock-controller@ad00000 {
 +                      compatible = "qcom,sdm845-camcc";
 +                      reg = <0 0x0ad00000 0 0x10000>;
 +                      #clock-cells = <1>;
 +                      #reset-cells = <1>;
 +                      #power-domain-cells = <1>;
 +              };
 +
                mdss: mdss@ae00000 {
                        compatible = "qcom,sdm845-mdss";
                        reg = <0 0x0ae00000 0 0x1000>;
@@@ -344,12 -344,6 +344,12 @@@ struct gpio_desc *gpiod_get_from_of_nod
        if (transitory)
                lflags |= GPIO_TRANSITORY;
  
 +      if (flags & OF_GPIO_PULL_UP)
 +              lflags |= GPIO_PULL_UP;
 +
 +      if (flags & OF_GPIO_PULL_DOWN)
 +              lflags |= GPIO_PULL_DOWN;
 +
        ret = gpiod_configure_flags(desc, propname, lflags, dflags);
        if (ret < 0) {
                gpiod_put(desc);
@@@ -466,6 -460,24 +466,24 @@@ static struct gpio_desc *of_find_arizon
        return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags);
  }
  
+ static struct gpio_desc *of_find_usb_gpio(struct device *dev,
+                                         const char *con_id,
+                                         enum of_gpio_flags *of_flags)
+ {
+       /*
+        * Currently this USB quirk is only for the Fairchild FUSB302 host which is using
+        * an undocumented DT GPIO line named "fcs,int_n" without the compulsory "-gpios"
+        * suffix.
+        */
+       if (!IS_ENABLED(CONFIG_TYPEC_FUSB302))
+               return ERR_PTR(-ENOENT);
+       if (!con_id || strcmp(con_id, "fcs,int_n"))
+               return ERR_PTR(-ENOENT);
+       return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags);
+ }
  struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id,
                               unsigned int idx, unsigned long *flags)
  {
        if (PTR_ERR(desc) == -ENOENT)
                desc = of_find_arizona_gpio(dev, con_id, &of_flags);
  
+       if (PTR_ERR(desc) == -ENOENT)
+               desc = of_find_usb_gpio(dev, con_id, &of_flags);
        if (IS_ERR(desc))
                return desc;
  
@@@ -591,10 -606,6 +612,10 @@@ static struct gpio_desc *of_parse_own_g
                *lflags |= GPIO_ACTIVE_LOW;
        if (xlate_flags & OF_GPIO_TRANSITORY)
                *lflags |= GPIO_TRANSITORY;
 +      if (xlate_flags & OF_GPIO_PULL_UP)
 +              *lflags |= GPIO_PULL_UP;
 +      if (xlate_flags & OF_GPIO_PULL_DOWN)
 +              *lflags |= GPIO_PULL_DOWN;
  
        if (of_property_read_bool(np, "input"))
                *dflags |= GPIOD_IN;
@@@ -263,7 -263,7 +263,7 @@@ static void nvm_authenticate_start_dma_
         * itself. To be on the safe side keep the root port in D0 during
         * the whole upgrade process.
         */
 -      root_port = pci_find_pcie_root_port(sw->tb->nhi->pdev);
 +      root_port = pcie_find_root_port(sw->tb->nhi->pdev);
        if (root_port)
                pm_runtime_get_noresume(&root_port->dev);
  }
@@@ -272,7 -272,7 +272,7 @@@ static void nvm_authenticate_complete_d
  {
        struct pci_dev *root_port;
  
 -      root_port = pci_find_pcie_root_port(sw->tb->nhi->pdev);
 +      root_port = pcie_find_root_port(sw->tb->nhi->pdev);
        if (root_port)
                pm_runtime_put(&root_port->dev);
  }
@@@ -348,12 -348,6 +348,6 @@@ out
        return ret;
  }
  
- static int tb_switch_nvm_no_read(void *priv, unsigned int offset, void *val,
-                                size_t bytes)
- {
-       return -EPERM;
- }
  static int tb_switch_nvm_write(void *priv, unsigned int offset, void *val,
                               size_t bytes)
  {
@@@ -399,7 -393,6 +393,6 @@@ static struct nvmem_device *register_nv
                config.read_only = true;
        } else {
                config.name = "nvm_non_active";
-               config.reg_read = tb_switch_nvm_no_read;
                config.reg_write = tb_switch_nvm_write;
                config.root_only = true;
        }
@@@ -16,9 -16,6 +16,9 @@@
  #include <linux/export.h>
  #include <linux/acpi.h>
  #include <linux/dmi.h>
 +
 +#include <soc/bcm2835/raspberrypi-firmware.h>
 +
  #include "pci-quirks.h"
  #include "xhci-ext-caps.h"
  
@@@ -208,7 -205,7 +208,7 @@@ static void usb_amd_find_chipset_info(v
  {
        unsigned long flags;
        struct amd_chipset_info info;
-       info.need_pll_quirk = 0;
+       info.need_pll_quirk = false;
  
        spin_lock_irqsave(&amd_lock, flags);
  
        case AMD_CHIPSET_SB800:
        case AMD_CHIPSET_HUDSON2:
        case AMD_CHIPSET_BOLTON:
-               info.need_pll_quirk = 1;
+               info.need_pll_quirk = true;
                break;
        default:
-               info.need_pll_quirk = 0;
+               info.need_pll_quirk = false;
                break;
        }
  
@@@ -532,7 -529,7 +532,7 @@@ void usb_amd_dev_put(void
        amd_chipset.nb_type = 0;
        memset(&amd_chipset.sb_type, 0, sizeof(amd_chipset.sb_type));
        amd_chipset.isoc_reqs = 0;
-       amd_chipset.need_pll_quirk = 0;
+       amd_chipset.need_pll_quirk = false;
  
        spin_unlock_irqrestore(&amd_lock, flags);
  
@@@ -1246,24 -1243,11 +1246,24 @@@ iounmap
  
  static void quirk_usb_early_handoff(struct pci_dev *pdev)
  {
 +      int ret;
 +
        /* Skip Netlogic mips SoC's internal PCI USB controller.
         * This device does not need/support EHCI/OHCI handoff
         */
        if (pdev->vendor == 0x184e)     /* vendor Netlogic */
                return;
 +
 +      if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
 +              ret = rpi_firmware_init_vl805(pdev);
 +              if (ret) {
 +                      /* Firmware might be outdated, or something failed */
 +                      dev_warn(&pdev->dev,
 +                               "Failed to load VL805's firmware: %d. Will continue to attempt to work, but bad things might happen. You should fix this...\n",
 +                               ret);
 +              }
 +      }
 +
        if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI &&
                        pdev->class != PCI_CLASS_SERIAL_USB_OHCI &&
                        pdev->class != PCI_CLASS_SERIAL_USB_EHCI &&
@@@ -15,7 -15,7 +15,7 @@@
  #include <linux/usb/typec_dp.h>
  #include <linux/usb/typec_tbt.h>
  
 -#include <asm/intel_pmc_ipc.h>
 +#include <asm/intel_scu_ipc.h>
  
  #define PMC_USBC_CMD          0xa7
  
@@@ -92,15 -92,33 +92,34 @@@ struct pmc_usb_port 
  
        u8 usb2_port;
        u8 usb3_port;
+       enum typec_orientation sbu_orientation;
+       enum typec_orientation hsl_orientation;
  };
  
  struct pmc_usb {
        u8 num_ports;
        struct device *dev;
 +      struct intel_scu_ipc_dev *ipc;
        struct pmc_usb_port *port;
  };
  
+ static int sbu_orientation(struct pmc_usb_port *port)
+ {
+       if (port->sbu_orientation)
+               return port->sbu_orientation - 1;
+       return port->orientation - 1;
+ }
+ static int hsl_orientation(struct pmc_usb_port *port)
+ {
+       if (port->hsl_orientation)
+               return port->hsl_orientation - 1;
+       return port->orientation - 1;
+ }
  static int pmc_usb_command(struct pmc_usb_port *port, u8 *msg, u32 len)
  {
        u8 response[4];
         * Error bit will always be 0 with the USBC command.
         * Status can be checked from the response message.
         */
 -      intel_pmc_ipc_command(PMC_USBC_CMD, 0, msg, len,
 -                            (void *)response, 1);
 -
 +      intel_scu_ipc_dev_command(port->pmc->ipc, PMC_USBC_CMD, 0, msg, len,
 +                                response, sizeof(response));
        if (response[2]) {
                if (response[2] & BIT(1))
                        return -EIO;
@@@ -152,8 -171,9 +171,9 @@@ pmc_usb_mux_dp(struct pmc_usb_port *por
  
        req.mode_data = (port->orientation - 1) << PMC_USB_ALTMODE_ORI_SHIFT;
        req.mode_data |= (port->role - 1) << PMC_USB_ALTMODE_UFP_SHIFT;
-       req.mode_data |= (port->orientation - 1) << PMC_USB_ALTMODE_ORI_AUX_SHIFT;
-       req.mode_data |= (port->orientation - 1) << PMC_USB_ALTMODE_ORI_HSL_SHIFT;
+       req.mode_data |= sbu_orientation(port) << PMC_USB_ALTMODE_ORI_AUX_SHIFT;
+       req.mode_data |= hsl_orientation(port) << PMC_USB_ALTMODE_ORI_HSL_SHIFT;
  
        req.mode_data |= (state->mode - TYPEC_STATE_MODAL) <<
                         PMC_USB_ALTMODE_DP_MODE_SHIFT;
@@@ -177,8 -197,9 +197,9 @@@ pmc_usb_mux_tbt(struct pmc_usb_port *po
  
        req.mode_data = (port->orientation - 1) << PMC_USB_ALTMODE_ORI_SHIFT;
        req.mode_data |= (port->role - 1) << PMC_USB_ALTMODE_UFP_SHIFT;
-       req.mode_data |= (port->orientation - 1) << PMC_USB_ALTMODE_ORI_AUX_SHIFT;
-       req.mode_data |= (port->orientation - 1) << PMC_USB_ALTMODE_ORI_HSL_SHIFT;
+       req.mode_data |= sbu_orientation(port) << PMC_USB_ALTMODE_ORI_AUX_SHIFT;
+       req.mode_data |= hsl_orientation(port) << PMC_USB_ALTMODE_ORI_HSL_SHIFT;
  
        if (TBT_ADAPTER(data->device_mode) == TBT_ADAPTER_TBT3)
                req.mode_data |= PMC_USB_ALTMODE_TBT_TYPE;
@@@ -215,8 -236,8 +236,8 @@@ static int pmc_usb_connect(struct pmc_u
        msg[0] |= port->usb3_port << PMC_USB_MSG_USB3_PORT_SHIFT;
  
        msg[1] = port->usb2_port << PMC_USB_MSG_USB2_PORT_SHIFT;
-       msg[1] |= (port->orientation - 1) << PMC_USB_MSG_ORI_HSL_SHIFT;
-       msg[1] |= (port->orientation - 1) << PMC_USB_MSG_ORI_AUX_SHIFT;
+       msg[1] |= hsl_orientation(port) << PMC_USB_MSG_ORI_HSL_SHIFT;
+       msg[1] |= sbu_orientation(port) << PMC_USB_MSG_ORI_AUX_SHIFT;
  
        return pmc_usb_command(port, msg, sizeof(msg));
  }
@@@ -300,6 -321,7 +321,7 @@@ static int pmc_usb_register_port(struc
        struct usb_role_switch_desc desc = { };
        struct typec_switch_desc sw_desc = { };
        struct typec_mux_desc mux_desc = { };
+       const char *str;
        int ret;
  
        ret = fwnode_property_read_u8(fwnode, "usb2-port-number", &port->usb2_port);
        if (ret)
                return ret;
  
+       ret = fwnode_property_read_string(fwnode, "sbu-orientation", &str);
+       if (!ret)
+               port->sbu_orientation = typec_find_orientation(str);
+       ret = fwnode_property_read_string(fwnode, "hsl-orientation", &str);
+       if (!ret)
+               port->hsl_orientation = typec_find_orientation(str);
        port->num = index;
        port->pmc = pmc;
  
@@@ -374,10 -404,6 +404,10 @@@ static int pmc_usb_probe(struct platfor
        if (!pmc->port)
                return -ENOMEM;
  
 +      pmc->ipc = devm_intel_scu_ipc_dev_get(&pdev->dev);
 +      if (!pmc->ipc)
 +              return -ENODEV;
 +
        pmc->dev = &pdev->dev;
  
        /*