Merge tag 'qcom-arm64-for-6.5' of https://git.kernel.org/pub/scm/linux/kernel/git...
authorArnd Bergmann <arnd@arndb.de>
Tue, 20 Jun 2023 20:43:04 +0000 (22:43 +0200)
committerArnd Bergmann <arnd@arndb.de>
Tue, 20 Jun 2023 20:43:40 +0000 (22:43 +0200)
Qualcomm ARM64 DeviceTree updates for v6.5

This introduces the RDP442 and RDP433 reference devices on IPQ5332 and
IPQ9574, respectively. RDP418, RDP433, RDP449 and RDP453 on the IPQ9574
are added. On MSM8939 the Square T2 board and the Sony Xperia M4 Aqua is
added. Support for Acer Apire 1, built on the Snapdragon 7c platform is
introduced. Fxtec Pro1X on SM6115 is added.  Lastly long floating
support for SC8180X and the Lenovo Flex 5G, and the Primus reference
device, has been added.

On IPQ5332 and IPQ6018 QFPROM support is introduced, and as described
above the RDP442 board on the prior. Download mode support and various
reserved-memory regions are also introduced on IPQ6018.
IPQ8074 gains another SPI controller.

On IPQ9574 CPU frequency scaling, low speed busses, RNG, Watchdog,
qfprom, SMEM and RPM are introduced. As are support for four new board,
mentioned above.

MSM8916 gains a range of structural improvements, to better suite the
various boards supported. Regulator constraints are corrected and their
states are adjusted to match reality (e.g. always-on regulators marked
as always-on). BQ Aquaris X5 gains support for front flash LED.

As mentioned above, MSM8939 support is introduced with support for
boards from Sony and Square.

MSM8953 gains DMA support in I2C masters.

MSM8996-based Sony Xperia boards gains description of their RGB
notification LED.

On SA8775P support for UFS, USB, GPU clock and iommu controllers, PMU,
AOSS, watchdog and missing low-speed controllers are added. On the Ride
platform UFS, USB and an i2c bus are enabled.

iommu properties are added to QSPI on both SC7180 and SC7280. LPASS
clocks are adjusted and MDP node cleaned up slightly, on SC7180. As
mentioned above, support for Acer Aspire 1 is introduced.

Long lingering patches introducing SC8180X, the Lenovo Flex 5G and the
Primus reference device has been merged.

On SC8280XP ethernet is added and enabled on the automotive ride
platform. An SDC controller is introduced and enabled on the SC8280XP
CRD. On the Lenovo Thinkpad X13s and the CRD reference device the USB
SuperSpeed phy is added to the Type-C graph, to enable support for
orientation switching.

Fairphone 3 gains support for its notification LED.

On SDM845 the iommu stream for QSPI is defined, SHIFT SHIFT6mq gains
support for flash LED and the RB3 (DB845c) board gains support for
bonded/dual DSI-mode, to allow 4k output.

On SM6115 CPU idle-states, crypto engine support and SuperSpeed USB PHY
are introduced. As mentioned above Fxtec Pro1X is introduced. On the
QRB4210 Robotics Platform RB2 USB, Audio and Compute DSPs, display,
CAN-bus and GPIO LEDs are introduced, fixed regulators are described and
the SD-card description is corrected.

Support for crypto engine is added to SM8150, while Sony Xperia 1 and 5
gains SD-card support, camera regulators and GPIO line names sorted out.

SM8250 also gets support for crypto engine, and Sony Xperia 1 II and 5
II gains support for hardware video accelerator.

Crypto engine is introduced for SM8350 as well. The HDK gets the USB
Type-C graph described for Superspeed orientation switching and
DisplayPort output.

On SM8450 video clock controller and crypto engine are added, missing
opp levels are introduced and the USB Type-C graph is defined for
orientation switching and altmode.

SM8550 gains GPU and video clock controllers and missing opp levels are
added. The WCD9385 audio codec is added for the SM8550 MTP and on the
QRD PCIe, USB, audio display and flash LED are added.

* tag 'qcom-arm64-for-6.5' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (195 commits)
  arm64: dts: qcom: sc8180x: Introduce Lenovo Flex 5G
  arm64: dts: qcom: sc8180x: Introduce Primus
  arm64: dts: qcom: sc8180x: Add pmics
  arm64: dts: qcom: sc8180x: Add display and gpu nodes
  arm64: dts: qcom: sc8180x: Add remoteprocs, wifi and usb nodes
  arm64: dts: qcom: sc8180x: Add PCIe instances
  arm64: dts: qcom: sc8180x: Add QUPs
  arm64: dts: qcom: sc8180x: Add thermal zones
  arm64: dts: qcom: sc8180x: Add interconnects and lmh
  arm64: dts: qcom: Introduce the SC8180x platform
  arm64: dts: qcom: msm8916: Move aliases to boards
  arm64: dts: qcom: pm8916: Rename &wcd_codec -> &pm8916_codec
  arm64: dts: qcom: msm8916/39: Clean up MDSS labels
  arm64: dts: qcom: msm8916/39: Use consistent name for I2C/SPI pinctrl
  arm64: dts: qcom: msm8916/39: Rename &blsp1_uartN -> &blsp_uartN
  arm64: dts: qcom: msm8916: Rename &msmgpio -> &tlmm
  arm64: dts: qcom: qrb4210-rb2: Enable USB node
  arm64: dts: qcom: sm6115: Add USB SS qmp phy node
  arm64: dts: qcom: ipq5332: add support for the RDP442 variant
  dt-bindings: arm: qcom: document MI01.3 board based on IPQ5332 family
  ...

Link: https://lore.kernel.org/r/20230611004944.2481596-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
113 files changed:
Documentation/devicetree/bindings/arm/qcom.yaml
Documentation/devicetree/bindings/clock/qcom,sm8450-gpucc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/clock/qcom,sm8450-videocc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
Documentation/devicetree/bindings/vendor-prefixes.yaml
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/apq8016-sbc.dts
arch/arm64/boot/dts/qcom/apq8039-t2.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/apq8096-ifc6640.dts
arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/ipq5332.dtsi
arch/arm64/boot/dts/qcom/ipq6018.dtsi
arch/arm64/boot/dts/qcom/ipq8074.dtsi
arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts [moved from arch/arm64/boot/dts/qcom/ipq9574-al02-c7.dts with 67% similarity]
arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/ipq9574.dtsi
arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dts
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts
arch/arm64/boot/dts/qcom/msm8916-gplus-fl8005a.dts
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dts
arch/arm64/boot/dts/qcom/msm8916-mtp.dts
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
arch/arm64/boot/dts/qcom/msm8916-pm8916.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dts
arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dts
arch/arm64/boot/dts/qcom/msm8916-samsung-e2015-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-grandmax.dts
arch/arm64/boot/dts/qcom/msm8916-samsung-gt5-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-gt510.dts
arch/arm64/boot/dts/qcom/msm8916-samsung-gt58.dts
arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dts
arch/arm64/boot/dts/qcom/msm8916-thwc-uf896.dts
arch/arm64/boot/dts/qcom/msm8916-thwc-ufi001c.dts
arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi
arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dts
arch/arm64/boot/dts/qcom/msm8916-yiming-uz801v3.dts
arch/arm64/boot/dts/qcom/msm8916.dtsi
arch/arm64/boot/dts/qcom/msm8939-pm8916.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/msm8939.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/msm8953.dtsi
arch/arm64/boot/dts/qcom/msm8976.dtsi
arch/arm64/boot/dts/qcom/msm8994.dtsi
arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi
arch/arm64/boot/dts/qcom/msm8996.dtsi
arch/arm64/boot/dts/qcom/msm8998.dtsi
arch/arm64/boot/dts/qcom/pm7250b.dtsi
arch/arm64/boot/dts/qcom/pm8550.dtsi
arch/arm64/boot/dts/qcom/pm8916.dtsi
arch/arm64/boot/dts/qcom/pm8953.dtsi
arch/arm64/boot/dts/qcom/pm8998.dtsi
arch/arm64/boot/dts/qcom/pmi632.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/pmi8998.dtsi
arch/arm64/boot/dts/qcom/pmk8350.dtsi
arch/arm64/boot/dts/qcom/pmk8550.dtsi
arch/arm64/boot/dts/qcom/qcs404-evb-4000.dts
arch/arm64/boot/dts/qcom/qdu1000.dtsi
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
arch/arm64/boot/dts/qcom/sa8155p-adp.dts
arch/arm64/boot/dts/qcom/sa8540p-ride.dts
arch/arm64/boot/dts/qcom/sa8775p-pmics.dtsi
arch/arm64/boot/dts/qcom/sa8775p-ride.dts
arch/arm64/boot/dts/qcom/sa8775p.dtsi
arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-idp.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
arch/arm64/boot/dts/qcom/sc7180.dtsi
arch/arm64/boot/dts/qcom/sc7280.dtsi
arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc8180x-pmics.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc8180x-primus.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc8180x.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
arch/arm64/boot/dts/qcom/sc8280xp.dtsi
arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
arch/arm64/boot/dts/qcom/sdm630.dtsi
arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
arch/arm64/boot/dts/qcom/sdm845-db845c.dts
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts
arch/arm64/boot/dts/qcom/sdm845.dtsi
arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
arch/arm64/boot/dts/qcom/sm6115-fxtec-pro1x.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sm6115.dtsi
arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
arch/arm64/boot/dts/qcom/sm6125-xiaomi-laurel-sprout.dts
arch/arm64/boot/dts/qcom/sm6125.dtsi
arch/arm64/boot/dts/qcom/sm6350.dtsi
arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi
arch/arm64/boot/dts/qcom/sm8150.dtsi
arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi
arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi
arch/arm64/boot/dts/qcom/sm8250.dtsi
arch/arm64/boot/dts/qcom/sm8350-hdk.dts
arch/arm64/boot/dts/qcom/sm8350.dtsi
arch/arm64/boot/dts/qcom/sm8450-hdk.dts
arch/arm64/boot/dts/qcom/sm8450.dtsi
arch/arm64/boot/dts/qcom/sm8550-mtp.dts
arch/arm64/boot/dts/qcom/sm8550-qrd.dts
arch/arm64/boot/dts/qcom/sm8550.dtsi
include/dt-bindings/clock/qcom,sm8450-gpucc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8450-videocc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8550-gpucc.h [new file with mode: 0644]
include/dt-bindings/power/qcom-rpmpd.h
include/dt-bindings/reset/qcom,sm8450-gpucc.h [new file with mode: 0644]

index d9dd25695c3ddea303784025fdd0e1e032fb6404..8302d1ee280d507715e3ee7469a62a398a3d0db5 100644 (file)
@@ -40,6 +40,7 @@ description: |
         msm8939
         msm8953
         msm8956
+        msm8960
         msm8974
         msm8976
         msm8992
@@ -85,8 +86,12 @@ description: |
   The 'board' element must be one of the following strings:
 
         adp
+        ap-al02-c2
+        ap-al02-c6
         ap-al02-c7
+        ap-al02-c8
         ap-mi01.2
+        ap-mi01.3
         ap-mi01.6
         cdp
         cp01-c1
@@ -333,6 +338,7 @@ properties:
       - items:
           - enum:
               - qcom,ipq5332-ap-mi01.2
+              - qcom,ipq5332-ap-mi01.3
               - qcom,ipq5332-ap-mi01.6
           - const: qcom,ipq5332
 
@@ -351,7 +357,10 @@ properties:
 
       - items:
           - enum:
+              - qcom,ipq9574-ap-al02-c2
+              - qcom,ipq9574-ap-al02-c6
               - qcom,ipq9574-ap-al02-c7
+              - qcom,ipq9574-ap-al02-c8
           - const: qcom,ipq9574
 
       - description: Sierra Wireless MangOH Green with WP8548 Module
@@ -380,9 +389,9 @@ properties:
               - qcom,qru1000-idp
           - const: qcom,qru1000
 
-      - description: Qualcomm Technologies, Inc. SC7180 IDP
-        items:
+      - items:
           - enum:
+              - acer,aspire1
               - qcom,sc7180-idp
           - const: qcom,sc7180
 
@@ -882,6 +891,11 @@ properties:
           - const: qcom,qrb4210
           - const: qcom,sm4250
 
+      - items:
+          - enum:
+              - fxtec,pro1x
+          - const: qcom,sm6115
+
       - items:
           - enum:
               - lenovo,j606f
diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8450-gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8450-gpucc.yaml
new file mode 100644 (file)
index 0000000..2320be9
--- /dev/null
@@ -0,0 +1,75 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm8450-gpucc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Graphics Clock & Reset Controller on SM8450
+
+maintainers:
+  - Konrad Dybcio <konrad.dybcio@linaro.org>
+
+description: |
+  Qualcomm graphics clock control module provides the clocks, resets and power
+  domains on Qualcomm SoCs.
+
+  See also::
+    include/dt-bindings/clock/qcom,sm8450-gpucc.h
+    include/dt-bindings/clock/qcom,sm8550-gpucc.h
+    include/dt-bindings/reset/qcom,sm8450-gpucc.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,sm8450-gpucc
+      - qcom,sm8550-gpucc
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: GPLL0 main branch source
+      - description: GPLL0 div branch source
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - '#clock-cells'
+  - '#reset-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-sm8450.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clock-controller@3d90000 {
+            compatible = "qcom,sm8450-gpucc";
+            reg = <0 0x03d90000 0 0xa000>;
+            clocks = <&rpmhcc RPMH_CXO_CLK>,
+                     <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                     <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+            #clock-cells = <1>;
+            #reset-cells = <1>;
+            #power-domain-cells = <1>;
+        };
+    };
+...
diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8450-videocc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8450-videocc.yaml
new file mode 100644 (file)
index 0000000..fe1fda7
--- /dev/null
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm8450-videocc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Video Clock & Reset Controller on SM8450
+
+maintainers:
+  - Taniya Das <quic_tdas@quicinc.com>
+
+description: |
+  Qualcomm video clock control module provides the clocks, resets and power
+  domains on SM8450.
+
+  See also:: include/dt-bindings/clock/qcom,videocc-sm8450.h
+
+properties:
+  compatible:
+    const: qcom,sm8450-videocc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Video AHB clock from GCC
+
+  power-domains:
+    maxItems: 1
+    description:
+      MMCX power domain.
+
+  required-opps:
+    maxItems: 1
+    description:
+      A phandle to an OPP node describing required MMCX performance point.
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - power-domains
+  - required-opps
+  - '#clock-cells'
+  - '#reset-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-sm8450.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+    videocc: clock-controller@aaf0000 {
+      compatible = "qcom,sm8450-videocc";
+      reg = <0x0aaf0000 0x10000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&gcc GCC_VIDEO_AHB_CLK>;
+      power-domains = <&rpmhpd SM8450_MMCX>;
+      required-opps = <&rpmhpd_opp_low_svs>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
index 8d8503dd934b821cec4fa50b8a0e67d68b6ac7f7..076566ef9cc8eee51f6fb2fdd66ad69d35d87ec2 100644 (file)
@@ -18,8 +18,11 @@ properties:
       - enum:
           - qcom,apq8064-qfprom
           - qcom,apq8084-qfprom
+          - qcom,ipq5332-qfprom
+          - qcom,ipq6018-qfprom
           - qcom,ipq8064-qfprom
           - qcom,ipq8074-qfprom
+          - qcom,ipq9574-qfprom
           - qcom,msm8916-qfprom
           - qcom,msm8974-qfprom
           - qcom,msm8976-qfprom
index 5990366bff0c531127c322fefb44c9e565375424..c6f2fa0e1619fd391601e61ab4b55e51a2e7da7e 100644 (file)
@@ -1269,6 +1269,8 @@ patternProperties:
     description: SpinalHDL
   "^sprd,.*":
     description: Spreadtrum Communications Inc.
+  "^square,.*":
+    description: Square
   "^ssi,.*":
     description: SSI Computer Corp
   "^sst,.*":
index d42c59572ace0f7aa528e10d022c6dfd8acda1c8..4f9e81253e18adbb68ed504d39cbb1fd2d3ffb29 100644 (file)
@@ -1,15 +1,20 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_QCOM)        += apq8016-sbc.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += apq8039-t2.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += apq8094-sony-xperia-kitakami-karin_windy.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += apq8096-db820c.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += apq8096-ifc6640.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq5332-mi01.2.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += ipq5332-rdp442.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq5332-rdp468.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq6018-cp01-c1.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq8074-hk01.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq8074-hk10-c1.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq8074-hk10-c2.dtb
-dtb-$(CONFIG_ARCH_QCOM)        += ipq9574-al02-c7.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += ipq9574-rdp418.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += ipq9574-rdp433.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += ipq9574-rdp449.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += ipq9574-rdp453.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-acer-a1-724.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-alcatel-idol347.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-asus-z00l.dtb
@@ -32,6 +37,7 @@ dtb-$(CONFIG_ARCH_QCOM)       += msm8916-thwc-uf896.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-thwc-ufi001c.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-wingtech-wt88047.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-yiming-uz801v3.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += msm8939-sony-xperia-kanuti-tulip.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8953-motorola-potter.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8953-xiaomi-daisy.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8953-xiaomi-mido.dtb
@@ -82,6 +88,7 @@ dtb-$(CONFIG_ARCH_QCOM)       += sa8155p-adp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sa8295p-adp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sa8540p-ride.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sa8775p-ride.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-acer-aspire1.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-idp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-coachz-r1.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-coachz-r1-lte.dtb
@@ -140,6 +147,8 @@ dtb-$(CONFIG_ARCH_QCOM)     += sc7280-herobrine-zombie-nvme-lte.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-idp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-idp2.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-crd-r3.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc8180x-lenovo-flex-5g.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc8180x-primus.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc8280xp-crd.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc8280xp-lenovo-thinkpad-x13s.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sda660-inforce-ifc6560.dtb
@@ -174,6 +183,7 @@ dtb-$(CONFIG_ARCH_QCOM)     += sdm845-shift-axolotl.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm850-lenovo-yoga-c630.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm850-samsung-w737.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm4250-oneplus-billie2.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sm6115-fxtec-pro1x.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm6115p-lenovo-j606f.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm6125-sony-xperia-seine-pdx201.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm6125-xiaomi-laurel-sprout.dtb
index 59860a2223b83950cca71e23e58d10cf2d23a904..56dfca61253e6254732ddabd557efd003baf95aa 100644 (file)
        compatible = "qcom,apq8016-sbc", "qcom,apq8016";
 
        aliases {
-               serial0 = &blsp1_uart2;
-               serial1 = &blsp1_uart1;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
+               serial1 = &blsp_uart1;
                usid0 = &pm8916_0;
                i2c0 = &blsp_i2c2;
                i2c1 = &blsp_i2c6;
@@ -75,7 +77,7 @@
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
+               id-gpio = <&tlmm 121 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
                button {
                        label = "Volume Up";
                        linux,code = <KEY_VOLUMEUP>;
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                };
        };
 
        leds {
                pinctrl-names = "default";
-               pinctrl-0 = <&msmgpio_leds>,
+               pinctrl-0 = <&tlmm_leds>,
                            <&pm8916_gpios_leds>,
                            <&pm8916_mpps_leds>;
 
                        label = "apq8016-sbc:green:user1";
                        function = LED_FUNCTION_HEARTBEAT;
                        color = <LED_COLOR_ID_GREEN>;
-                       gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
                        label = "apq8016-sbc:green:user2";
                        function = LED_FUNCTION_DISK_ACTIVITY;
                        color = <LED_COLOR_ID_GREEN>;
-                       gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 120 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
                compatible = "adi,adv7533";
                reg = <0x39>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
 
                adi,dsi-lanes = <4>;
                clocks = <&rpmcc RPM_SMD_BB_CLK2>;
                clock-names = "cec";
 
-               pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
+               pd-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 
                avdd-supply = <&pm8916_l6>;
                v1p2-supply = <&pm8916_l6>;
                        port@0 {
                                reg = <0>;
                                adv7533_in: endpoint {
-                                       remote-endpoint = <&dsi0_out>;
+                                       remote-endpoint = <&mdss_dsi0_out>;
                                };
                        };
 
        label = "LS-SPI0";
 };
 
-&blsp1_uart1 {
+&blsp_uart1 {
        status = "okay";
        label = "LS-UART0";
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
        label = "LS-UART1";
 };
                compatible = "ovti,ov5640";
                reg = <0x3b>;
 
-               enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
-               reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
+               enable-gpios = <&tlmm 34 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&camera_rear_default>;
 
        };
 };
 
-&dsi0_out {
-       data-lanes = <0 1 2 3>;
-       remote-endpoint = <&adv7533_in>;
+&lpass {
+       status = "okay";
 };
 
-&lpass {
+&lpass_codec {
        status = "okay";
 };
 
        status = "okay";
 };
 
+&mdss_dsi0_out {
+       data-lanes = <0 1 2 3>;
+       remote-endpoint = <&adv7533_in>;
+};
+
 &mpss {
        status = "okay";
 
        firmware-name = "qcom/apq8016/mba.mbn", "qcom/apq8016/modem.mbn";
 };
 
+&pm8916_codec {
+       status = "okay";
+       clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
+       clock-names = "mclk";
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_rpm_regulators {
+       /*
+        * The 96Boards specification expects a 1.8V power rail on the low-speed
+        * expansion connector that is able to provide at least 0.18W / 100 mA.
+        * L15/L16 are connected in parallel to provide 55 mA each. A minimum load
+        * must be specified to ensure the regulators are not put in LPM where they
+        * would only provide 5 mA.
+        */
+       pm8916_l15: l15 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-system-load = <50000>;
+               regulator-allow-set-load;
+               regulator-always-on;
+       };
+       pm8916_l16: l16 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-system-load = <50000>;
+               regulator-allow-set-load;
+               regulator-always-on;
+       };
+
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
 &sdhc_1 {
        status = "okay";
 
        pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
 
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
 &sound {
                        sound-dai = <&lpass MI2S_PRIMARY>;
                };
                codec {
-                       sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
+                       sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>;
                };
        };
 
                        sound-dai = <&lpass MI2S_TERTIARY>;
                };
                codec {
-                       sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
+                       sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>;
                };
        };
 };
        extcon = <&usb_id>;
 };
 
-&wcd_codec {
-       clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
-       clock-names = "mclk";
-       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
-       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
-};
-
 &wcnss {
        status = "okay";
        firmware-name = "qcom/apq8016/wcnss.mbn";
 &stm { status = "okay"; };
 &tpiu { status = "okay"; };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <375000>;
-               regulator-max-microvolt = <1562000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
-       l1 {
-               regulator-min-microvolt = <375000>;
-               regulator-max-microvolt = <1525000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       /**
-        * 1.8v required on LS expansion
-        * for mezzanine boards
-        */
-       l15 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-               regulator-always-on;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <1750000>;
-               regulator-max-microvolt = <3337000>;
-       };
-};
-
 /*
  * 2mA drive strength is not enough when connecting multiple
  * I2C devices with different pull up resistors.
  */
-&i2c2_default {
+&blsp_i2c2_default {
        drive-strength = <16>;
 };
 
-&i2c4_default {
+&blsp_i2c4_default {
        drive-strength = <16>;
 };
 
-&i2c6_default {
+&blsp_i2c6_default {
        drive-strength = <16>;
 };
 
  * ones actually used for GPIO.
  */
 
-&msmgpio {
+&tlmm {
        gpio-line-names =
                "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
                "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
                "USR_LED_2_CTRL", /* GPIO 120 */
                "SB_HS_ID";
 
-       msmgpio_leds: msmgpio-leds-state {
+       tlmm_leds: tlmm-leds-state {
                pins = "gpio21", "gpio120";
                function = "gpio";
 
diff --git a/arch/arm64/boot/dts/qcom/apq8039-t2.dts b/arch/arm64/boot/dts/qcom/apq8039-t2.dts
new file mode 100644 (file)
index 0000000..e783b0a
--- /dev/null
@@ -0,0 +1,492 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020-2023, Linaro Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include "msm8939.dtsi"
+#include "msm8939-pm8916.dtsi"
+#include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/sound/apq8016-lpass.h>
+
+/ {
+       model = "Square, Inc. T2 Devkit";
+       compatible = "square,apq8039-t2", "qcom,msm8939";
+
+       qcom,board-id = <0x53 0x54>;
+       qcom,msm-id = <QCOM_ID_APQ8039 0x30000>;
+
+       aliases {
+               mmc0 = &sdhc_1;
+               mmc1 = &sdhc_2;
+               serial0 = &blsp_uart1;
+               serial1 = &blsp_uart2;
+       };
+
+       bl: backlight {
+               compatible = "gpio-backlight";
+               pinctrl-0 = <&pinctrl_backlight>;
+               pinctrl-names = "default";
+               gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
+       };
+
+       chosen {
+               stdout-path = "serial1:115200n8";
+       };
+
+       vreg_lcd_avdd_reg: lcd-avdd-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd_avdd";
+               regulator-min-microvolt = <5600000>;
+               regulator-max-microvolt = <5600000>;
+               pinctrl-0 = <&pinctrl_lcd_avdd_reg>;
+               pinctrl-names = "default";
+               gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <300>;
+               enable-active-high;
+       };
+
+       vreg_lcd_avee_reg: lcd-avee-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd_avee";
+               regulator-min-microvolt = <5600000>;
+               regulator-max-microvolt = <5600000>;
+               pinctrl-0 = <&pinctrl_lcd_avee_reg>;
+               pinctrl-names = "default";
+               gpio = <&tlmm 87 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <300>;
+               enable-active-high;
+       };
+
+       vreg_lcd_iovcc_reg: lcd-iovcc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd_iovcc";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               pinctrl-0 = <&pinctrl_lcd_iovcc_reg>;
+               pinctrl-names = "default";
+               gpio = <&tlmm 9 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <300>;
+               enable-active-high;
+       };
+};
+
+&blsp_i2c1 {
+       status = "okay";
+};
+
+&blsp_i2c2 {
+       status = "okay";
+};
+
+&blsp_i2c3 {
+       status = "okay";
+
+       typec_pd: usb-pd@38 {
+               compatible = "ti,tps6598x";
+               reg = <0x38>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <107 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "irq";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&typec_irq>;
+
+               typec_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+
+                       port {
+                               typec_ep: endpoint {
+                                       remote-endpoint = <&otg_ep>;
+                               };
+                       };
+               };
+       };
+};
+
+&blsp_i2c5 {
+       status = "okay";
+};
+
+&blsp_uart1 {
+       status = "okay";
+};
+
+&blsp_uart1_default {
+       pins = "gpio0", "gpio1";
+};
+
+&blsp_uart1_sleep {
+       pins = "gpio0", "gpio1";
+};
+
+&blsp_uart2 {
+       status = "okay";
+};
+
+&lpass {
+       status = "okay";
+};
+
+&mdss {
+       status = "okay";
+};
+
+&pm8916_codec {
+       qcom,hphl-jack-type-normally-open;
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+       status = "okay";
+};
+
+&pm8916_gpios {
+       gpio-line-names =
+               "PM_GPIO1",     /* WIFI_GPIO1_PRE */
+               "PM_GPIO2",     /* WIFI_GPIO2_PRE */
+               "PM_GPIO3",
+               "PM_GPIO4";
+};
+
+&smd_rpm_regulators {
+       vdd_l1_l2_l3-supply = <&pm8916_s3>;
+       vdd_l4_l5_l6-supply = <&pm8916_s4>;
+       vdd_l7-supply = <&pm8916_s4>;
+
+       pm8916_s3: s3 {
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1300000>;
+       };
+
+       pm8916_s4: s4 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2100000>;
+       };
+
+       /* l1 is fixed to 1225000, but not connected in schematic */
+
+       pm8916_l2: l2 {
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+
+       pm8916_l4: l4 {
+               regulator-min-microvolt = <2050000>;
+               regulator-max-microvolt = <2050000>;
+       };
+
+       pm8916_l5: l5 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       pm8916_l6: l6 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       pm8916_l7: l7 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       pm8916_l8: l8 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2900000>;
+       };
+
+       pm8916_l9: l9 {
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l10: l10 {
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l11: l11 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2950000>;
+       };
+
+       pm8916_l12: l12 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2950000>;
+       };
+
+       pm8916_l13: l13 {
+               regulator-min-microvolt = <3075000>;
+               regulator-max-microvolt = <3075000>;
+       };
+
+       pm8916_l14: l14 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l15: l15 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l16: l16 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+
+       pm8916_l18: l18 {
+               regulator-min-microvolt = <2700000>;
+               regulator-max-microvolt = <2700000>;
+       };
+};
+
+&sdhc_1 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_default_state>;
+       pinctrl-1 = <&sdc1_sleep_state>;
+       status = "okay";
+};
+
+&sound {
+       model = "apq8039-square-sndcard";
+       audio-routing = "AMIC2", "MIC BIAS Internal2";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cdc_pdm_lines_default>;
+       pinctrl-1 = <&cdc_pdm_lines_sleep>;
+
+       internal-codec-playback-dai-link {
+               link-name = "WCD";
+               cpu {
+                       sound-dai = <&lpass MI2S_PRIMARY>;
+               };
+               codec {
+                       sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>;
+               };
+       };
+
+       internal-codec-capture-dai-link {
+               link-name = "WCD-Capture";
+               cpu {
+                       sound-dai = <&lpass MI2S_TERTIARY>;
+               };
+               codec {
+                       sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>;
+               };
+       };
+};
+
+/*
+ * Line names are taken from the schematic of T2, Ver X03.
+ * July 14, 2018. Page 4 in particular.
+ */
+&tlmm {
+       gpio-line-names =
+               "APQ_UART1_TX",         /* GPIO_0 */
+               "APQ_UART1_RX",
+               "APQ_I2C1_SDA",
+               "APQ_I2C1_SCL",
+               "APQ_UART2_TX_1V8",
+               "APQ_UART2_RX_1V8",
+               "APQ_I2C2_SDA",
+               "APQ_I2C2_SCL",
+               "NC",
+               "APQ_LCD_IOVCC_EN",
+               "APQ_I2C3_SDA",         /* GPIO_10 */
+               "APQ_I2C3_SCL",
+               "TOUCH_RST_1V8_L",
+               "NC",
+               "APQ_I2C4_SDA",
+               "APQ_I2C4_SCL",
+               "APQ_ID5",
+               "USB_DISCONNECT",
+               "APQ_I2C5_SDA",
+               "APQ_I2C5_SCL",
+               "APQ_USBC_SPI_MOSI",    /* GPIO_20 */
+               "APQ_USBC_SPI_MISO",
+               "APQ_USBC_SPI_SS_L",
+               "APQ_USBC_SPI_CLK",
+               "APQ_LCD_TE0",
+               "APQ_LCD_RST_L",
+               "NC",
+               "NC",
+               "ACCELEROMETER_INT1",
+               "APQ_CAM_I2C0_SDA",
+               "APQ_CAM_I2C0_SCL",     /* GPIO_30 */
+               "ACCELEROMETER_INT2",
+               "NC",
+               "NC",
+               "NC",
+               "APQ_K21_RST_1V8_L",
+               "NC",
+               "APQ_EDL_1V8",
+               "TP145",
+               "BT_SSBI",
+               "NC",                   /* GPIO_40 */
+               "NC",
+               "NC",
+               "NC",
+               "NC",
+               "NC",
+               "NC",
+               "BT_CTRL",
+               "BT_DAT",
+               "PWR_GPIO_IN",
+               "PWR_GPIO_OUT",         /* GPIO_50 */
+               "CARD_DET_MLB_L",
+               "HALL_SENSOR",
+               "TP63",
+               "TP64",
+               "TP65",
+               "NC",
+               "NC",
+               "NC",
+               "NC",
+               "NC",                   /* GPIO_60 */
+               "NC",
+               "APQ_K21_GPIO0_1V8",
+               "CDC_PDM_CLK",
+               "CDC_PDM_SYNC",
+               "CDC_PDM_TX",
+               "CDC_PDM_RX0",
+               "CDC_PDM_RX1",
+               "CDC_PDM_RX2",
+               "APQ_K21_GPIO1_1V8",
+               "NC",                   /* GPIO_70 */
+               "APQ_HUB_SEL_1V8",
+               "APQ_K21_GPIO2_1V8",
+               "APQ_K21_GPIO3_1V8",
+               "APQ_ID0",
+               "APQ_ID1",
+               "APQ_ID2",
+               "APQ_ID3",
+               "APQ_ID4",
+               "APQ_HUB_SUSP_IND",
+               "BOOT_CONFIG_0",        /* GPIO_80 */
+               "BOOT_CONFIG_1",
+               "BOOT_CONFIG_2",
+               "BOOT_CONFIG_3",
+               "NC",
+               "NC",
+               "APQ_LCD_AVDD_EN",
+               "APQ_LCD_AVEE_EN",
+               "TP70",
+               "NC",
+               "APQ_DEBUG0",           /* GPIO_90 */
+               "APQ_DEBUG1",
+               "APQ_DEBUG2",
+               "APQ_DEBUG3",
+               "TP165",
+               "NC",
+               "APQ_LNA_PWR_EN",
+               "NC",
+               "APQ_LCD_BL_EN",
+               "NC",
+               "APQ_LCD_ID0",          /* GPIO_100 */
+               "APQ_LCD_ID1",
+               "USBC_GPIO5_1V8",
+               "NC",
+               "NC",
+               "NC",
+               "APQ_HUB_RST_1V8_L",
+               "USBC_I2C_IRQ_1V8_L",
+               "SPE_PWR_EN",
+               "NC",
+               "APQ_USB_ID",           /* GPIO_110 */
+               "APQ_EXT_BUCK_VSEL",
+               "APQ_USB_ID_OUT",
+               "NC",
+               "PRNT_RST_L",
+               "APQ_CRQ_I2C_RDY_1V8",
+               "TYPEC_RST_1V8_H",
+               "CHG_BACKPWR_EN",
+               "CHG_PROCHOT_L",
+               "NC",
+               "USBC_GPIO7_1V8",       /* GPIO_120 */
+               "NC";
+
+       pinctrl_backlight: backlight-state {
+               pins = "gpio98";
+               function = "gpio";
+       };
+
+       pinctrl_lcd_avdd_reg: lcd-avdd-reg-state {
+               pins = "gpio86";
+               function = "gpio";
+       };
+
+       pinctrl_lcd_avee_reg: lcd-avee-reg-state {
+               pins = "gpio87";
+               function = "gpio";
+       };
+
+       pinctrl_lcd_iovcc_reg: lcd-iovcc-reg-state {
+               pins = "gpio9";
+               function = "gpio";
+       };
+
+       pinctrl_lcd_rst: lcd-rst-state {
+               pins = "gpio25";
+               function = "gpio";
+       };
+
+       pinctrl_otg_default: otg-default-state {
+               function = "gpio";
+               pins = "gpio17";
+               output-high;
+       };
+
+       pinctrl_otg_device: otg-device-state {
+               function = "gpio";
+               pins = "gpio17";
+               output-low;
+       };
+
+       pinctrl_otg_host: otg-host-state {
+               function = "gpio";
+               pins = "gpio17";
+               output-low;
+       };
+
+       typec_irq: typec-irq-state {
+               function = "gpio";
+               pins = "gpio107";
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&usb {
+       pinctrl-names = "default", "host", "device";
+       pinctrl-0 = <&pinctrl_otg_default>;
+       pinctrl-1 = <&pinctrl_otg_host>;
+       pinctrl-2 = <&pinctrl_otg_device>;
+       pin-switch-delay-us = <100000>;
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               otg_ep: endpoint {
+                       remote-endpoint = <&typec_ep>;
+               };
+       };
+};
+
+&wcnss {
+       status = "okay";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3680";
+};
index 71e0a500599c88a8045651433b1e5c48e84e8528..ed2e2f6c6775a13efdd81b4bbfc6e99e99cb1be8 100644 (file)
@@ -26,7 +26,7 @@
 
        v1p05: v1p05-regulator {
                compatible = "regulator-fixed";
-               reglator-name = "v1p05";
+               regulator-name = "v1p05";
                regulator-always-on;
                regulator-boot-on;
 
@@ -38,7 +38,7 @@
 
        v12_poe: v12-poe-regulator {
                compatible = "regulator-fixed";
-               reglator-name = "v12_poe";
+               regulator-name = "v12_poe";
                regulator-always-on;
                regulator-boot-on;
 
diff --git a/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts b/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts
new file mode 100644 (file)
index 0000000..bcf3b31
--- /dev/null
@@ -0,0 +1,117 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * IPQ5332 RDP442 board device tree source
+ *
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "ipq5332.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. IPQ5332 MI01.3";
+       compatible = "qcom,ipq5332-ap-mi01.3", "qcom,ipq5332";
+
+       aliases {
+               serial0 = &blsp1_uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+};
+
+&blsp1_uart0 {
+       pinctrl-0 = <&serial_0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&blsp1_i2c1 {
+       clock-frequency  = <400000>;
+       pinctrl-0 = <&i2c_1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&blsp1_spi0 {
+       pinctrl-0 = <&spi_0_data_clk_pins &spi_0_cs_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               compatible = "micron,n25q128a11", "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&sdhc {
+       bus-width = <4>;
+       max-frequency = <192000000>;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       non-removable;
+       pinctrl-0 = <&sdc_default_state>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&xo_board {
+       clock-frequency = <24000000>;
+};
+
+/* PINCTRL */
+
+&tlmm {
+       i2c_1_pins: i2c-1-state {
+               pins = "gpio29", "gpio30";
+               function = "blsp1_i2c0";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       sdc_default_state: sdc-default-state {
+               clk-pins {
+                       pins = "gpio13";
+                       function = "sdc_clk";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+
+               cmd-pins {
+                       pins = "gpio12";
+                       function = "sdc_cmd";
+                       drive-strength = <8>;
+                       bias-pull-up;
+               };
+
+               data-pins {
+                       pins = "gpio8", "gpio9", "gpio10", "gpio11";
+                       function = "sdc_data";
+                       drive-strength = <8>;
+                       bias-pull-up;
+               };
+       };
+
+       spi_0_data_clk_pins: spi-0-data-clk-state {
+               pins = "gpio14", "gpio15", "gpio16";
+               function = "blsp0_spi";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       spi_0_cs_pins: spi-0-cs-state {
+               pins = "gpio17";
+               function = "blsp0_spi";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+};
index 12e0e179e139cc9d506f0a938dc0808ba6d36aae..47984037f0a54f2674332566beafe7a956336c98 100644 (file)
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
 
+               qfprom: efuse@a4000 {
+                       compatible = "qcom,ipq5332-qfprom", "qcom,qfprom";
+                       reg = <0x000a4000 0x721>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
+
                rng: rng@e3000 {
                        compatible = "qcom,prng-ee";
                        reg = <0x000e3000 0x1000>;
index 9ff4e9d45065bfb8a72dc04507c45e5ab796c36a..1c41169efc65ee18298f9f2b84a1a6838d2e518c 100644 (file)
@@ -90,6 +90,7 @@
        firmware {
                scm {
                        compatible = "qcom,scm-ipq6018", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x6100>;
                };
        };
 
                        no-map;
                };
 
+               bootloader@4a100000 {
+                       reg = <0x0 0x4a100000 0x0 0x400000>;
+                       no-map;
+               };
+
+               sbl@4a500000 {
+                       reg = <0x0 0x4a500000 0x0 0x100000>;
+                       no-map;
+               };
+
                tz: memory@4a600000 {
-                       reg = <0x0 0x4a600000 0x0 0x00400000>;
+                       reg = <0x0 0x4a600000 0x0 0x400000>;
                        no-map;
                };
 
                smem_region: memory@4aa00000 {
-                       reg = <0x0 0x4aa00000 0x0 0x00100000>;
+                       reg = <0x0 0x4aa00000 0x0 0x100000>;
                        no-map;
                };
 
                q6_region: memory@4ab00000 {
-                       reg = <0x0 0x4ab00000 0x0 0x05500000>;
+                       reg = <0x0 0x4ab00000 0x0 0x5500000>;
                        no-map;
                };
        };
                hwlocks = <&tcsr_mutex 0>;
        };
 
-       soc: soc {
+       soc: soc@0 {
                #address-cells = <2>;
                #size-cells = <2>;
                ranges = <0 0 0 0 0x0 0xffffffff>;
                        status = "disabled";
                };
 
-               prng: qrng@e1000 {
+               qfprom: efuse@a4000 {
+                       compatible = "qcom,ipq6018-qfprom", "qcom,qfprom";
+                       reg = <0x0 0x000a4000 0x0 0x2000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
+
+               prng: qrng@e3000 {
                        compatible = "qcom,prng-ee";
                        reg = <0x0 0x000e3000 0x0 0x1000>;
                        clocks = <&gcc GCC_PRNG_AHB_CLK>;
                        #size-cells = <0>;
                        reg = <0x0 0x078b5000 0x0 0x600>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-                       spi-max-frequency = <50000000>;
                        clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
                        #size-cells = <0>;
                        reg = <0x0 0x078b6000 0x0 0x600>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       spi-max-frequency = <50000000>;
                        clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
                        #address-cells = <2>;
                        #size-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <0x3>;
+                       #interrupt-cells = <3>;
                        reg = <0x0 0x0b000000 0x0 0x1000>,  /*GICD*/
                              <0x0 0x0b002000 0x0 0x1000>,  /*GICC*/
                              <0x0 0x0b001000 0x0 0x1000>,  /*GICH*/
index 84e715aa4310332c7e0ed7e2570a674f0bfe6fd6..40565ce635dd9a2c03d40c20c314775903958848 100644 (file)
@@ -29,8 +29,8 @@
        };
 
        cpus {
-               #address-cells = <0x1>;
-               #size-cells = <0x0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
 
                CPU0: cpu@0 {
                        device_type = "cpu";
                #size-cells = <2>;
                ranges;
 
+               bootloader@4a600000 {
+                       reg = <0x0 0x4a600000 0x0 0x400000>;
+                       no-map;
+               };
+
+               sbl@4aa00000 {
+                       reg = <0x0 0x4aa00000 0x0 0x100000>;
+                       no-map;
+               };
+
                smem@4ab00000 {
                        compatible = "qcom,smem";
-                       reg = <0x0 0x4ab00000 0x0 0x00100000>;
+                       reg = <0x0 0x4ab00000 0x0 0x100000>;
                        no-map;
 
                        hwlocks = <&tcsr_mutex 0>;
                };
 
                memory@4ac00000 {
+                       reg = <0x0 0x4ac00000 0x0 0x400000>;
                        no-map;
-                       reg = <0x0 0x4ac00000 0x0 0x00400000>;
                };
        };
 
        firmware {
                scm {
                        compatible = "qcom,scm-ipq8074", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x6100>;
                };
        };
 
-       soc: soc {
-               #address-cells = <0x1>;
-               #size-cells = <0x1>;
+       soc: soc@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
                compatible = "simple-bus";
 
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        gpio-ranges = <&tlmm 0 0 70>;
-                       #gpio-cells = <0x2>;
+                       #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <0x2>;
+                       #interrupt-cells = <2>;
 
                        serial_4_pins: serial4-state {
                                pins = "gpio23", "gpio24";
                        #hwlock-cells = <1>;
                };
 
+               tcsr: syscon@1937000 {
+                       compatible = "qcom,tcsr-ipq8074", "syscon";
+                       reg = <0x01937000 0x21000>;
+               };
+
                spmi_bus: spmi@200f000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0x0200f000 0x001000>,
                        #size-cells = <0>;
                        reg = <0x078b5000 0x600>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-                       spi-max-frequency = <50000000>;
                        clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
                                <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
                        status = "disabled";
                };
 
+               blsp1_spi5: spi@78b9000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x78b9000 0x600>;
+                       interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 20>, <&blsp_dma 21>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
                blsp1_i2c6: i2c@78ba000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        #address-cells = <1>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        interrupt-controller;
-                       #interrupt-cells = <0x3>;
+                       #interrupt-cells = <3>;
                        reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
                        ranges = <0 0xb00a000 0xffd>;
 
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts
new file mode 100644 (file)
index 0000000..2b093e0
--- /dev/null
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * IPQ9574 RDP418 board device tree source
+ *
+ * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "ipq9574.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C2";
+       compatible = "qcom,ipq9574-ap-al02-c2", "qcom,ipq9574";
+
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&blsp1_spi0 {
+       pinctrl-0 = <&spi_0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               compatible = "micron,n25q128a11", "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&blsp1_uart2 {
+       pinctrl-0 = <&uart2_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-mp5496-regulators";
+
+               ipq9574_s1: s1 {
+               /*
+                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
+                * During regulator registration, kernel not knowing the initial voltage,
+                * considers it as zero and brings up the regulators with minimum supported voltage.
+                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
+                * the regulators are brought up with 725mV which is sufficient for all the
+                * corner parts to operate at 800MHz
+                */
+                       regulator-min-microvolt = <725000>;
+                       regulator-max-microvolt = <1075000>;
+               };
+       };
+};
+
+&sdhc_1 {
+       pinctrl-0 = <&sdc_default_state>;
+       pinctrl-names = "default";
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       max-frequency = <384000000>;
+       bus-width = <8>;
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&tlmm {
+       sdc_default_state: sdc-default-state {
+               clk-pins {
+                       pins = "gpio5";
+                       function = "sdc_clk";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+
+               cmd-pins {
+                       pins = "gpio4";
+                       function = "sdc_cmd";
+                       drive-strength = <8>;
+                       bias-pull-up;
+               };
+
+               data-pins {
+                       pins = "gpio0", "gpio1", "gpio2",
+                              "gpio3", "gpio6", "gpio7",
+                              "gpio8", "gpio9";
+                       function = "sdc_data";
+                       drive-strength = <8>;
+                       bias-pull-up;
+               };
+
+               rclk-pins {
+                       pins = "gpio10";
+                       function = "sdc_rclk";
+                       drive-strength = <8>;
+                       bias-pull-down;
+               };
+       };
+
+       spi_0_pins: spi-0-state {
+               pins = "gpio11", "gpio12", "gpio13", "gpio14";
+               function = "blsp0_spi";
+               drive-strength = <8>;
+               bias-disable;
+       };
+};
+
+&xo_board_clk {
+       clock-frequency = <24000000>;
+};
similarity index 67%
rename from arch/arm64/boot/dts/qcom/ipq9574-al02-c7.dts
rename to arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
index 2c8430197ec0f3b3b80c6ec36308dc10c23af291..2b3ed8d351f701699dc5b1a605b29418fe26696c 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 /*
- * IPQ9574 AL02-C7 board device tree source
+ * IPQ9574 RDP433 board device tree source
  *
  * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
        status = "okay";
 };
 
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-mp5496-regulators";
+
+               ipq9574_s1: s1 {
+               /*
+                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
+                * During regulator registration, kernel not knowing the initial voltage,
+                * considers it as zero and brings up the regulators with minimum supported voltage.
+                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
+                * the regulators are brought up with 725mV which is sufficient for all the
+                * corner parts to operate at 800MHz
+                */
+                       regulator-min-microvolt = <725000>;
+                       regulator-max-microvolt = <1075000>;
+               };
+       };
+};
+
 &sdhc_1 {
        pinctrl-0 = <&sdc_default_state>;
        pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts
new file mode 100644 (file)
index 0000000..c8fa54e
--- /dev/null
@@ -0,0 +1,80 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * IPQ9574 RDP449 board device tree source
+ *
+ * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "ipq9574.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C6";
+       compatible = "qcom,ipq9574-ap-al02-c6", "qcom,ipq9574";
+
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&blsp1_spi0 {
+       pinctrl-0 = <&spi_0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               compatible = "micron,n25q128a11", "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&blsp1_uart2 {
+       pinctrl-0 = <&uart2_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-mp5496-regulators";
+
+               ipq9574_s1: s1 {
+               /*
+                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
+                * During regulator registration, kernel not knowing the initial voltage,
+                * considers it as zero and brings up the regulators with minimum supported voltage.
+                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
+                * the regulators are brought up with 725mV which is sufficient for all the
+                * corner parts to operate at 800MHz
+                */
+                       regulator-min-microvolt = <725000>;
+                       regulator-max-microvolt = <1075000>;
+               };
+       };
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&tlmm {
+       spi_0_pins: spi-0-state {
+               pins = "gpio11", "gpio12", "gpio13", "gpio14";
+               function = "blsp0_spi";
+               drive-strength = <8>;
+               bias-disable;
+       };
+};
+
+&xo_board_clk {
+       clock-frequency = <24000000>;
+};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts
new file mode 100644 (file)
index 0000000..f01de66
--- /dev/null
@@ -0,0 +1,80 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * IPQ9574 RDP453 board device tree source
+ *
+ * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "ipq9574.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C8";
+       compatible = "qcom,ipq9574-ap-al02-c8", "qcom,ipq9574";
+
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&blsp1_spi0 {
+       pinctrl-0 = <&spi_0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               compatible = "micron,n25q128a11", "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&blsp1_uart2 {
+       pinctrl-0 = <&uart2_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-mp5496-regulators";
+
+               ipq9574_s1: s1 {
+               /*
+                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
+                * During regulator registration, kernel not knowing the initial voltage,
+                * considers it as zero and brings up the regulators with minimum supported voltage.
+                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
+                * the regulators are brought up with 725mV which is sufficient for all the
+                * corner parts to operate at 800MHz
+                */
+                       regulator-min-microvolt = <725000>;
+                       regulator-max-microvolt = <1075000>;
+               };
+       };
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&tlmm {
+       spi_0_pins: spi-0-state {
+               pins = "gpio11", "gpio12", "gpio13", "gpio14";
+               function = "blsp0_spi";
+               drive-strength = <8>;
+               bias-disable;
+       };
+};
+
+&xo_board_clk {
+       clock-frequency = <24000000>;
+};
index 3bb7435f5e7f08a05faad0c9b270f020798e8def..988107a9edc45e9bf917d6d82e177d947b059b9f 100644 (file)
@@ -6,8 +6,9 @@
  * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
-#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/qcom,apss-ipq.h>
 #include <dt-bindings/clock/qcom,ipq9574-gcc.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/reset/qcom,ipq9574-gcc.h>
 
 / {
        #size-cells = <2>;
 
        clocks {
-               bias_pll_ubi_nc_clk: bias-pll-ubi-nc-clk {
-                       compatible = "fixed-clock";
-                       clock-frequency = <353000000>;
-                       #clock-cells = <0>;
-               };
-
                sleep_clk: sleep-clk {
                        compatible = "fixed-clock";
                        #clock-cells = <0>;
                        reg = <0x0>;
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
+                       clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
+                       clock-names = "cpu";
+                       operating-points-v2 = <&cpu_opp_table>;
+                       cpu-supply = <&ipq9574_s1>;
                };
 
                CPU1: cpu@1 {
                        reg = <0x1>;
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
+                       clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
+                       clock-names = "cpu";
+                       operating-points-v2 = <&cpu_opp_table>;
+                       cpu-supply = <&ipq9574_s1>;
                };
 
                CPU2: cpu@2 {
                        reg = <0x2>;
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
+                       clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
+                       clock-names = "cpu";
+                       operating-points-v2 = <&cpu_opp_table>;
+                       cpu-supply = <&ipq9574_s1>;
                };
 
                CPU3: cpu@3 {
                        reg = <0x3>;
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
+                       clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
+                       clock-names = "cpu";
+                       operating-points-v2 = <&cpu_opp_table>;
+                       cpu-supply = <&ipq9574_s1>;
                };
 
                L2_0: l2-cache {
                };
        };
 
+       firmware {
+               scm {
+                       compatible = "qcom,scm-ipq9574", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x6100>;
+               };
+       };
+
        memory@40000000 {
                device_type = "memory";
                /* We expect the bootloader to fill in the size */
                reg = <0x0 0x40000000 0x0 0x0>;
        };
 
+       cpu_opp_table: opp-table-cpu {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-936000000 {
+                       opp-hz = /bits/ 64 <936000000>;
+                       opp-microvolt = <725000>;
+                       clock-latency-ns = <200000>;
+               };
+
+               opp-1104000000 {
+                       opp-hz = /bits/ 64 <1104000000>;
+                       opp-microvolt = <787500>;
+                       clock-latency-ns = <200000>;
+               };
+
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <862500>;
+                       clock-latency-ns = <200000>;
+               };
+
+               opp-1488000000 {
+                       opp-hz = /bits/ 64 <1488000000>;
+                       opp-microvolt = <925000>;
+                       clock-latency-ns = <200000>;
+               };
+
+               opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <987500>;
+                       clock-latency-ns = <200000>;
+               };
+
+               opp-2208000000 {
+                       opp-hz = /bits/ 64 <2208000000>;
+                       opp-microvolt = <1062500>;
+                       clock-latency-ns = <200000>;
+               };
+       };
+
        pmu {
                compatible = "arm,cortex-a73-pmu";
                interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
                        reg = <0x0 0x4a600000 0x0 0x400000>;
                        no-map;
                };
+
+               smem@4aa00000 {
+                       compatible = "qcom,smem";
+                       reg = <0x0 0x4aa00000 0x0 0x00100000>;
+                       hwlocks = <&tcsr_mutex 0>;
+                       no-map;
+               };
+       };
+
+       rpm-glink {
+               compatible = "qcom,glink-rpm";
+               interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+               qcom,rpm-msg-ram = <&rpm_msg_ram>;
+               mboxes = <&apcs_glb 0>;
+
+               rpm_requests: rpm-requests {
+                       compatible = "qcom,rpm-ipq9574";
+                       qcom,glink-channels = "rpm_requests";
+               };
        };
 
        soc: soc@0 {
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
 
+               rpm_msg_ram: sram@60000 {
+                       compatible = "qcom,rpm-msg-ram";
+                       reg = <0x00060000 0x6000>;
+               };
+
+               rng: rng@e3000 {
+                       compatible = "qcom,prng-ee";
+                       reg = <0x000e3000 0x1000>;
+                       clocks = <&gcc GCC_PRNG_AHB_CLK>;
+                       clock-names = "core";
+               };
+
+               qfprom: efuse@a4000 {
+                       compatible = "qcom,ipq9574-qfprom", "qcom,qfprom";
+                       reg = <0x000a4000 0x5a1>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
+
                tlmm: pinctrl@1000000 {
                        compatible = "qcom,ipq9574-tlmm";
                        reg = <0x01000000 0x300000>;
                        reg = <0x01800000 0x80000>;
                        clocks = <&xo_board_clk>,
                                 <&sleep_clk>,
-                                <&bias_pll_ubi_nc_clk>,
+                                <0>,
                                 <0>,
                                 <0>,
                                 <0>,
                        #power-domain-cells = <1>;
                };
 
+               tcsr_mutex: hwlock@1905000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x01905000 0x20000>;
+                       #hwlock-cells = <1>;
+               };
+
+               tcsr: syscon@1937000 {
+                       compatible = "qcom,tcsr-ipq9574", "syscon";
+                       reg = <0x01937000 0x21000>;
+               };
+
                sdhc_1: mmc@7804000 {
                        compatible = "qcom,ipq9574-sdhci", "qcom,sdhci-msm-v5";
                        reg = <0x07804000 0x1000>, <0x07805000 0x1000>;
                        status = "disabled";
                };
 
+               blsp_dma: dma-controller@7884000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x07884000 0x2b000>;
+                       interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+
+               blsp1_uart0: serial@78af000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078af000 0x200>;
+                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp1_uart1: serial@78b0000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078b0000 0x200>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
                blsp1_uart2: serial@78b1000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0x078b1000 0x200>;
                        status = "disabled";
                };
 
+               blsp1_uart3: serial@78b2000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078b2000 0x200>;
+                       interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp1_uart4: serial@78b3000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078b3000 0x200>;
+                       interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp1_uart5: serial@78b4000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078b4000 0x200>;
+                       interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp1_spi0: spi@78b5000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b5000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 12>, <&blsp_dma 13>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               blsp1_i2c1: i2c@78b6000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b6000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 14>, <&blsp_dma 15>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               blsp1_spi1: spi@78b6000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b6000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 14>, <&blsp_dma 15>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               blsp1_i2c2: i2c@78b7000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b7000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 16>, <&blsp_dma 17>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               blsp1_spi2: spi@78b7000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b7000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 16>, <&blsp_dma 17>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               blsp1_i2c3: i2c@78b8000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b8000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 18>, <&blsp_dma 19>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               blsp1_spi3: spi@78b8000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b8000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                       spi-max-frequency = <50000000>;
+                       clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 18>, <&blsp_dma 19>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               blsp1_i2c4: i2c@78b9000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b9000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 20>, <&blsp_dma 21>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               blsp1_spi4: spi@78b9000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b9000 0x600>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 20>, <&blsp_dma 21>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
                intc: interrupt-controller@b000000 {
                        compatible = "qcom,msm-qgic2";
                        reg = <0x0b000000 0x1000>,  /* GICD */
-                             <0x0b002000 0x1000>,  /* GICC */
+                             <0x0b002000 0x2000>,  /* GICC */
                              <0x0b001000 0x1000>,  /* GICH */
-                             <0x0b004000 0x1000>;  /* GICV */
+                             <0x0b004000 0x2000>;  /* GICV */
                        #address-cells = <1>;
                        #size-cells = <1>;
                        interrupt-controller;
                        #interrupt-cells = <3>;
-                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
                        ranges = <0 0x0b00c000 0x3000>;
 
                        v2m0: v2m@0 {
                        };
                };
 
+               watchdog: watchdog@b017000 {
+                       compatible = "qcom,apss-wdt-ipq9574", "qcom,kpss-wdt";
+                       reg = <0x0b017000 0x1000>;
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&sleep_clk>;
+                       timeout-sec = <30>;
+               };
+
+               apcs_glb: mailbox@b111000 {
+                       compatible = "qcom,ipq9574-apcs-apps-global",
+                                    "qcom,ipq6018-apcs-apps-global";
+                       reg = <0x0b111000 0x1000>;
+                       #clock-cells = <1>;
+                       clocks = <&a73pll>, <&xo_board_clk>;
+                       clock-names = "pll", "xo";
+                       #mbox-cells = <1>;
+               };
+
+               a73pll: clock@b116000 {
+                       compatible = "qcom,ipq9574-a73pll";
+                       reg = <0x0b116000 0x40>;
+                       #clock-cells = <0>;
+                       clocks = <&xo_board_clk>;
+                       clock-names = "xo";
+               };
+
                timer@b120000 {
                        compatible = "arm,armv7-timer-mem";
                        reg = <0x0b120000 0x1000>;
index 13cd9ad167df745287680195a0519a11db81b856..5025c08e481730e1a02e0c16e8441140b0b53326 100644 (file)
@@ -22,7 +22,9 @@
        chassis-type = "tablet";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
        };
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
+               id-gpio = <&tlmm 110 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
@@ -58,7 +60,7 @@
        accelerometer@10 {
                compatible = "bosch,bmc150_accel";
                reg = <0x10>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <115 IRQ_TYPE_EDGE_RISING>;
 
                vdd-supply = <&pm8916_l17>;
                compatible = "edt,edt-ft5406";
                reg = <0x38>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
 
-               reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
 
                vcc-supply = <&pm8916_l16>;
                iovcc-supply = <&pm8916_l6>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        status = "okay";
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l16: l16 {
+               regulator-min-microvolt = <2900000>;
+               regulator-max-microvolt = <2900000>;
+       };
+
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &pm8916_vib {
        status = "okay";
 };
        pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
 
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_HIGH>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
 
        status = "okay";
 };
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-system-load = <200000>;
-               regulator-allow-set-load;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <2900000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        accel_int_default: accel-int-default-state {
                pins = "gpio115";
                function = "gpio";
index fecb69944cfa38ca3dfa5586dfd4f031d04afc67..7b629243ef0d7e5b43c8d53dd7601cde59e7df43 100644 (file)
@@ -13,7 +13,9 @@
        chassis-type = "handset";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
@@ -30,7 +32,7 @@
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
        };
@@ -42,7 +44,7 @@
                pinctrl-0 = <&gpio_leds_default>;
 
                led-0 {
-                       gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "torch";
                        function = LED_FUNCTION_TORCH;
                };
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&msmgpio 69 GPIO_ACTIVE_HIGH>;
+               id-gpio = <&tlmm 69 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
@@ -66,9 +68,9 @@
        touchscreen@26 {
                compatible = "mstar,msg2638";
                reg = <0x26>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
-               reset-gpios = <&msmgpio 100 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 100 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&ts_int_reset_default>;
                vdd-supply = <&pm8916_l17>;
@@ -86,7 +88,7 @@
                reg = <0x0c>;
                vdd-supply = <&pm8916_l17>;
                vid-supply = <&pm8916_l6>;
-               reset-gpios = <&msmgpio 8 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&mag_reset_default>;
                mount-matrix = "0", "1", "0",
                reg = <0x0f>;
                vdd-supply = <&pm8916_l17>;
                vddio-supply = <&pm8916_l6>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <31 IRQ_TYPE_EDGE_RISING>;
                pinctrl-names = "default";
                pinctrl-0 = <&accel_int_default>;
        proximity@48 {
                compatible = "sensortek,stk3310";
                reg = <0x48>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-names = "default";
                pinctrl-0 = <&proximity_int_default>;
                reg = <0x68>;
                vdd-supply = <&pm8916_l17>;
                vddio-supply = <&pm8916_l6>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <97 IRQ_TYPE_EDGE_RISING>,
                             <98 IRQ_TYPE_EDGE_RISING>;
                pinctrl-names = "default";
        led-controller@68 {
                compatible = "si-en,sn3190";
                reg = <0x68>;
-               shutdown-gpios = <&msmgpio 89 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&led_enable_default &led_shutdown_default>;
                #address-cells = <1>;
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &pm8916_vib {
        status = "okay";
 };
        pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
 
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
 &usb {
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        accel_int_default: accel-int-default-state {
                pins = "gpio31";
                function = "gpio";
index 91284a1d0966f1f84453abbd8b7ff898101a2005..b8c217b04a3b9bd640464426333a550843b7444a 100644 (file)
@@ -13,7 +13,9 @@
        chassis-type = "handset";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                        debounce-interval = <15>;
                };
 
                button-volume-down {
                        label = "Volume Down";
-                       gpios = <&msmgpio 117 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 117 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEDOWN>;
                        debounce-interval = <15>;
                };
@@ -49,7 +51,7 @@
                regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
 
-               gpio = <&msmgpio 87 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 87 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                startup-delay-us = <200>;
@@ -60,7 +62,7 @@
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpios = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
+               id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
@@ -76,7 +78,7 @@
                vdd-supply = <&pm8916_l8>;
                vid-supply = <&pm8916_l6>;
 
-               reset-gpios = <&msmgpio 112 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 112 GPIO_ACTIVE_LOW>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&mag_reset_default>;
@@ -86,7 +88,7 @@
                compatible = "invensense,mpu6515";
                reg = <0x68>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <36 IRQ_TYPE_EDGE_RISING>;
 
                vdd-supply = <&pm8916_l17>;
                compatible = "edt,edt-ft5306";
                reg = <0x38>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
-               reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
 
                vcc-supply = <&pm8916_l11>;
                iovcc-supply = <&pm8916_l6>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &sdhc_1 {
        status = "okay";
 
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
 &usb {
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        gpio_keys_default: gpio-keys-default-state {
                pins = "gpio107", "gpio117";
                function = "gpio";
index 525ec76efeeb78db7b8f336c1301064dc5f27d81..56c42b0c973367ea47ee7b6c9c1b2219f44d06d0 100644 (file)
@@ -14,7 +14,9 @@
        chassis-type = "tablet";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
@@ -24,8 +26,8 @@
        flash-led-controller {
                /* Actually qcom,leds-gpio-flash */
                compatible = "sgmicro,sgm3140";
-               enable-gpios = <&msmgpio 31 GPIO_ACTIVE_HIGH>;
-               flash-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               flash-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 
                pinctrl-0 = <&camera_flash_default>;
                pinctrl-names = "default";
@@ -45,7 +47,7 @@
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
        };
                led-red {
                        function = LED_FUNCTION_CHARGING;
                        color = <LED_COLOR_ID_RED>;
-                       gpios = <&msmgpio 117 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
                        retain-state-suspended;
                };
 
                led-green {
                        function = LED_FUNCTION_CHARGING;
                        color = <LED_COLOR_ID_GREEN>;
-                       gpios = <&msmgpio 118 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 118 GPIO_ACTIVE_HIGH>;
                        retain-state-suspended;
                };
        };
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
+               id-gpio = <&tlmm 110 GPIO_ACTIVE_HIGH>;
                pinctrl-0 = <&usb_id_default>;
                pinctrl-names = "default";
        };
                compatible = "edt,edt-ft5406";
                reg = <0x38>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
-               reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
 
                vcc-supply = <&pm8916_l17>;
                iovcc-supply = <&pm8916_l6>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        status = "okay";
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &pm8916_vib {
        status = "okay";
 };
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
        pinctrl-names = "default", "sleep";
 
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 
        status = "okay";
 };
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-system-load = <200000>;
-               regulator-allow-set-load;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        camera_flash_default: camera-flash-default-state {
                pins = "gpio31", "gpio32";
                function = "gpio";
index 5b1bac8f51220e28cf2702359ba2de9b35fb41da..175ca011998c65d8a6f9652bd08be468814ea084 100644 (file)
@@ -26,7 +26,9 @@
        chassis-type = "handset";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
@@ -43,7 +45,7 @@
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
        };
                pinctrl-0 = <&gpio_leds_default>;
 
                led-0 {
-                       gpios = <&msmgpio 8 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
                        color = <LED_COLOR_ID_RED>;
                        default-state = "off";
                        function = LED_FUNCTION_INDICATOR;
                };
 
                led-1 {
-                       gpios = <&msmgpio 9 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 9 GPIO_ACTIVE_HIGH>;
                        color = <LED_COLOR_ID_GREEN>;
                        default-state = "off";
                        function = LED_FUNCTION_INDICATOR;
                };
 
                led-2 {
-                       gpios = <&msmgpio 10 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
                        color = <LED_COLOR_ID_BLUE>;
                        default-state = "off";
                        function = LED_FUNCTION_INDICATOR;
@@ -78,7 +80,7 @@
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&msmgpio 117 GPIO_ACTIVE_HIGH>;
+               id-gpio = <&tlmm 117 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
@@ -94,7 +96,7 @@
                vdd-supply = <&pm8916_l17>;
                vid-supply = <&pm8916_l6>;
 
-               reset-gpios = <&msmgpio 36 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 36 GPIO_ACTIVE_LOW>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&mag_reset_default>;
                compatible = "kionix,kx023-1025";
                reg = <0x1e>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <115 IRQ_TYPE_EDGE_RISING>;
 
                vdd-supply = <&pm8916_l17>;
                compatible = "avago,apds9930";
                reg = <0x39>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <113 IRQ_TYPE_EDGE_FALLING>;
 
                vdd-supply = <&pm8916_l17>;
                        regulator-name = "outp";
                        regulator-min-microvolt = <5400000>;
                        regulator-max-microvolt = <5400000>;
-                       enable-gpios = <&msmgpio 97 GPIO_ACTIVE_HIGH>;
+                       enable-gpios = <&tlmm 97 GPIO_ACTIVE_HIGH>;
                        regulator-active-discharge = <1>;
                };
 
                        regulator-name = "outn";
                        regulator-min-microvolt = <5400000>;
                        regulator-max-microvolt = <5400000>;
-                       enable-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
+                       enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
                        regulator-active-discharge = <1>;
                };
        };
                #address-cells = <1>;
                #size-cells = <0>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
                vdd-supply = <&pm8916_l17>;
                compatible = "nxp,pn547", "nxp,nxp-nci-i2c";
                reg = <0x28>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <21 IRQ_TYPE_EDGE_RISING>;
 
-               enable-gpios = <&msmgpio 20 GPIO_ACTIVE_HIGH>;
-               firmware-gpios = <&msmgpio 2 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+               firmware-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&nfc_default>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        status = "okay";
 };
 
+&lpass_codec {
+       status = "okay";
+};
+
+&pm8916_codec {
+       status = "okay";
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
+&pm8916_l8 {
+       regulator-min-microvolt = <2950000>;
+       regulator-max-microvolt = <2950000>;
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l16: l16 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &pm8916_vib {
        status = "okay";
 };
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdhc2_cd_default>;
 
        /*
-        * The Huawei device tree sets cd-gpios = <&msmgpio 38 GPIO_ACTIVE_HIGH>.
+        * The Huawei device tree sets cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>.
         * However, gpio38 does not change its state when inserting/removing the
         * SD card, it's just low all the time. The Huawei kernel seems to use
         * polling for SD card detection instead.
         * Maybe Huawei decided to replace the second SIM card slot with the
         * SD card slot and forgot to re-route to gpio38.
         */
-       cd-gpios = <&msmgpio 56 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 56 GPIO_ACTIVE_LOW>;
 };
 
 &sound {
                        sound-dai = <&lpass MI2S_PRIMARY>;
                };
                codec {
-                       sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
+                       sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>;
                };
        };
 
                        sound-dai = <&lpass MI2S_TERTIARY>;
                };
                codec {
-                       sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
+                       sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>;
                };
        };
 };
        extcon = <&usb_id>;
 };
 
-&wcd_codec {
-       qcom,micbias-lvl = <2800>;
-       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
-       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
-       qcom,hphl-jack-type-normally-open;
-};
-
 &wcnss {
        status = "okay";
 };
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2950000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        accel_irq_default: accel-irq-default-state {
                pins = "gpio115";
                function = "gpio";
index f1dd625e1822782e7ca874f80891c12f1e361a4d..9560ba632c6fb8b3683535662fd456d25493f627 100644 (file)
@@ -14,7 +14,9 @@
        chassis-type = "handset";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
@@ -41,7 +43,7 @@
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
        };
@@ -53,7 +55,7 @@
                regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
 
-               gpio = <&msmgpio 17 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 17 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
@@ -62,8 +64,8 @@
 
        flash-led-controller {
                compatible = "sgmicro,sgm3140";
-               flash-gpios = <&msmgpio 31 GPIO_ACTIVE_HIGH>;
-               enable-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
+               flash-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&camera_flash_default>;
                 * to the BMC156. However, there are two pads next to the chip
                 * that can be shorted to make it work if needed.
                 *
-                * interrupt-parent = <&msmgpio>;
+                * interrupt-parent = <&tlmm>;
                 * interrupts = <116 IRQ_TYPE_EDGE_RISING>;
                 */
 
                compatible = "bosch,bmc156_magn";
                reg = <0x12>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <113 IRQ_TYPE_EDGE_RISING>;
 
                pinctrl-names = "default";
                reg = <0x23>;
                proximity-near-level = <75>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <115 IRQ_TYPE_EDGE_FALLING>;
 
                pinctrl-names = "default";
                compatible = "bosch,bmg160";
                reg = <0x68>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <23 IRQ_TYPE_EDGE_RISING>,
                             <22 IRQ_TYPE_EDGE_RISING>;
 
                #address-cells = <1>;
                #size-cells = <0>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
                vdd-supply = <&reg_ctp>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &pm8916_usbin {
        status = "okay";
 };
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        accel_int_default: accel-int-default-state {
                pins = "gpio116";
                function = "gpio";
index b79e80913af9fb86b75e0263fea7104acc19f60b..f23cfb2bf7934a946e96902590d712e9d29b07f1 100644 (file)
        chassis-type = "handset";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
                stdout-path = "serial0";
        };
 
+       flash-led-controller {
+               compatible = "ocs,ocp8110";
+               enable-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
+               flash-gpios = <&tlmm 119 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&camera_front_flash_default>;
+               pinctrl-names = "default";
+
+               flash_led: led {
+                       function = LED_FUNCTION_FLASH;
+                       color = <LED_COLOR_ID_WHITE>;
+                       flash-max-timeout-us = <250000>;
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
@@ -30,7 +47,7 @@
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
        };
@@ -39,7 +56,7 @@
                compatible = "gpio-leds";
 
                led-0 {
-                       gpios = <&msmgpio 17 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
                        color = <LED_COLOR_ID_WHITE>;
                        default-state = "off";
                        function = LED_FUNCTION_KBD_BACKLIGHT;
@@ -51,7 +68,7 @@
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
+               id-gpio = <&tlmm 110 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
@@ -67,7 +84,7 @@
                vdd-supply = <&pm8916_l17>;
                vid-supply = <&pm8916_l6>;
 
-               reset-gpios = <&msmgpio 111 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&mag_reset_default>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &pm8916_vib {
        status = "okay";
 };
        pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
 
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
 &usb {
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        button_backlight_default: button-backlight-default-state {
                pins = "gpio17";
                function = "gpio";
                bias-disable;
        };
 
+       camera_front_flash_default: camera-front-flash-default-state {
+               pins = "gpio49", "gpio119";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        gpio_keys_default: gpio-keys-default-state {
                pins = "gpio107";
                function = "gpio";
index 7c0ceb3cff45eb176129804a62002eda513f123c..438eb1faee1d8bf62e9d94b469f37cab722d206b 100644 (file)
@@ -12,7 +12,7 @@
        compatible = "qcom,msm8916-mtp", "qcom,msm8916-mtp/1", "qcom,msm8916";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               serial0 = &blsp_uart2;
                usid0 = &pm8916_0;
        };
 
@@ -21,6 +21,6 @@
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
index 33dfcf318a81bebb3e619c7c6696d64f08d25066..1b60d42a13c7d78bada86cb9c0a23bb89bc45bb5 100644 (file)
@@ -3,9 +3,9 @@
  * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
  */
 
-&msmgpio {
+&tlmm {
 
-       blsp1_uart1_default: blsp1-uart1-default-state {
+       blsp_uart1_default: blsp-uart1-default-state {
                /* TX, RX, CTS_N, RTS_N */
                pins = "gpio0", "gpio1", "gpio2", "gpio3";
                function = "blsp_uart1";
@@ -14,7 +14,7 @@
                bias-disable;
        };
 
-       blsp1_uart1_sleep: blsp1-uart1-sleep-state {
+       blsp_uart1_sleep: blsp-uart1-sleep-state {
                pins = "gpio0", "gpio1", "gpio2", "gpio3";
                function = "gpio";
 
@@ -22,7 +22,7 @@
                bias-pull-down;
        };
 
-       blsp1_uart2_default: blsp1-uart2-default-state {
+       blsp_uart2_default: blsp-uart2-default-state {
                pins = "gpio4", "gpio5";
                function = "blsp_uart2";
 
@@ -30,7 +30,7 @@
                bias-disable;
        };
 
-       blsp1_uart2_sleep: blsp1-uart2-sleep-state {
+       blsp_uart2_sleep: blsp-uart2-sleep-state {
                pins = "gpio4", "gpio5";
                function = "gpio";
 
@@ -38,7 +38,7 @@
                bias-pull-down;
        };
 
-       spi1_default: spi1-default-state {
+       blsp_spi1_default: blsp-spi1-default-state {
                spi-pins {
                        pins = "gpio0", "gpio1", "gpio3";
                        function = "blsp_spi1";
@@ -56,7 +56,7 @@
                };
        };
 
-       spi1_sleep: spi1-sleep-state {
+       blsp_spi1_sleep: blsp-spi1-sleep-state {
                pins = "gpio0", "gpio1", "gpio2", "gpio3";
                function = "gpio";
 
@@ -64,7 +64,7 @@
                bias-pull-down;
        };
 
-       spi2_default: spi2-default-state {
+       blsp_spi2_default: blsp-spi2-default-state {
                spi-pins {
                        pins = "gpio4", "gpio5", "gpio7";
                        function = "blsp_spi2";
@@ -82,7 +82,7 @@
                };
        };
 
-       spi2_sleep: spi2-sleep-state {
+       blsp_spi2_sleep: blsp-spi2-sleep-state {
                pins = "gpio4", "gpio5", "gpio6", "gpio7";
                function = "gpio";
 
@@ -90,7 +90,7 @@
                bias-pull-down;
        };
 
-       spi3_default: spi3-default-state {
+       blsp_spi3_default: blsp-spi3-default-state {
                spi-pins {
                        pins = "gpio8", "gpio9", "gpio11";
                        function = "blsp_spi3";
                };
        };
 
-       spi3_sleep: spi3-sleep-state {
+       blsp_spi3_sleep: blsp-spi3-sleep-state {
                pins = "gpio8", "gpio9", "gpio10", "gpio11";
                function = "gpio";
 
                bias-pull-down;
        };
 
-       spi4_default: spi4-default-state {
+       blsp_spi4_default: blsp-spi4-default-state {
                spi-pins {
                        pins = "gpio12", "gpio13", "gpio15";
                        function = "blsp_spi4";
                };
        };
 
-       spi4_sleep: spi4-sleep-state {
+       blsp_spi4_sleep: blsp-spi4-sleep-state {
                pins = "gpio12", "gpio13", "gpio14", "gpio15";
                function = "gpio";
 
                bias-pull-down;
        };
 
-       spi5_default: spi5-default-state {
+       blsp_spi5_default: blsp-spi5-default-state {
                spi-pins {
                        pins = "gpio16", "gpio17", "gpio19";
                        function = "blsp_spi5";
                };
        };
 
-       spi5_sleep: spi5-sleep-state {
+       blsp_spi5_sleep: blsp-spi5-sleep-state {
                pins = "gpio16", "gpio17", "gpio18", "gpio19";
                function = "gpio";
 
                bias-pull-down;
        };
 
-       spi6_default: spi6-default-state {
+       blsp_spi6_default: blsp-spi6-default-state {
                spi-pins {
                        pins = "gpio20", "gpio21", "gpio23";
                        function = "blsp_spi6";
                };
        };
 
-       spi6_sleep: spi6-sleep-state {
+       blsp_spi6_sleep: blsp-spi6-sleep-state {
                pins = "gpio20", "gpio21", "gpio22", "gpio23";
                function = "gpio";
 
                bias-pull-down;
        };
 
-       i2c1_default: i2c1-default-state {
+       blsp_i2c1_default: blsp-i2c1-default-state {
                pins = "gpio2", "gpio3";
                function = "blsp_i2c1";
 
                bias-disable;
        };
 
-       i2c1_sleep: i2c1-sleep-state {
+       blsp_i2c1_sleep: blsp-i2c1-sleep-state {
                pins = "gpio2", "gpio3";
                function = "gpio";
 
                bias-disable;
        };
 
-       i2c2_default: i2c2-default-state {
+       blsp_i2c2_default: blsp-i2c2-default-state {
                pins = "gpio6", "gpio7";
                function = "blsp_i2c2";
 
                bias-disable;
        };
 
-       i2c2_sleep: i2c2-sleep-state {
+       blsp_i2c2_sleep: blsp-i2c2-sleep-state {
                pins = "gpio6", "gpio7";
                function = "gpio";
 
                bias-disable;
        };
 
-       i2c3_default: i2c3-default-state {
+       blsp_i2c3_default: blsp-i2c3-default-state {
                pins = "gpio10", "gpio11";
                function = "blsp_i2c3";
 
                bias-disable;
        };
 
-       i2c3_sleep: i2c3-sleep-state {
+       blsp_i2c3_sleep: blsp-i2c3-sleep-state {
                pins = "gpio10", "gpio11";
                function = "gpio";
 
                bias-disable;
        };
 
-       i2c4_default: i2c4-default-state {
+       blsp_i2c4_default: blsp-i2c4-default-state {
                pins = "gpio14", "gpio15";
                function = "blsp_i2c4";
 
                bias-disable;
        };
 
-       i2c4_sleep: i2c4-sleep-state {
+       blsp_i2c4_sleep: blsp-i2c4-sleep-state {
                pins = "gpio14", "gpio15";
                function = "gpio";
 
                bias-disable;
        };
 
-       i2c5_default: i2c5-default-state {
+       blsp_i2c5_default: blsp-i2c5-default-state {
                pins = "gpio18", "gpio19";
                function = "blsp_i2c5";
 
                bias-disable;
        };
 
-       i2c5_sleep: i2c5-sleep-state {
+       blsp_i2c5_sleep: blsp-i2c5-sleep-state {
                pins = "gpio18", "gpio19";
                function = "gpio";
 
                bias-disable;
        };
 
-       i2c6_default: i2c6-default-state {
+       blsp_i2c6_default: blsp-i2c6-default-state {
                pins = "gpio22", "gpio23";
                function = "blsp_i2c6";
 
                bias-disable;
        };
 
-       i2c6_sleep: i2c6-sleep-state {
+       blsp_i2c6_sleep: blsp-i2c6-sleep-state {
                pins = "gpio22", "gpio23";
                function = "gpio";
 
index 6eb5e0a39510026b2321a1420a6cc45e9286a943..b1a7eafbee31f7a5ef957597237e56644ffd45cf 100644 (file)
@@ -1,4 +1,12 @@
 // SPDX-License-Identifier: GPL-2.0-only
+/*
+ * msm8916-pm8916.dtsi describes common properties (e.g. regulator connections)
+ * that apply to most devices that make use of the MSM8916 SoC and PM8916 PMIC.
+ * Many regulators have a fixed purpose in the original reference design and
+ * were rarely re-used for different purposes. Devices that deviate from the
+ * typical reference design should not make use of this include and instead add
+ * the necessary properties in the board-specific device tree.
+ */
 
 #include "msm8916.dtsi"
 #include "pm8916.dtsi"
        vdda-supply = <&pm8916_l2>;
 };
 
-&dsi0 {
+&mdss_dsi0 {
        vdda-supply = <&pm8916_l2>;
        vddio-supply = <&pm8916_l6>;
 };
 
-&dsi_phy0 {
+&mdss_dsi0_phy {
        vddio-supply = <&pm8916_l6>;
 };
 
        pll-supply = <&pm8916_l7>;
 };
 
+&pm8916_codec {
+       vdd-cdc-io-supply = <&pm8916_l5>;
+       vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
+       vdd-micbias-supply = <&pm8916_l13>;
+};
+
 &sdhc_1 {
        vmmc-supply = <&pm8916_l8>;
        vqmmc-supply = <&pm8916_l5>;
 };
 
 &rpm_requests {
-       smd_rpm_regulators: regulators {
+       pm8916_rpm_regulators: regulators {
                compatible = "qcom,rpm-pm8916-regulators";
+               vdd_l1_l2_l3-supply = <&pm8916_s3>;
+               vdd_l4_l5_l6-supply = <&pm8916_s4>;
+               vdd_l7-supply = <&pm8916_s4>;
 
                /* pm8916_s1 is managed by rpmpd (MSM8916_VDDCX) */
-               pm8916_s3: s3 {};
-               pm8916_s4: s4 {};
 
-               pm8916_l1: l1 {};
-               pm8916_l2: l2 {};
+               pm8916_s3: s3 {
+                       regulator-min-microvolt = <1250000>;
+                       regulator-max-microvolt = <1350000>;
+                       regulator-always-on; /* Needed for L2 */
+               };
+
+               pm8916_s4: s4 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-always-on; /* Needed for L5/L7 */
+               };
+
+               /*
+                * Some of the regulators are unused or managed by another
+                * processor (e.g. the modem). We should still define nodes for
+                * them to ensure the vote from the application processor can be
+                * dropped in case the regulators are already on during boot.
+                *
+                * The labels for these nodes are omitted on purpose because
+                * boards should configure a proper voltage before using them.
+                */
+               l1 {};
+
+               pm8916_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-always-on; /* Needed for LPDDR RAM */
+               };
+
                /* pm8916_l3 is managed by rpmpd (MSM8916_VDDMX) */
-               pm8916_l4: l4 {};
-               pm8916_l5: l5 {};
-               pm8916_l6: l6 {};
-               pm8916_l7: l7 {};
-               pm8916_l8: l8 {};
-               pm8916_l9: l9 {};
-               pm8916_l10: l10 {};
-               pm8916_l11: l11 {};
-               pm8916_l12: l12 {};
-               pm8916_l13: l13 {};
-               pm8916_l14: l14 {};
-               pm8916_l15: l15 {};
-               pm8916_l16: l16 {};
-               pm8916_l17: l17 {};
-               pm8916_l18: l18 {};
+
+               l4 {};
+
+               pm8916_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on; /* Needed for most digital I/O */
+               };
+
+               pm8916_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8916_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on; /* Needed for CPU PLL */
+               };
+
+               pm8916_l8: l8 {
+                       regulator-min-microvolt = <2900000>;
+                       regulator-max-microvolt = <2900000>;
+               };
+
+               pm8916_l9: l9 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               l10 {};
+
+               pm8916_l11: l11 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-allow-set-load;
+                       regulator-system-load = <200000>;
+               };
+
+               pm8916_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8916_l13: l13 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+
+               l14 {};
+               l15 {};
+               l16 {};
+               l17 {};
+               l18 {};
        };
 };
index 16d67749960e0471a236d030526bdcb9e4f62da0..895036fb6eb89689327379c0065694701c377b35 100644 (file)
@@ -8,7 +8,9 @@
 
 / {
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
 
                button-home {
                        label = "Home";
-                       gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_HOMEPAGE>;
                };
        };
@@ -65,7 +67,7 @@
 
                event-hall-sensor {
                        label = "Hall Effect Sensor";
-                       gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
                        linux,input-type = <EV_SW>;
                        linux,code = <SW_LID>;
                        linux,can-disable;
@@ -83,7 +85,7 @@
                regulator-min-microvolt = <3000000>;
                regulator-max-microvolt = <3000000>;
 
-               gpio = <&msmgpio 76 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 76 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
@@ -96,7 +98,7 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
 
        i2c-muic {
                compatible = "i2c-gpio";
-               sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&muic_i2c_default>;
                        compatible = "siliconmitus,sm5502-muic";
 
                        reg = <0x25>;
-                       interrupt-parent = <&msmgpio>;
+                       interrupt-parent = <&tlmm>;
                        interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
 
                        pinctrl-names = "default";
 
        i2c-tkey {
                compatible = "i2c-gpio";
-               sda-gpios = <&msmgpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&msmgpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&tkey_i2c_default>;
                        compatible = "coreriver,tc360-touchkey";
                        reg = <0x20>;
 
-                       interrupt-parent = <&msmgpio>;
+                       interrupt-parent = <&tlmm>;
                        interrupts = <98 IRQ_TYPE_EDGE_FALLING>;
 
                        /* vcc/vdd-supply are board-specific */
 
        i2c-nfc {
                compatible = "i2c-gpio";
-               sda-gpios = <&msmgpio 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&msmgpio 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&nfc_i2c_default>;
                        compatible = "samsung,s3fwrn5-i2c";
                        reg = <0x27>;
 
-                       interrupt-parent = <&msmgpio>;
+                       interrupt-parent = <&tlmm>;
                        interrupts = <21 IRQ_TYPE_EDGE_RISING>;
 
-                       en-gpios = <&msmgpio 20 GPIO_ACTIVE_LOW>;
-                       wake-gpios = <&msmgpio 49 GPIO_ACTIVE_HIGH>;
+                       en-gpios = <&tlmm 20 GPIO_ACTIVE_LOW>;
+                       wake-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
 
                        clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>;
 
        accelerometer: accelerometer@10 {
                compatible = "bosch,bmc150_accel";
                reg = <0x10>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <115 IRQ_TYPE_EDGE_RISING>;
 
                vdd-supply = <&pm8916_l17>;
        battery@35 {
                compatible = "richtek,rt5033-battery";
                reg = <0x35>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <121 IRQ_TYPE_EDGE_BOTH>;
 
                pinctrl-names = "default";
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
-&dsi0 {
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&mdss_default>;
        pinctrl-1 = <&mdss_sleep>;
 };
 
-&mdss {
-       status = "okay";
-};
-
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &sdhc_1 {
        status = "okay";
 
        pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
 
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
 &usb {
        extcon = <&muic>;
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        accel_int_default: accel-int-default-state {
                pins = "gpio115";
                function = "gpio";
index a1ca4d88342013003ab5f054a02c5acb33cf5472..e5a569698c4f222209802767968471067d70034b 100644 (file)
@@ -15,7 +15,7 @@
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
 
-               gpio = <&msmgpio 9 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 9 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
@@ -28,7 +28,7 @@
                regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
 
-               gpio = <&msmgpio 86 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
@@ -41,7 +41,7 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 60 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 60 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
@@ -67,7 +67,7 @@
                compatible = "zinitix,bt541";
 
                reg = <0x20>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
                touchscreen-size-x = <540>;
@@ -85,7 +85,7 @@
        status = "okay";
 };
 
-&dsi0 {
+&mdss_dsi0 {
        panel@0 {
                reg = <0>;
 
 
                vdd3-supply = <&reg_panel_vdd3>;
                vci-supply = <&pm8916_l17>;
-               reset-gpios = <&msmgpio 25 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>;
 
                port {
                        panel_in: endpoint {
-                               remote-endpoint = <&dsi0_out>;
+                               remote-endpoint = <&mdss_dsi0_out>;
                        };
                };
        };
 };
 
-&dsi0_out {
+&mdss_dsi0_out {
        data-lanes = <0 1>;
        remote-endpoint = <&panel_in>;
 };
        compatible = "qcom,wcn3620";
 };
 
-&msmgpio {
+&tlmm {
        panel_vdd3_default: panel-vdd3-default-state {
                pins = "gpio9";
                function = "gpio";
index 4e10b8a5e9f9c0d60124a2eacfa9e039051f3851..388482a1e3d9fa7d8c5f1c61b160774efcc3334f 100644 (file)
@@ -15,7 +15,7 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 97 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 97 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
@@ -36,7 +36,7 @@
                compatible = "melfas,mms345l";
 
                reg = <0x48>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
                touchscreen-size-x = <720>;
@@ -71,7 +71,7 @@
        compatible = "qcom,wcn3660b";
 };
 
-&msmgpio {
+&tlmm {
        tkey_en_default: tkey-en-default-state {
                pins = "gpio97";
                function = "gpio";
index f6c4a011fdfd2506a3ce0ae7b73207d5a68fcf78..0cdd6af7817f4b7571d32847b70805ea3bcd135c 100644 (file)
@@ -18,7 +18,7 @@
                        compatible = "siliconmitus,sm5504-muic";
                        reg = <0x14>;
 
-                       interrupt-parent = <&msmgpio>;
+                       interrupt-parent = <&tlmm>;
                        interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
 
                        pinctrl-names = "default";
@@ -32,7 +32,7 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 97 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 97 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
@@ -66,7 +66,7 @@
        compatible = "qcom,wcn3620";
 };
 
-&msmgpio {
+&tlmm {
        tkey_en_default: tkey-en-default-state {
                pins = "gpio97";
                function = "gpio";
index 4cbd68b8944815f2b36a3b1bc3eacdf8bac9f11f..3f145dde4059f86992a40002496a7bc7ec59bb4b 100644 (file)
@@ -33,7 +33,7 @@
                        function = LED_FUNCTION_KBD_BACKLIGHT;
                        color = <LED_COLOR_ID_WHITE>;
 
-                       gpios = <&msmgpio 60 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&gpio_leds_default>;
 };
 
 &reg_motor_vdd {
-       gpio = <&msmgpio 72 GPIO_ACTIVE_HIGH>;
+       gpio = <&tlmm 72 GPIO_ACTIVE_HIGH>;
 };
 
 &reg_touch_key {
        status = "disabled";
 };
 
-&msmgpio {
+&tlmm {
        gpio_leds_default: gpio-led-default-state {
                pins = "gpio60";
                function = "gpio";
index 74ffd04db8d84c5f22b465182e66be1324736247..94cfb3200496cd61f53157ba9454ea78973a3c35 100644 (file)
@@ -9,7 +9,9 @@
 
 / {
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
 
                volume-up-button {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
 
                home-button {
                        label = "Home";
-                       gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_HOMEPAGE>;
                };
        };
@@ -55,7 +57,7 @@
 
                hall-sensor-switch {
                        label = "Hall Effect Sensor";
-                       gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
                        linux,input-type = <EV_SW>;
                        linux,code = <SW_LID>;
                        linux,can-disable;
@@ -74,7 +76,7 @@
                maxim,over-heat-temp = <600>;
                maxim,over-volt = <4400>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <121 IRQ_TYPE_EDGE_FALLING>;
 
                pinctrl-0 = <&fuelgauge_int_default>;
@@ -97,7 +99,7 @@
                vdd-supply = <&pm8916_l17>;
                vddio-supply = <&pm8916_l5>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <115 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "INT1";
 
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        status = "okay";
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 /* FIXME: Replace with MAX77849 MUIC when driver is available */
 &pm8916_usbin {
        status = "okay";
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
        pinctrl-names = "default", "sleep";
 
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 
        status = "okay";
 };
        compatible = "qcom,wcn3660b";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-system-load = <200000>;
-               regulator-allow-set-load;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        accel_int_default: accel-int-default-state {
                pins = "gpio115";
                function = "gpio";
index 607a5dc8a5341ab5bbb9e9ff9ef6382d555040ee..48111c6a2c78fb5d2e2e535247dbb949a736c316 100644 (file)
@@ -25,7 +25,7 @@
                regulator-min-microvolt = <3000000>;
                regulator-max-microvolt = <3000000>;
 
-               gpio = <&msmgpio 76 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 76 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-0 = <&motor_en_default>;
@@ -38,7 +38,7 @@
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
 
-               gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-0 = <&tsp_en_default>;
@@ -51,7 +51,7 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
 
        touchscreen@4a {
                compatible = "atmel,maxtouch";
                reg = <0x4a>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
 
                vdd-supply = <&reg_tsp_1p8v>;
                vdda-supply = <&reg_tsp_3p3v>;
 
-               reset-gpios = <&msmgpio 114 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 114 GPIO_ACTIVE_LOW>;
 
                pinctrl-0 = <&tsp_int_rst_default>;
                pinctrl-names = "default";
        };
 };
 
-&msmgpio {
+&tlmm {
        motor_en_default: motor-en-default-state {
                pins = "gpio76";
                function = "gpio";
index 5d6f8383306bb9c3497bc7987eff4a3cc409ccff..98ceaad7fcea903f2ff5b54dc51e9df50703aef9 100644 (file)
@@ -15,7 +15,7 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-0 = <&reg_tsp_en_default>;
@@ -24,7 +24,7 @@
 
        vibrator {
                compatible = "gpio-vibrator";
-               enable-gpios = <&msmgpio 76 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&tlmm 76 GPIO_ACTIVE_HIGH>;
 
                pinctrl-0 = <&vibrator_en_default>;
                pinctrl-names = "default";
@@ -37,7 +37,7 @@
        touchscreen@20 {
                compatible = "zinitix,bt532";
                reg = <0x20>;
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
                touchscreen-size-x = <768>;
@@ -51,7 +51,7 @@
        };
 };
 
-&msmgpio {
+&tlmm {
        reg_tsp_en_default: reg-tsp-en-default-state {
                pins = "gpio73";
                function = "gpio";
index adeee0830e7680df17f1ec5bb66390c456b6ebe6..f2a5800f1605b769be2e2b4b14aac0b4136e6355 100644 (file)
@@ -7,7 +7,9 @@
 
 / {
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
@@ -32,7 +34,7 @@
 
                event-hall-sensor {
                        label = "Hall Effect Sensor";
-                       gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
                        linux,input-type = <EV_SW>;
                        linux,code = <SW_LID>;
                        linux,can-disable;
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
 
                button-home {
                        label = "Home Key";
-                       gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_HOMEPAGE>;
                };
        };
 
        i2c_muic: i2c-muic {
                compatible = "i2c-gpio";
-               sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&muic_i2c_default>;
@@ -75,7 +77,7 @@
                        compatible = "siliconmitus,sm5703-muic";
                        reg = <0x25>;
 
-                       interrupt-parent = <&msmgpio>;
+                       interrupt-parent = <&tlmm>;
                        interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
 
                        pinctrl-names = "default";
@@ -84,7 +86,7 @@
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
        pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
 
-       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
 &usb {
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <3000000>;
-               regulator-max-microvolt = <3000000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        gpio_hall_sensor_default: gpio-hall-sensor-default-state {
                pins = "gpio52";
                function = "gpio";
index 1a41a4db874daeac500314e5579c239c34a03232..3637e7d80d0a053a882a10e44472a111f2bda322 100644 (file)
@@ -28,7 +28,9 @@
        chassis-type = "handset";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
 
                button-home {
                        label = "Home";
-                       gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_HOMEPAGE>;
                };
        };
@@ -74,7 +76,7 @@
 
                event-hall-sensor {
                        label = "Hall Effect Sensor";
-                       gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
                        linux,input-type = <EV_SW>;
                        linux,code = <SW_LID>;
                        linux,can-disable;
@@ -87,7 +89,7 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
                regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
 
-               gpio = <&msmgpio 86 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 60 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 60 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
 
        i2c-muic {
                compatible = "i2c-gpio";
-               sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&muic_i2c_default>;
                        compatible = "siliconmitus,sm5504-muic";
                        reg = <0x14>;
 
-                       interrupt-parent = <&msmgpio>;
+                       interrupt-parent = <&tlmm>;
                        interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
 
                        pinctrl-names = "default";
 
        i2c-tkey {
                compatible = "i2c-gpio";
-               sda-gpios = <&msmgpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&msmgpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&tkey_i2c_default>;
                        compatible = "coreriver,tc360-touchkey";
                        reg = <0x20>;
 
-                       interrupt-parent = <&msmgpio>;
+                       interrupt-parent = <&tlmm>;
                        interrupts = <98 IRQ_TYPE_EDGE_FALLING>;
 
                        vcc-supply = <&reg_touch_key>;
 
        i2c-nfc {
                compatible = "i2c-gpio";
-               sda-gpios = <&msmgpio 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&msmgpio 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&nfc_i2c_default>;
                        compatible = "nxp,pn547", "nxp,nxp-nci-i2c";
                        reg = <0x2b>;
 
-                       interrupt-parent = <&msmgpio>;
+                       interrupt-parent = <&tlmm>;
                        interrupts = <21 IRQ_TYPE_EDGE_RISING>;
 
-                       enable-gpios = <&msmgpio 20 GPIO_ACTIVE_HIGH>;
-                       firmware-gpios = <&msmgpio 49 GPIO_ACTIVE_HIGH>;
+                       enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+                       firmware-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&nfc_default>;
                compatible = "st,lsm6ds3";
                reg = <0x6b>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <115 IRQ_TYPE_EDGE_RISING>;
 
                pinctrl-names = "default";
                compatible = "richtek,rt5033-battery";
                reg = <0x35>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <121 IRQ_TYPE_EDGE_FALLING>;
 
                pinctrl-names = "default";
                compatible = "zinitix,bt541";
                reg = <0x20>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
                touchscreen-size-x = <540>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        compatible = "qcom,wcn3660b";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        fg_alert_default: fg-alert-default-state {
                pins = "gpio121";
                function = "gpio";
index 82e260375174d1b86608db45876ff363ff1acd52..6fe1850ba20e9ebde315642f1c620e9a4deb7146 100644 (file)
 };
 
 &button_restart {
-       gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
+       gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
 };
 
 &led_r {
-       gpios = <&msmgpio 82 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 82 GPIO_ACTIVE_HIGH>;
 };
 
 &led_g {
-       gpios = <&msmgpio 83 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 83 GPIO_ACTIVE_HIGH>;
 };
 
 &led_b {
-       gpios = <&msmgpio 81 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
 };
 
 &button_default {
index 978f0abcdf8ff712d41b1ab67b5d15f6aa47eacd..16d4a91022be6f9897c73abd1b56f0d860b1692d 100644 (file)
 };
 
 &button_restart {
-       gpios = <&msmgpio 37 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 };
 
 &led_r {
-       gpios = <&msmgpio 22 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
 };
 
 &led_g {
-       gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
 };
 
 &led_b {
-       gpios = <&msmgpio 20 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
 };
 
 &mpss {
@@ -40,7 +40,7 @@
 };
 
 /* This selects the external SIM card slot by default */
-&msmgpio {
+&tlmm {
        sim_ctrl_default: sim-ctrl-default-state {
                esim-sel-pins {
                        pins = "gpio0", "gpio3";
index 50bae6f214f1fbabd7a405252579b7a6001955e7..dafa5bd823289343a8804ad38dbcbcf32cf3924d 100644 (file)
@@ -9,7 +9,8 @@
        chassis-type = "embedded";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
        status = "okay";
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
-/* Remove &dsi_phy0 from clocks to make sure that gcc probes with display disabled */
+/* Remove &mdss_dsi0_phy from clocks to make sure that gcc probes with display disabled */
 &gcc {
        clocks = <&xo_board>, <&sleep_clk>, <0>, <0>, <0>, <0>, <0>;
 };
 
 &usb {
        extcon = <&pm8916_usbin>;
-       dr_mode = "peripheral";
+       usb-role-switch;
 
        status = "okay";
 };
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-system-load = <200000>;
-               regulator-allow-set-load;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        /* pins are board-specific */
        button_default: button-default-state {
                function = "gpio";
index ac56c7595f78a5b40ec1bd9622d72669f0bbf9b6..733917531218cef5d691432d1c1e421a6c11327b 100644 (file)
@@ -16,7 +16,9 @@
        chassis-type = "handset";
 
        aliases {
-               serial0 = &blsp1_uart2;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
        };
 
        chosen {
@@ -25,8 +27,8 @@
 
        flash-led-controller {
                compatible = "ocs,ocp8110";
-               enable-gpios = <&msmgpio 31 GPIO_ACTIVE_HIGH>;
-               flash-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               flash-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&camera_flash_default>;
 
                button-volume-up {
                        label = "Volume Up";
-                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                };
        };
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
+               id-gpio = <&tlmm 110 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
@@ -67,7 +69,7 @@
                compatible = "invensense,mpu6880";
                reg = <0x68>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <115 IRQ_TYPE_EDGE_RISING>;
 
                vdd-supply = <&pm8916_l17>;
                compatible = "edt,edt-ft5506";
                reg = <0x38>;
 
-               interrupt-parent = <&msmgpio>;
+               interrupt-parent = <&tlmm>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
 
-               reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
 
                vcc-supply = <&pm8916_l17>;
                iovcc-supply = <&pm8916_l6>;
        };
 };
 
-&blsp1_uart2 {
+&blsp_uart2 {
        status = "okay";
 };
 
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_rpm_regulators {
+       pm8916_l16: l16 {
+               /*
+                * L16 is only used for AW2013 which is fine with 2.5-3.3V.
+                * Use the recommended typical voltage of 2.8V as minimum.
+                */
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
 &pm8916_vib {
        status = "okay";
 };
        compatible = "qcom,wcn3620";
 };
 
-&smd_rpm_regulators {
-       vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l4_l5_l6-supply = <&pm8916_s4>;
-       vdd_l7-supply = <&pm8916_s4>;
-
-       s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
-       };
-
-       s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
-       };
-
-       l1 {
-               regulator-min-microvolt = <1225000>;
-               regulator-max-microvolt = <1225000>;
-       };
-
-       l2 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-       };
-
-       l4 {
-               regulator-min-microvolt = <2050000>;
-               regulator-max-microvolt = <2050000>;
-       };
-
-       l5 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l6 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l7 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       l8 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2900000>;
-       };
-
-       l9 {
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l10 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2800000>;
-       };
-
-       l11 {
-               regulator-min-microvolt = <2950000>;
-               regulator-max-microvolt = <2950000>;
-               regulator-allow-set-load;
-               regulator-system-load = <200000>;
-       };
-
-       l12 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2950000>;
-       };
-
-       l13 {
-               regulator-min-microvolt = <3075000>;
-               regulator-max-microvolt = <3075000>;
-       };
-
-       l14 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l15 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l16 {
-               regulator-min-microvolt = <2800000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       l17 {
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-       };
-
-       l18 {
-               regulator-min-microvolt = <2700000>;
-               regulator-max-microvolt = <2700000>;
-       };
-};
-
-&msmgpio {
+&tlmm {
        camera_flash_default: camera-flash-default-state {
                pins = "gpio31", "gpio32";
                function = "gpio";
index 74ce6563be183f685678abb925ad71eb3c37602b..5e6ba8c58bb577274dfb3b0253bfef7ee6c3f211 100644 (file)
 };
 
 &button_restart {
-       gpios = <&msmgpio 23 GPIO_ACTIVE_LOW>;
+       gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
 };
 
 &led_r {
-       gpios = <&msmgpio 7 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
 };
 
 &led_g {
-       gpios = <&msmgpio 8 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
 };
 
 &led_b {
-       gpios = <&msmgpio 6 GPIO_ACTIVE_HIGH>;
+       gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
 };
 
 &button_default {
index 7e0fa37a3adf8d6c30d97d1915a2c8782352a8b0..cc5d3cf647213586e5e8faa7f8f60a60763eef81 100644 (file)
        #address-cells = <2>;
        #size-cells = <2>;
 
-       aliases {
-               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
-               mmc1 = &sdhc_2; /* SDC2 SD card slot */
-       };
-
        chosen { };
 
        memory@80000000 {
                        };
                };
 
-               msmgpio: pinctrl@1000000 {
+               tlmm: pinctrl@1000000 {
                        compatible = "qcom,msm8916-pinctrl";
                        reg = <0x01000000 0x300000>;
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
-                       gpio-ranges = <&msmgpio 0 0 122>;
+                       gpio-ranges = <&tlmm 0 0 122>;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        reg = <0x01800000 0x80000>;
                        clocks = <&xo_board>,
                                 <&sleep_clk>,
-                                <&dsi_phy0 1>,
-                                <&dsi_phy0 0>,
+                                <&mdss_dsi0_phy 1>,
+                                <&mdss_dsi0_phy 0>,
                                 <0>,
                                 <0>,
                                 <0>;
                        #size-cells = <1>;
                        ranges;
 
-                       mdp: display-controller@1a01000 {
+                       mdss_mdp: display-controller@1a01000 {
                                compatible = "qcom,msm8916-mdp5", "qcom,mdp5";
                                reg = <0x01a01000 0x89000>;
                                reg-names = "mdp_phys";
 
                                        port@0 {
                                                reg = <0>;
-                                               mdp5_intf1_out: endpoint {
-                                                       remote-endpoint = <&dsi0_in>;
+                                               mdss_mdp_intf1_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi0_in>;
                                                };
                                        };
                                };
                        };
 
-                       dsi0: dsi@1a98000 {
+                       mdss_dsi0: dsi@1a98000 {
                                compatible = "qcom,msm8916-dsi-ctrl",
                                             "qcom,mdss-dsi-ctrl";
                                reg = <0x01a98000 0x25c>;
 
                                assigned-clocks = <&gcc BYTE0_CLK_SRC>,
                                                  <&gcc PCLK0_CLK_SRC>;
-                               assigned-clock-parents = <&dsi_phy0 0>,
-                                                        <&dsi_phy0 1>;
+                               assigned-clock-parents = <&mdss_dsi0_phy 0>,
+                                                        <&mdss_dsi0_phy 1>;
 
                                clocks = <&gcc GCC_MDSS_MDP_CLK>,
                                         <&gcc GCC_MDSS_AHB_CLK>,
                                              "byte",
                                              "pixel",
                                              "core";
-                               phys = <&dsi_phy0>;
+                               phys = <&mdss_dsi0_phy>;
 
                                #address-cells = <1>;
                                #size-cells = <0>;
 
                                        port@0 {
                                                reg = <0>;
-                                               dsi0_in: endpoint {
-                                                       remote-endpoint = <&mdp5_intf1_out>;
+                                               mdss_dsi0_in: endpoint {
+                                                       remote-endpoint = <&mdss_mdp_intf1_out>;
                                                };
                                        };
 
                                        port@1 {
                                                reg = <1>;
-                                               dsi0_out: endpoint {
+                                               mdss_dsi0_out: endpoint {
                                                };
                                        };
                                };
                        };
 
-                       dsi_phy0: phy@1a98300 {
+                       mdss_dsi0_phy: phy@1a98300 {
                                compatible = "qcom,dsi-phy-28nm-lp";
                                reg = <0x01a98300 0xd4>,
                                      <0x01a98500 0x280>,
                        };
                };
 
-               camss: camss@1b00000 {
+               camss: camss@1b0ac00 {
                        compatible = "qcom,msm8916-camss";
                        reg = <0x01b0ac00 0x200>,
                                <0x01b00030 0x4>,
                         * Primary/Secondary MI2S both use the PRI_I2S_CLK.
                         */
                        clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
-                                <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
-                                <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
                                 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
                                 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
                                 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
-                                <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
+                                <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>,
+                                <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
+                                <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>;
 
                        clock-names = "ahbix-clk",
-                                       "pcnoc-mport-clk",
-                                       "pcnoc-sway-clk",
                                        "mi2s-bit-clk0",
                                        "mi2s-bit-clk1",
                                        "mi2s-bit-clk2",
-                                       "mi2s-bit-clk3";
+                                       "mi2s-bit-clk3",
+                                       "pcnoc-mport-clk",
+                                       "pcnoc-sway-clk";
                        #sound-dai-cells = <1>;
 
                        interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
                                 <&gcc GCC_CODEC_DIGCODEC_CLK>;
                        clock-names = "ahbix-clk", "mclk";
                        #sound-dai-cells = <1>;
+                       status = "disabled";
                };
 
-               sdhc_1: mmc@7824000 {
+               sdhc_1: mmc@7824900 {
                        compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0x07824900 0x11c>, <0x07824000 0x800>;
                        reg-names = "hc", "core";
                        status = "disabled";
                };
 
-               sdhc_2: mmc@7864000 {
+               sdhc_2: mmc@7864900 {
                        compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0x07864900 0x11c>, <0x07864000 0x800>;
                        reg-names = "hc", "core";
                        qcom,ee = <0>;
                };
 
-               blsp1_uart1: serial@78af000 {
+               blsp_uart1: serial@78af000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0x078af000 0x200>;
                        interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
                        dmas = <&blsp_dma 0>, <&blsp_dma 1>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&blsp1_uart1_default>;
-                       pinctrl-1 = <&blsp1_uart1_sleep>;
+                       pinctrl-0 = <&blsp_uart1_default>;
+                       pinctrl-1 = <&blsp_uart1_sleep>;
                        status = "disabled";
                };
 
-               blsp1_uart2: serial@78b0000 {
+               blsp_uart2: serial@78b0000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0x078b0000 0x200>;
                        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
                        dmas = <&blsp_dma 2>, <&blsp_dma 3>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&blsp1_uart2_default>;
-                       pinctrl-1 = <&blsp1_uart2_sleep>;
+                       pinctrl-0 = <&blsp_uart2_default>;
+                       pinctrl-1 = <&blsp_uart2_sleep>;
                        status = "disabled";
                };
 
                        dmas = <&blsp_dma 4>, <&blsp_dma 5>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&i2c1_default>;
-                       pinctrl-1 = <&i2c1_sleep>;
+                       pinctrl-0 = <&blsp_i2c1_default>;
+                       pinctrl-1 = <&blsp_i2c1_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 4>, <&blsp_dma 5>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&spi1_default>;
-                       pinctrl-1 = <&spi1_sleep>;
+                       pinctrl-0 = <&blsp_spi1_default>;
+                       pinctrl-1 = <&blsp_spi1_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 6>, <&blsp_dma 7>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&i2c2_default>;
-                       pinctrl-1 = <&i2c2_sleep>;
+                       pinctrl-0 = <&blsp_i2c2_default>;
+                       pinctrl-1 = <&blsp_i2c2_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 6>, <&blsp_dma 7>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&spi2_default>;
-                       pinctrl-1 = <&spi2_sleep>;
+                       pinctrl-0 = <&blsp_spi2_default>;
+                       pinctrl-1 = <&blsp_spi2_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 8>, <&blsp_dma 9>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&i2c3_default>;
-                       pinctrl-1 = <&i2c3_sleep>;
+                       pinctrl-0 = <&blsp_i2c3_default>;
+                       pinctrl-1 = <&blsp_i2c3_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 8>, <&blsp_dma 9>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&spi3_default>;
-                       pinctrl-1 = <&spi3_sleep>;
+                       pinctrl-0 = <&blsp_spi3_default>;
+                       pinctrl-1 = <&blsp_spi3_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 10>, <&blsp_dma 11>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&i2c4_default>;
-                       pinctrl-1 = <&i2c4_sleep>;
+                       pinctrl-0 = <&blsp_i2c4_default>;
+                       pinctrl-1 = <&blsp_i2c4_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 10>, <&blsp_dma 11>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&spi4_default>;
-                       pinctrl-1 = <&spi4_sleep>;
+                       pinctrl-0 = <&blsp_spi4_default>;
+                       pinctrl-1 = <&blsp_spi4_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 12>, <&blsp_dma 13>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&i2c5_default>;
-                       pinctrl-1 = <&i2c5_sleep>;
+                       pinctrl-0 = <&blsp_i2c5_default>;
+                       pinctrl-1 = <&blsp_i2c5_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 12>, <&blsp_dma 13>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&spi5_default>;
-                       pinctrl-1 = <&spi5_sleep>;
+                       pinctrl-0 = <&blsp_spi5_default>;
+                       pinctrl-1 = <&blsp_spi5_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 14>, <&blsp_dma 15>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&i2c6_default>;
-                       pinctrl-1 = <&i2c6_sleep>;
+                       pinctrl-0 = <&blsp_i2c6_default>;
+                       pinctrl-1 = <&blsp_i2c6_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        dmas = <&blsp_dma 14>, <&blsp_dma 15>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&spi6_default>;
-                       pinctrl-1 = <&spi6_sleep>;
+                       pinctrl-0 = <&blsp_spi6_default>;
+                       pinctrl-1 = <&blsp_spi6_sleep>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        };
                };
 
-               wcnss: remoteproc@a21b000 {
+               wcnss: remoteproc@a204000 {
                        compatible = "qcom,pronto-v2-pil", "qcom,pronto";
                        reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
                        reg-names = "ccu", "dxe", "pmu";
diff --git a/arch/arm64/boot/dts/qcom/msm8939-pm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8939-pm8916.dtsi
new file mode 100644 (file)
index 0000000..33e02f4
--- /dev/null
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include "msm8939.dtsi"
+#include "pm8916.dtsi"
+
+&mdss_dsi0 {
+       vdda-supply = <&pm8916_l2>;
+       vddio-supply = <&pm8916_l6>;
+};
+
+&mdss_dsi0_phy {
+       vddio-supply = <&pm8916_l6>;
+};
+
+&mdss_dsi1 {
+       vdda-supply = <&pm8916_l2>;
+       vddio-supply = <&pm8916_l6>;
+};
+
+&mdss_dsi1_phy {
+       vddio-supply = <&pm8916_l6>;
+};
+
+&mpss {
+       pll-supply = <&pm8916_l7>;
+};
+
+&rpm_requests {
+       smd_rpm_regulators: regulators {
+               compatible = "qcom,rpm-pm8916-regulators";
+
+               /* pm8916_s1 is managed by rpmpd (MSM8939_VDDMDCX) */
+               /* pm8916_s2 is managed by rpmpd (MSM8939_VDDCX) */
+               pm8916_s3: s3 {};
+               pm8916_s4: s4 {};
+
+               pm8916_l1: l1 {};
+               pm8916_l2: l2 {};
+               /* pm8916_l3 is managed by rpmpd (MSM8939_VDDMX) */
+               pm8916_l4: l4 {};
+               pm8916_l5: l5 {};
+               pm8916_l6: l6 {};
+               pm8916_l7: l7 {};
+               pm8916_l8: l8 {};
+               pm8916_l9: l9 {};
+               pm8916_l10: l10 {};
+               pm8916_l11: l11 {};
+               pm8916_l12: l12 {};
+               pm8916_l13: l13 {};
+               pm8916_l14: l14 {};
+               pm8916_l15: l15 {};
+               pm8916_l16: l16 {};
+               pm8916_l17: l17 {};
+               pm8916_l18: l18 {};
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8916_l8>;
+       vqmmc-supply = <&pm8916_l5>;
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8916_l11>;
+       vqmmc-supply = <&pm8916_l12>;
+};
+
+&usb_hs_phy {
+       v1p8-supply = <&pm8916_l7>;
+       v3p3-supply = <&pm8916_l13>;
+};
+
+&wcnss {
+       vddpx-supply = <&pm8916_l7>;
+};
+
+&wcnss_iris {
+       vddxo-supply = <&pm8916_l7>;
+       vddrfa-supply = <&pm8916_s3>;
+       vddpa-supply = <&pm8916_l9>;
+       vdddig-supply = <&pm8916_l5>;
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dts b/arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dts
new file mode 100644 (file)
index 0000000..85a8d8f
--- /dev/null
@@ -0,0 +1,183 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022-2023, Bryan O'Donoghue.
+ *
+ */
+
+/dts-v1/;
+
+#include "msm8939.dtsi"
+#include "msm8939-pm8916.dtsi"
+#include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       model = "Sony Xperia M4 Aqua";
+       compatible = "sony,kanuti-tulip", "qcom,msm8939";
+
+       qcom,board-id = <QCOM_BOARD_ID_MTP 0>;
+       qcom,msm-id = <QCOM_ID_MSM8939 0>, <QCOM_ID_MSM8939 0x30000>;
+
+       aliases {
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_2; /* SDC2 SD card slot */
+               serial0 = &blsp_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       usb_id: usb-id {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpio = <&tlmm 110 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb_id_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&tlmm {
+       usb_id_default: usb-id-default-state {
+               pins = "gpio110";
+               function = "gpio";
+               bias-pull-up;
+               drive-strength = <8>;
+       };
+};
+
+&smd_rpm_regulators {
+       vdd_l1_l2_l3-supply = <&pm8916_s3>;
+       vdd_l4_l5_l6-supply = <&pm8916_s4>;
+       vdd_l7-supply = <&pm8916_s4>;
+
+       pm8916_s3: s3 {
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1300000>;
+       };
+
+       pm8916_s4: s4 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2100000>;
+       };
+
+       pm8916_l2: l2 {
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+
+       pm8916_l4: l4 {
+               regulator-min-microvolt = <2050000>;
+               regulator-max-microvolt = <2050000>;
+       };
+
+       pm8916_l5: l5 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       pm8916_l6: l6 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       pm8916_l7: l7 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       pm8916_l8: l8 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2900000>;
+       };
+
+       pm8916_l9: l9 {
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l10: l10 {
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l11: l11 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-system-load = <200000>;
+               regulator-allow-set-load;
+       };
+
+       pm8916_l12: l12 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l13: l13 {
+               regulator-min-microvolt = <3075000>;
+               regulator-max-microvolt = <3075000>;
+       };
+
+       pm8916_l14: l14 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l15: l15 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l16: l16 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+
+       pm8916_l18: l18 {
+               regulator-min-microvolt = <2700000>;
+               regulator-max-microvolt = <2700000>;
+       };
+};
+
+&sdhc_1 {
+       pinctrl-0 = <&sdc1_default_state>;
+       pinctrl-1 = <&sdc1_sleep_state>;
+       pinctrl-names = "default", "sleep";
+       status = "okay";
+};
+
+&sdhc_2 {
+       pinctrl-0 = <&sdc2_default_state>;
+       pinctrl-1 = <&sdc2_sleep_state>;
+       pinctrl-names = "default", "sleep";
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&usb {
+       extcon = <&usb_id>, <&usb_id>;
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&usb_id>;
+};
+
+&wcnss {
+       status = "okay";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3660";
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8939.dtsi b/arch/arm64/boot/dts/qcom/msm8939.dtsi
new file mode 100644 (file)
index 0000000..0d9f8b9
--- /dev/null
@@ -0,0 +1,2452 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020-2023, Linaro Limited
+ */
+
+#include <dt-bindings/clock/qcom,gcc-msm8939.h>
+#include <dt-bindings/clock/qcom,rpmcc.h>
+#include <dt-bindings/interconnect/qcom,msm8939.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/reset/qcom,gcc-msm8939.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+       interrupt-parent = <&intc>;
+
+       /*
+        * Stock LK wants address-cells/size-cells = 2
+        * A number of our drivers want address/size cells = 1
+        * hence the disparity between top-level and /soc below.
+        */
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       clocks {
+               xo_board: xo-board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <19200000>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
+               };
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               CPU0: cpu@100 {
+                       compatible = "arm,cortex-a53";
+                       device_type = "cpu";
+                       enable-method = "spin-table";
+                       reg = <0x100>;
+                       next-level-cache = <&L2_1>;
+                       qcom,acc = <&acc0>;
+                       qcom,saw = <&saw0>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
+                       clocks = <&apcs1_mbox>;
+                       #cooling-cells = <2>;
+                       L2_1: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                       };
+               };
+
+               CPU1: cpu@101 {
+                       compatible = "arm,cortex-a53";
+                       device_type = "cpu";
+                       enable-method = "spin-table";
+                       reg = <0x101>;
+                       next-level-cache = <&L2_1>;
+                       qcom,acc = <&acc1>;
+                       qcom,saw = <&saw1>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
+                       clocks = <&apcs1_mbox>;
+                       #cooling-cells = <2>;
+               };
+
+               CPU2: cpu@102 {
+                       compatible = "arm,cortex-a53";
+                       device_type = "cpu";
+                       enable-method = "spin-table";
+                       reg = <0x102>;
+                       next-level-cache = <&L2_1>;
+                       qcom,acc = <&acc2>;
+                       qcom,saw = <&saw2>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
+                       clocks = <&apcs1_mbox>;
+                       #cooling-cells = <2>;
+               };
+
+               CPU3: cpu@103 {
+                       compatible = "arm,cortex-a53";
+                       device_type = "cpu";
+                       enable-method = "spin-table";
+                       reg = <0x103>;
+                       next-level-cache = <&L2_1>;
+                       qcom,acc = <&acc3>;
+                       qcom,saw = <&saw3>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
+                       clocks = <&apcs1_mbox>;
+                       #cooling-cells = <2>;
+               };
+
+               CPU4: cpu@0 {
+                       compatible = "arm,cortex-a53";
+                       device_type = "cpu";
+                       enable-method = "spin-table";
+                       reg = <0x0>;
+                       qcom,acc = <&acc4>;
+                       qcom,saw = <&saw4>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
+                       clocks = <&apcs0_mbox>;
+                       #cooling-cells = <2>;
+                       next-level-cache = <&L2_0>;
+                       L2_0: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                       };
+               };
+
+               CPU5: cpu@1 {
+                       compatible = "arm,cortex-a53";
+                       device_type = "cpu";
+                       enable-method = "spin-table";
+                       reg = <0x1>;
+                       next-level-cache = <&L2_0>;
+                       qcom,acc = <&acc5>;
+                       qcom,saw = <&saw5>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
+                       clocks = <&apcs0_mbox>;
+                       #cooling-cells = <2>;
+               };
+
+               CPU6: cpu@2 {
+                       compatible = "arm,cortex-a53";
+                       device_type = "cpu";
+                       enable-method = "spin-table";
+                       reg = <0x2>;
+                       next-level-cache = <&L2_0>;
+                       qcom,acc = <&acc6>;
+                       qcom,saw = <&saw6>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
+                       clocks = <&apcs0_mbox>;
+                       #cooling-cells = <2>;
+               };
+
+               CPU7: cpu@3 {
+                       compatible = "arm,cortex-a53";
+                       device_type = "cpu";
+                       enable-method = "spin-table";
+                       reg = <0x3>;
+                       next-level-cache = <&L2_0>;
+                       qcom,acc = <&acc7>;
+                       qcom,saw = <&saw7>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
+                       clocks = <&apcs0_mbox>;
+                       #cooling-cells = <2>;
+               };
+
+               idle-states {
+                       CPU_SLEEP_0: cpu-sleep-0 {
+                               compatible ="qcom,idle-state-spc", "arm,idle-state";
+                               entry-latency-us = <130>;
+                               exit-latency-us = <150>;
+                               min-residency-us = <2000>;
+                               local-timer-stop;
+                       };
+               };
+       };
+
+       /*
+        * MSM8939 has a big.LITTLE heterogeneous computing architecture,
+        * consisting of two clusters of four ARM Cortex-A53s each. The
+        * LITTLE cluster runs at 1.0-1.2GHz, and the big cluster runs
+        * at 1.5-1.7GHz.
+        *
+        * The enable method used here is spin-table which presupposes use
+        * of a 2nd stage boot shim such as lk2nd to have installed a
+        * spin-table, the downstream non-psci/non-spin-table method that
+        * default msm8916/msm8936/msm8939 will not be supported upstream.
+        */
+       cpu-map {
+               /* LITTLE (efficiency) cluster */
+               cluster0 {
+                       core0 {
+                               cpu = <&CPU4>;
+                       };
+
+                       core1 {
+                               cpu = <&CPU5>;
+                       };
+
+                       core2 {
+                               cpu = <&CPU6>;
+                       };
+
+                       core3 {
+                               cpu = <&CPU7>;
+                       };
+               };
+
+               /* big (performance) cluster */
+               /* Boot CPU is cluster 1 core 0 */
+               cluster1 {
+                       core0 {
+                               cpu = <&CPU0>;
+                       };
+
+                       core1 {
+                               cpu = <&CPU1>;
+                       };
+
+                       core2 {
+                               cpu = <&CPU2>;
+                       };
+
+                       core3 {
+                               cpu = <&CPU3>;
+                       };
+               };
+       };
+
+       firmware {
+               scm: scm {
+                       compatible = "qcom,scm-msm8916", "qcom,scm";
+                       clocks = <&gcc GCC_CRYPTO_CLK>,
+                                <&gcc GCC_CRYPTO_AXI_CLK>,
+                                <&gcc GCC_CRYPTO_AHB_CLK>;
+                       clock-names = "core", "bus", "iface";
+                       #reset-cells = <1>;
+
+                       qcom,dload-mode = <&tcsr 0x6100>;
+               };
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the reg */
+               reg = <0x0 0x80000000 0x0 0x0>;
+       };
+
+       pmu {
+               compatible = "arm,cortex-a53-pmu";
+               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               tz-apps@86000000 {
+                       reg = <0x0 0x86000000 0x0 0x300000>;
+                       no-map;
+               };
+
+               smem@86300000 {
+                       compatible = "qcom,smem";
+                       reg = <0x0 0x86300000 0x0 0x100000>;
+                       no-map;
+
+                       hwlocks = <&tcsr_mutex 3>;
+                       qcom,rpm-msg-ram = <&rpm_msg_ram>;
+               };
+
+               hypervisor@86400000 {
+                       reg = <0x0 0x86400000 0x0 0x100000>;
+                       no-map;
+               };
+
+               tz@86500000 {
+                       reg = <0x0 0x86500000 0x0 0x180000>;
+                       no-map;
+               };
+
+               reserved@86680000 {
+                       reg = <0x0 0x86680000 0x0 0x80000>;
+                       no-map;
+               };
+
+               rmtfs@86700000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0x86700000 0x0 0xe0000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+               };
+
+               rfsa@867e0000 {
+                       reg = <0x0 0x867e0000 0x0 0x20000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss@86800000 {
+                       reg = <0x0 0x86800000 0x0 0x5500000>;
+                       no-map;
+               };
+
+               wcnss_mem: wcnss@8bd00000 {
+                       reg = <0x0 0x8bd00000 0x0 0x600000>;
+                       no-map;
+               };
+
+               venus_mem: venus@8c300000 {
+                       reg = <0x0 0x8c300000 0x0 0x800000>;
+                       no-map;
+               };
+
+               mba_mem: mba@8cb00000 {
+                       reg = <0x0 0x8cb00000 0x0 0x100000>;
+                       no-map;
+               };
+       };
+
+       smd {
+               compatible = "qcom,smd";
+
+               rpm {
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&apcs1_mbox 8 0>;
+                       qcom,smd-edge = <15>;
+
+                       rpm_requests: rpm-requests {
+                               compatible = "qcom,rpm-msm8936";
+                               qcom,smd-channels = "rpm_requests";
+
+                               rpmcc: clock-controller {
+                                       compatible = "qcom,rpmcc-msm8936", "qcom,rpmcc";
+                                       #clock-cells = <1>;
+                                       clock-names = "xo";
+                                       clocks = <&xo_board>;
+                               };
+
+                               rpmpd: power-controller {
+                                       compatible = "qcom,msm8939-rpmpd";
+                                       #power-domain-cells = <1>;
+                                       operating-points-v2 = <&rpmpd_opp_table>;
+
+                                       rpmpd_opp_table: opp-table {
+                                               compatible = "operating-points-v2";
+
+                                               rpmpd_opp_ret: opp1 {
+                                                       opp-level = <1>;
+                                               };
+
+                                               rpmpd_opp_svs_krait: opp2 {
+                                                       opp-level = <2>;
+                                               };
+
+                                               rpmpd_opp_svs_soc: opp3 {
+                                                       opp-level = <3>;
+                                               };
+
+                                               rpmpd_opp_nom: opp4 {
+                                                       opp-level = <4>;
+                                               };
+
+                                               rpmpd_opp_turbo: opp5 {
+                                                       opp-level = <5>;
+                                               };
+
+                                               rpmpd_opp_super_turbo: opp6 {
+                                                       opp-level = <6>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+       };
+
+       smp2p-hexagon {
+               compatible = "qcom,smp2p";
+               qcom,smem = <435>, <428>;
+
+               interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&apcs1_mbox 14>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <1>;
+
+               hexagon_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               hexagon_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       #address-cells = <0>;
+                       #size-cells = <0>;
+               };
+       };
+
+       smp2p-wcnss {
+               compatible = "qcom,smp2p";
+               qcom,smem = <451>, <431>;
+
+               interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&apcs1_mbox 18>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <4>;
+
+               wcnss_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               wcnss_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+
+                       #qcom,smem-state-cells = <1>;
+               };
+       };
+
+       smsm {
+               compatible = "qcom,smsm";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               qcom,ipc-1 = <&apcs1_mbox 8 13>;
+               qcom,ipc-3 = <&apcs1_mbox 8 19>;
+
+               apps_smsm: apps@0 {
+                       reg = <0>;
+
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               hexagon_smsm: hexagon@1 {
+                       reg = <1>;
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               wcnss_smsm: wcnss@6 {
+                       reg = <6>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       soc: soc@0 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0 0xffffffff>;
+
+               rng@22000 {
+                       compatible = "qcom,prng";
+                       reg = <0x00022000 0x200>;
+                       clocks = <&gcc GCC_PRNG_AHB_CLK>;
+                       clock-names = "core";
+               };
+
+               qfprom: qfprom@5c000 {
+                       compatible = "qcom,msm8916-qfprom", "qcom,qfprom";
+                       reg = <0x0005c000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       tsens_base1: base1@a0 {
+                               reg = <0xa0 0x1>;
+                               bits = <0 8>;
+                       };
+
+                       tsens_s6_p1: s6-p1@a1 {
+                               reg = <0xa1 0x1>;
+                               bits = <0 6>;
+                       };
+
+                       tsens_s6_p2: s6-p2@a1 {
+                               reg = <0xa1 0x2>;
+                               bits = <6 6>;
+                       };
+
+                       tsens_s7_p1: s7-p1@a2 {
+                               reg = <0xa2 0x2>;
+                               bits = <4 6>;
+                       };
+
+                       tsens_s7_p2: s7-p2@a3 {
+                               reg = <0xa3 0x1>;
+                               bits = <2 6>;
+                       };
+
+                       tsens_s8_p1: s8-p1@a4 {
+                               reg = <0xa4 0x1>;
+                               bits = <0 6>;
+                       };
+
+                       tsens_s8_p2: s8-p2@a4 {
+                               reg = <0xa4 0x2>;
+                               bits = <6 6>;
+                       };
+
+                       tsens_s9_p1: s9-p1@a5 {
+                               reg = <0xa5 0x2>;
+                               bits = <4 6>;
+                       };
+
+                       tsens_s9_p2: s9-p2@a6 {
+                               reg = <0xa6 0x1>;
+                               bits = <2 6>;
+                       };
+
+                       tsens_base2: base2@a7 {
+                               reg = <0xa7 0x1>;
+                               bits = <0 8>;
+                       };
+
+                       tsens_mode: mode@d0 {
+                               reg = <0xd0 0x1>;
+                               bits = <0 3>;
+                       };
+
+                       tsens_s0_p1: s0-p1@d0 {
+                               reg = <0xd0 0x2>;
+                               bits = <3 6>;
+                       };
+
+                       tsens_s0_p2: s0-p1@d1 {
+                               reg = <0xd1 0x1>;
+                               bits = <1 6>;
+                       };
+
+                       tsens_s1_p1: s1-p1@d1 {
+                               reg = <0xd1 0x2>;
+                               bits = <7 6>;
+                       };
+
+                       tsens_s1_p2: s1-p2@d2 {
+                               reg = <0xd2 0x2>;
+                               bits = <5 6>;
+                       };
+
+                       tsens_s2_p1: s2-p1@d3 {
+                               reg = <0xd3 0x2>;
+                               bits = <3 6>;
+                       };
+
+                       tsens_s2_p2: s2-p2@d4 {
+                               reg = <0xd4 0x1>;
+                               bits = <1 6>;
+                       };
+
+                       tsens_s3_p1: s3-p1@d4 {
+                               reg = <0xd4 0x2>;
+                               bits = <7 6>;
+                       };
+
+                       tsens_s3_p2: s3-p2@d5 {
+                               reg = <0xd5 0x2>;
+                               bits = <5 6>;
+                       };
+
+                       tsens_s5_p1: s5-p1@d6 {
+                               reg = <0xd6 0x2>;
+                               bits = <3 6>;
+                       };
+
+                       tsens_s5_p2: s5-p2@d7 {
+                               reg = <0xd7 0x1>;
+                               bits = <1 6>;
+                       };
+               };
+
+               rpm_msg_ram: sram@60000 {
+                       compatible = "qcom,rpm-msg-ram";
+                       reg = <0x00060000 0x8000>;
+               };
+
+               bimc: interconnect@400000 {
+                       compatible = "qcom,msm8939-bimc";
+                       reg = <0x00400000 0x62000>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
+                                <&rpmcc RPM_SMD_BIMC_A_CLK>;
+                       #interconnect-cells = <1>;
+               };
+
+               tsens: thermal-sensor@4a9000 {
+                       compatible = "qcom,msm8939-tsens", "qcom,tsens-v0_1";
+                       reg = <0x004a9000 0x1000>, /* TM */
+                             <0x004a8000 0x1000>; /* SROT */
+                       nvmem-cells = <&tsens_mode>,
+                                     <&tsens_base1>, <&tsens_base2>,
+                                     <&tsens_s0_p1>, <&tsens_s0_p2>,
+                                     <&tsens_s1_p1>, <&tsens_s1_p2>,
+                                     <&tsens_s2_p1>, <&tsens_s2_p2>,
+                                     <&tsens_s3_p1>, <&tsens_s3_p2>,
+                                     <&tsens_s5_p1>, <&tsens_s5_p2>,
+                                     <&tsens_s6_p1>, <&tsens_s6_p2>,
+                                     <&tsens_s7_p1>, <&tsens_s7_p2>,
+                                     <&tsens_s8_p1>, <&tsens_s8_p2>,
+                                     <&tsens_s9_p1>, <&tsens_s9_p2>;
+                       nvmem-cell-names = "mode",
+                                          "base1", "base2",
+                                          "s0_p1", "s0_p2",
+                                          "s1_p1", "s1_p2",
+                                          "s2_p1", "s2_p2",
+                                          "s3_p1", "s3_p2",
+                                          "s5_p1", "s5_p2",
+                                          "s6_p1", "s6_p2",
+                                          "s7_p1", "s7_p2",
+                                          "s8_p1", "s8_p2",
+                                          "s9_p1", "s9_p2";
+                       #qcom,sensors = <9>;
+                       interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               restart@4ab000 {
+                       compatible = "qcom,pshold";
+                       reg = <0x004ab000 0x4>;
+               };
+
+               pcnoc: interconnect@500000 {
+                       compatible = "qcom,msm8939-pcnoc";
+                       reg = <0x00500000 0x11000>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
+                                <&rpmcc RPM_SMD_PCNOC_A_CLK>;
+                       #interconnect-cells = <1>;
+               };
+
+               snoc: interconnect@580000 {
+                       compatible = "qcom,msm8939-snoc";
+                       reg = <0x00580000 0x14080>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
+                                <&rpmcc RPM_SMD_SNOC_A_CLK>;
+                       #interconnect-cells = <1>;
+
+                       snoc_mm: interconnect-snoc {
+                               compatible = "qcom,msm8939-snoc-mm";
+                               clock-names = "bus", "bus_a";
+                               clocks = <&rpmcc RPM_SMD_SYSMMNOC_CLK>,
+                                        <&rpmcc RPM_SMD_SYSMMNOC_A_CLK>;
+                               #interconnect-cells = <1>;
+                       };
+               };
+
+               tlmm: pinctrl@1000000 {
+                       compatible = "qcom,msm8916-pinctrl";
+                       reg = <0x01000000 0x300000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       gpio-ranges = <&tlmm 0 0 122>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+
+                       blsp_i2c1_default: blsp-i2c1-default-state {
+                               pins = "gpio2", "gpio3";
+                               function = "blsp_i2c1";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c1_sleep: blsp-i2c1-sleep-state {
+                               pins = "gpio2", "gpio3";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c2_default: blsp-i2c2-default-state {
+                               pins = "gpio6", "gpio7";
+                               function = "blsp_i2c2";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c2_sleep: blsp-i2c2-sleep-state {
+                               pins = "gpio6", "gpio7";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c3_default: blsp-i2c3-default-state {
+                               pins = "gpio10", "gpio11";
+                               function = "blsp_i2c3";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c3_sleep: blsp-i2c3-sleep-state {
+                               pins = "gpio10", "gpio11";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c4_default: blsp-i2c4-default-state {
+                               pins = "gpio14", "gpio15";
+                               function = "blsp_i2c4";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c4_sleep: blsp-i2c4-sleep-state {
+                               pins = "gpio14", "gpio15";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c5_default: blsp-i2c5-default-state {
+                               pins = "gpio18", "gpio19";
+                               function = "blsp_i2c5";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c5_sleep: blsp-i2c5-sleep-state {
+                               pins = "gpio18", "gpio19";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c6_default: blsp-i2c6-default-state {
+                               pins = "gpio22", "gpio23";
+                               function = "blsp_i2c6";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_i2c6_sleep: blsp-i2c6-sleep-state {
+                               pins = "gpio22", "gpio23";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp_spi1_default: blsp-spi1-default-state {
+                               spi-pins {
+                                       pins = "gpio0", "gpio1", "gpio3";
+                                       function = "blsp_spi1";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+
+                               cs-pins {
+                                       pins = "gpio2";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                                       output-high;
+                               };
+                       };
+
+                       blsp_spi1_sleep: blsp-spi1-sleep-state {
+                               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       blsp_spi2_default: blsp-spi2-default-state {
+                               spi-pins {
+                                       pins = "gpio4", "gpio5", "gpio7";
+                                       function = "blsp_spi2";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+
+                               cs-pins {
+                                       pins = "gpio6";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                                       output-high;
+                               };
+                       };
+
+                       blsp_spi2_sleep: blsp-spi2-sleep-state {
+                               pins = "gpio4", "gpio5", "gpio6", "gpio7";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       blsp_spi3_default: blsp-spi3-default-state {
+                               spi-pins {
+                                       pins = "gpio8", "gpio9", "gpio11";
+                                       function = "blsp_spi3";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+
+                               cs-pins {
+                                       pins = "gpio10";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                                       output-high;
+                               };
+                       };
+
+                       blsp_spi3_sleep: blsp-spi3-sleep-state {
+                               pins = "gpio8", "gpio9", "gpio10", "gpio11";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       blsp_spi4_default: blsp-spi4-default-state {
+                               spi-pins {
+                                       pins = "gpio12", "gpio13", "gpio15";
+                                       function = "blsp_spi4";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+
+                               cs-pins {
+                                       pins = "gpio14";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                                       output-high;
+                               };
+                       };
+
+                       blsp_spi4_sleep: blsp-spi4-sleep-state {
+                               pins = "gpio12", "gpio13", "gpio14", "gpio15";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       blsp_spi5_default: blsp-spi5-default-state {
+                               spi-pins {
+                                       pins = "gpio16", "gpio17", "gpio19";
+                                       function = "blsp_spi5";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+
+                               cs-pins {
+                                       pins = "gpio18";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                                       output-high;
+                               };
+                       };
+
+                       blsp_spi5_sleep: blsp-spi5-sleep-state {
+                               pins = "gpio16", "gpio17", "gpio18", "gpio19";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       blsp_spi6_default: blsp-spi6-default-state {
+                               spi-pins {
+                                       pins = "gpio20", "gpio21", "gpio23";
+                                       function = "blsp_spi6";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+
+                               cs-pins {
+                                       pins = "gpio22";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                                       output-high;
+                               };
+                       };
+
+                       blsp_spi6_sleep: blsp-spi6-sleep-state {
+                               pins = "gpio20", "gpio21", "gpio22", "gpio23";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       blsp_uart1_default: blsp-uart1-default-state {
+                               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+                               function = "blsp_uart1";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
+                       blsp_uart1_sleep: blsp-uart1-sleep-state {
+                               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       blsp_uart2_default: blsp-uart2-default-state {
+                               pins = "gpio4", "gpio5";
+                               function = "blsp_uart2";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
+                       blsp_uart2_sleep: blsp-uart2-sleep-state {
+                               pins = "gpio4", "gpio5";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       camera_front_default: camera-front-default-state {
+                               pwdn-pins {
+                                       pins = "gpio33";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+
+                               rst-pins {
+                                       pins = "gpio28";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+
+                               mclk1-pins {
+                                       pins = "gpio27";
+                                       function = "cam_mclk1";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+                       };
+
+                       camera_rear_default: camera-rear-default-state {
+                               pwdn-pins {
+                                       pins = "gpio34";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+
+                               rst-pins {
+                                       pins = "gpio35";
+                                       function = "gpio";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+
+                               mclk0-pins {
+                                       pins = "gpio26";
+                                       function = "cam_mclk0";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+                       };
+
+                       cci0_default: cci0-default-state {
+                               pins = "gpio29", "gpio30";
+                               function = "cci_i2c";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
+                       cdc_pdm_lines_default: pdm-lines-default-state {
+                               pins = "gpio63", "gpio64", "gpio65", "gpio66",
+                                      "gpio67", "gpio68";
+                               function = "cdc_pdm0";
+                               drive-strength = <8>;
+                               bias-disable;
+                       };
+
+                       cdc_pdm_lines_sleep: pdm-lines-suspend-state {
+                               pins = "gpio63", "gpio64", "gpio65", "gpio66",
+                                      "gpio67", "gpio68";
+                               function = "cdc_pdm0";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cdc_dmic_lines_act: cdc-dmic-lines-on-state {
+                               clk-pins {
+                                       pins = "gpio0";
+                                       function = "dmic0_clk";
+                                       drive-strength = <8>;
+                               };
+
+                               data-pins {
+                                       pins = "gpio1";
+                                       function = "dmic0_data";
+                                       drive-strength = <8>;
+                               };
+                       };
+
+                       cdc_dmic_lines_sus: cdc-dmic-lines-off-state {
+                               clk-pins {
+                                       pins = "gpio0";
+                                       function = "dmic0_clk";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               data-pins {
+                                       pins = "gpio1";
+                                       function = "dmic0_data";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+
+                       ext-mclk-tlmm-lines-state {
+                               ext_mclk_tlmm_lines_act: mclk-lines-on-pins {
+                                       pins = "gpio116";
+                                       function = "pri_mi2s";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+
+                               ext_mclk_tlmm_lines_sus: mclk-lines-off-pins {
+                                       pins = "gpio116";
+                                       function = "pri_mi2s";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+
+                       ext-pri-tlmm-lines-state {
+                               ext_pri_tlmm_lines_act: ext-pa-on-pins {
+                                       pins = "gpio113", "gpio114", "gpio115", "gpio116";
+                                       function = "pri_mi2s";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+
+                               ext_pri_tlmm_lines_sus: ext-pa-off-pins {
+                                       pins = "gpio113", "gpio114", "gpio115", "gpio116";
+                                       function = "pri_mi2s";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+
+                       ext-pri-ws-line-state {
+                               ext_pri_ws_act: ext-pa-on-pins {
+                                       pins = "gpio110";
+                                       function = "pri_mi2s_ws";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+
+                               ext_pri_ws_sus: ext-pa-off-pins {
+                                       pins = "gpio110";
+                                       function = "pri_mi2s_ws";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+
+                       /* secondary Mi2S */
+                       ext-sec-tlmm-lines-state {
+                               ext_sec_tlmm_lines_act: tlmm-lines-on-pins {
+                                       pins = "gpio112", "gpio117", "gpio118", "gpio119";
+                                       function = "sec_mi2s";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+
+                               ext_sec_tlmm_lines_sus: tlmm-lines-off-pins {
+                                       pins = "gpio112", "gpio117", "gpio118", "gpio119";
+                                       function = "sec_mi2s";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+
+                       sdc1_default_state: sdc1-default-state {
+                               clk-pins {
+                                       pins = "sdc1_clk";
+                                       bias-disable;
+                                       drive-strength = <16>;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc1_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               data-pins {
+                                       pins = "sdc1_data";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+                       };
+
+                       sdc1_sleep_state: sdc1-sleep-state {
+                               clk-pins {
+                                       pins = "sdc1_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc1_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               data-pins {
+                                       pins = "sdc1_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+                       };
+
+                       sdc2_default_state: sdc2-default-state {
+                               clk-pins {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <16>;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               data-pins {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               cd-pins {
+                                       pins = "gpio38";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       sdc2_sleep_state: sdc2-sleep-state {
+                               clk-pins {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               data-pins {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               cd-pins {
+                                       pins = "gpio38";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+
+                       wcnss_pin_a: wcnss-active-state {
+                               pins = "gpio40", "gpio41", "gpio42", "gpio43", "gpio44";
+                               function = "wcss_wlan";
+                               drive-strength = <6>;
+                               bias-pull-up;
+                       };
+               };
+
+               gcc: clock-controller@1800000 {
+                       compatible = "qcom,gcc-msm8939";
+                       reg = <0x01800000 0x80000>;
+                       clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
+                                <&sleep_clk>,
+                                <&mdss_dsi0_phy 1>,
+                                <&mdss_dsi0_phy 0>,
+                                <0>,
+                                <0>,
+                                <0>;
+                       clock-names = "xo",
+                                     "sleep_clk",
+                                     "dsi0pll",
+                                     "dsi0pllbyte",
+                                     "ext_mclk",
+                                     "ext_pri_i2s",
+                                     "ext_sec_i2s";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               tcsr_mutex: hwlock@1905000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x01905000 0x20000>;
+                       #hwlock-cells = <1>;
+               };
+
+               tcsr: syscon@1937000 {
+                       compatible = "qcom,tcsr-msm8916", "syscon";
+                       reg = <0x01937000 0x30000>;
+               };
+
+               mdss: display-subsystem@1a00000 {
+                       compatible = "qcom,mdss";
+                       reg = <0x01a00000 0x1000>,
+                             <0x01ac8000 0x3000>;
+                       reg-names = "mdss_phys", "vbif_phys";
+
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+
+                       clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                <&gcc GCC_MDSS_AXI_CLK>,
+                                <&gcc GCC_MDSS_VSYNC_CLK>;
+                       clock-names = "iface",
+                                     "bus",
+                                     "vsync";
+
+                       power-domains = <&gcc MDSS_GDSC>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #interrupt-cells = <1>;
+                       ranges;
+
+                       status = "disabled";
+
+                       mdss_mdp: display-controller@1a01000 {
+                               compatible = "qcom,mdp5";
+                               reg = <0x01a01000 0x89000>;
+                               reg-names = "mdp_phys";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <0>;
+
+                               clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_MDSS_AXI_CLK>,
+                                        <&gcc GCC_MDSS_MDP_CLK>,
+                                        <&gcc GCC_MDSS_VSYNC_CLK>;
+                               clock-names = "iface",
+                                             "bus",
+                                             "core",
+                                             "vsync";
+
+                               iommus = <&apps_iommu 4>;
+
+                               interconnects = <&snoc_mm MASTER_MDP_PORT0 &bimc SLAVE_EBI_CH0>,
+                                               <&snoc_mm MASTER_MDP_PORT1 &bimc SLAVE_EBI_CH0>;
+                               interconnect-names = "mdp0-mem", "mdp1-mem";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               mdss_mdp_intf1_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi0_in>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               mdss_mdp_intf2_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi1_in>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0: dsi@1a98000 {
+                               compatible = "qcom,msm8916-dsi-ctrl",
+                                            "qcom,mdss-dsi-ctrl";
+                               reg = <0x01a98000 0x25c>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <4>;
+
+                               clocks = <&gcc GCC_MDSS_MDP_CLK>,
+                                        <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_MDSS_AXI_CLK>,
+                                        <&gcc GCC_MDSS_BYTE0_CLK>,
+                                        <&gcc GCC_MDSS_PCLK0_CLK>,
+                                        <&gcc GCC_MDSS_ESC0_CLK>;
+                               clock-names = "mdp_core",
+                                             "iface",
+                                             "bus",
+                                             "byte",
+                                             "pixel",
+                                             "core";
+                               assigned-clocks = <&gcc BYTE0_CLK_SRC>,
+                                                 <&gcc PCLK0_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi0_phy 0>,
+                                                        <&mdss_dsi0_phy 1>;
+
+                               phys = <&mdss_dsi0_phy>;
+                               status = "disabled";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               mdss_dsi0_in: endpoint {
+                                                       remote-endpoint = <&mdss_mdp_intf1_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               mdss_dsi0_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0_phy: phy@1a98300 {
+                               compatible = "qcom,dsi-phy-28nm-lp";
+                               reg = <0x01a98300 0xd4>,
+                                     <0x01a98500 0x280>,
+                                     <0x01a98780 0x30>;
+                               reg-names = "dsi_pll",
+                                           "dsi_phy",
+                                           "dsi_phy_regulator";
+
+                               clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                               clock-names = "iface", "ref";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       mdss_dsi1: dsi@1aa0000 {
+                               compatible = "qcom,msm8916-dsi-ctrl",
+                                            "qcom,mdss-dsi-ctrl";
+                               reg = <0x01aa0000 0x25c>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <5>;
+
+                               clocks = <&gcc GCC_MDSS_MDP_CLK>,
+                                        <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_MDSS_AXI_CLK>,
+                                        <&gcc GCC_MDSS_BYTE1_CLK>,
+                                        <&gcc GCC_MDSS_PCLK1_CLK>,
+                                        <&gcc GCC_MDSS_ESC1_CLK>;
+                               clock-names = "mdp_core",
+                                             "iface",
+                                             "bus",
+                                             "byte",
+                                             "pixel",
+                                             "core";
+                               assigned-clocks = <&gcc BYTE1_CLK_SRC>,
+                                                 <&gcc PCLK1_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi0_phy 0>,
+                                                        <&mdss_dsi0_phy 1>;
+                               phys = <&mdss_dsi1_phy>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               mdss_dsi1_in: endpoint {
+                                                       remote-endpoint = <&mdss_mdp_intf2_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               mdss_dsi1_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_dsi1_phy: phy@1aa0300 {
+                               compatible = "qcom,dsi-phy-28nm-lp";
+                               reg = <0x01aa0300 0xd4>,
+                                     <0x01aa0500 0x280>,
+                                     <0x01aa0780 0x30>;
+                               reg-names = "dsi_pll",
+                                           "dsi_phy",
+                                           "dsi_phy_regulator";
+
+                               clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                               clock-names = "iface", "ref";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+
+               gpu@1c00000 {
+                       compatible = "qcom,adreno-405.0", "qcom,adreno";
+                       reg = <0x01c00000 0x10000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "kgsl_3d0_irq";
+                       clock-names = "core",
+                                     "iface",
+                                     "mem",
+                                     "mem_iface",
+                                     "alt_mem_iface",
+                                     "gfx3d",
+                                     "rbbmtimer";
+                       clocks = <&gcc GCC_OXILI_GFX3D_CLK>,
+                                <&gcc GCC_OXILI_AHB_CLK>,
+                                <&gcc GCC_OXILI_GMEM_CLK>,
+                                <&gcc GCC_BIMC_GFX_CLK>,
+                                <&gcc GCC_BIMC_GPU_CLK>,
+                                <&gcc GFX3D_CLK_SRC>,
+                                <&gcc GCC_OXILI_TIMER_CLK>;
+                       power-domains = <&gcc OXILI_GDSC>;
+                       operating-points-v2 = <&opp_table>;
+                       iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
+
+                       opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-550000000 {
+                                       opp-hz = /bits/ 64 <550000000>;
+                               };
+
+                               opp-465000000 {
+                                       opp-hz = /bits/ 64 <465000000>;
+                               };
+
+                               opp-400000000 {
+                                       opp-hz = /bits/ 64 <400000000>;
+                               };
+
+                               opp-220000000 {
+                                       opp-hz = /bits/ 64 <220000000>;
+                               };
+
+                               opp-19200000 {
+                                       opp-hz = /bits/ 64 <19200000>;
+                               };
+                       };
+               };
+
+               apps_iommu: iommu@1ef0000 {
+                       compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
+                       reg = <0x01ef0000 0x3000>;
+                       ranges = <0 0x01e20000 0x40000>;
+                       clocks = <&gcc GCC_SMMU_CFG_CLK>,
+                                <&gcc GCC_APSS_TCU_CLK>;
+                       clock-names = "iface", "bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #iommu-cells = <1>;
+                       qcom,iommu-secure-id = <17>;
+
+                       /* mdp_0: */
+                       iommu-ctx@4000 {
+                               compatible = "qcom,msm-iommu-v1-ns";
+                               reg = <0x4000 0x1000>;
+                               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       /* venus_ns: */
+                       iommu-ctx@5000 {
+                               compatible = "qcom,msm-iommu-v1-sec";
+                               reg = <0x5000 0x1000>;
+                               interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpu_iommu: iommu@1f08000 {
+                       compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
+                       ranges = <0 0x1f08000 0x10000>;
+                       clocks = <&gcc GCC_SMMU_CFG_CLK>,
+                                <&gcc GCC_GFX_TCU_CLK>,
+                                <&gcc GCC_GFX_TBU_CLK>;
+                       clock-names = "iface", "bus", "tbu";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #iommu-cells = <1>;
+                       qcom,iommu-secure-id = <18>;
+
+                       /* gfx3d_user: */
+                       iommu-ctx@1000 {
+                               compatible = "qcom,msm-iommu-v1-ns";
+                               reg = <0x1000 0x1000>;
+                               interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       /* gfx3d_priv: */
+                       iommu-ctx@2000 {
+                               compatible = "qcom,msm-iommu-v1-ns";
+                               reg = <0x2000 0x1000>;
+                               interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               spmi_bus: spmi@200f000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg = <0x0200f000 0x001000>,
+                             <0x02400000 0x400000>,
+                             <0x02c00000 0x400000>,
+                             <0x03800000 0x200000>,
+                             <0x0200a000 0x002100>;
+                       reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
+                       interrupt-names = "periph_irq";
+                       interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       interrupt-controller;
+                       #interrupt-cells = <4>;
+               };
+
+               mpss: remoteproc@4080000 {
+                       compatible = "qcom,msm8916-mss-pil";
+                       reg = <0x04080000 0x100>, <0x04020000 0x040>;
+                       reg-names = "qdsp6", "rmb";
+                       interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
+                                             <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack";
+                       clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+                                <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
+                                <&gcc GCC_BOOT_ROM_AHB_CLK>,
+                                <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                       clock-names = "iface",
+                                     "bus",
+                                     "mem",
+                                     "xo";
+                       power-domains = <&rpmpd MSM8939_VDDMDCX>,
+                                       <&rpmpd MSM8939_VDDMX>;
+                       power-domain-names = "cx", "mx";
+                       qcom,smem-states = <&hexagon_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+                       resets = <&scm 0>;
+                       reset-names = "mss_restart";
+                       qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
+                       status = "disabled";
+
+                       mba {
+                               memory-region = <&mba_mem>;
+                       };
+
+                       mpss {
+                               memory-region = <&mpss_mem>;
+                       };
+
+                       smd-edge {
+                               interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
+
+                               qcom,smd-edge = <0>;
+                               mboxes = <&apcs1_mbox 12>;
+                               qcom,remote-pid = <1>;
+
+                               label = "hexagon";
+                       };
+               };
+
+               sound: sound@7702000 {
+                       compatible = "qcom,apq8016-sbc-sndcard";
+                       reg = <0x07702000 0x4>,
+                             <0x07702004 0x4>;
+                       reg-names = "mic-iomux", "spkr-iomux";
+                       status = "disabled";
+               };
+
+               lpass: audio-controller@7708000 {
+                       compatible = "qcom,apq8016-lpass-cpu";
+                       reg = <0x07708000 0x10000>;
+                       reg-names = "lpass-lpaif";
+                       interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "lpass-irq-lpaif";
+                       clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
+                                <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
+                                <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
+                                <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
+                                <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>,
+                                <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
+                                <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>;
+                       clock-names = "ahbix-clk",
+                                     "mi2s-bit-clk0",
+                                     "mi2s-bit-clk1",
+                                     "mi2s-bit-clk2",
+                                     "mi2s-bit-clk3",
+                                     "pcnoc-mport-clk",
+                                     "pcnoc-sway-clk";
+                       #sound-dai-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               lpass_codec: audio-codec@771c000 {
+                       compatible = "qcom,msm8916-wcd-digital-codec";
+                       reg = <0x0771c000 0x400>;
+                       clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
+                                <&gcc GCC_CODEC_DIGCODEC_CLK>;
+                       clock-names = "ahbix-clk", "mclk";
+                       #sound-dai-cells = <1>;
+               };
+
+               sdhc_1: mmc@7824900 {
+                       compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
+                       reg = <0x07824900 0x11c>, <0x07824000 0x800>;
+                       reg-names = "hc", "core";
+
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       clocks = <&gcc GCC_SDCC1_AHB_CLK>,
+                                <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                       clock-names = "iface", "core", "xo";
+                       resets = <&gcc GCC_SDCC1_BCR>;
+                       mmc-ddr-1_8v;
+                       bus-width = <8>;
+                       non-removable;
+                       status = "disabled";
+               };
+
+               sdhc_2: mmc@7864900 {
+                       compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
+                       reg = <0x07864900 0x11c>, <0x07864000 0x800>;
+                       reg-names = "hc", "core";
+
+                       interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       clocks = <&gcc GCC_SDCC2_AHB_CLK>,
+                                <&gcc GCC_SDCC2_APPS_CLK>,
+                                <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                       clock-names =  "iface", "core", "xo";
+                       resets = <&gcc GCC_SDCC2_BCR>;
+                       bus-width = <4>;
+                       status = "disabled";
+               };
+
+               blsp_dma: dma-controller@7884000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x07884000 0x23000>;
+                       interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+
+               blsp_uart1: serial@78af000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078af000 0x200>;
+                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 0>, <&blsp_dma 1>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_uart1_default>;
+                       pinctrl-1 = <&blsp_uart1_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       status = "disabled";
+               };
+
+               blsp_uart2: serial@78b0000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078b0000 0x200>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 2>, <&blsp_dma 3>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_uart2_default>;
+                       pinctrl-1 = <&blsp_uart2_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       status = "disabled";
+               };
+
+               blsp_i2c1: i2c@78b5000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b5000 0x500>;
+                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 4>, <&blsp_dma 5>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_i2c1_default>;
+                       pinctrl-1 = <&blsp_i2c1_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_spi1: spi@78b5000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b5000 0x500>;
+                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 4>, <&blsp_dma 5>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_spi1_default>;
+                       pinctrl-1 = <&blsp_spi1_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_i2c2: i2c@78b6000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b6000 0x500>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names =  "core", "iface";
+                       dmas = <&blsp_dma 6>, <&blsp_dma 7>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_i2c2_default>;
+                       pinctrl-1 = <&blsp_i2c2_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_spi2: spi@78b6000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b6000 0x500>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 6>, <&blsp_dma 7>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_spi2_default>;
+                       pinctrl-1 = <&blsp_spi2_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_i2c3: i2c@78b7000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b7000 0x500>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names =  "core", "iface";
+                       dmas = <&blsp_dma 8>, <&blsp_dma 9>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_i2c3_default>;
+                       pinctrl-1 = <&blsp_i2c3_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_spi3: spi@78b7000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b7000 0x500>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 8>, <&blsp_dma 9>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_spi3_default>;
+                       pinctrl-1 = <&blsp_spi3_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_i2c4: i2c@78b8000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b8000 0x500>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names =  "core", "iface";
+                       dmas = <&blsp_dma 10>, <&blsp_dma 11>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_i2c4_default>;
+                       pinctrl-1 = <&blsp_i2c4_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_spi4: spi@78b8000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b8000 0x500>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 10>, <&blsp_dma 11>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_spi4_default>;
+                       pinctrl-1 = <&blsp_spi4_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_i2c5: i2c@78b9000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078b9000 0x500>;
+                       interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names =  "core", "iface";
+                       dmas = <&blsp_dma 12>, <&blsp_dma 13>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_i2c5_default>;
+                       pinctrl-1 = <&blsp_i2c5_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_spi5: spi@78b9000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b9000 0x500>;
+                       interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 12>, <&blsp_dma 13>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_spi5_default>;
+                       pinctrl-1 = <&blsp_spi5_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_i2c6: i2c@78ba000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x078ba000 0x500>;
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names =  "core", "iface";
+                       dmas = <&blsp_dma 14>, <&blsp_dma 15>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_i2c6_default>;
+                       pinctrl-1 = <&blsp_i2c6_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               blsp_spi6: spi@78ba000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078ba000 0x500>;
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 14>, <&blsp_dma 15>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&blsp_spi6_default>;
+                       pinctrl-1 = <&blsp_spi6_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               usb: usb@78d9000 {
+                       compatible = "qcom,ci-hdrc";
+                       reg = <0x078d9000 0x200>,
+                             <0x078d9200 0x200>;
+                       interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_USB_HS_AHB_CLK>,
+                                <&gcc GCC_USB_HS_SYSTEM_CLK>;
+                       clock-names = "iface", "core";
+                       assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
+                       assigned-clock-rates = <80000000>;
+                       resets = <&gcc GCC_USB_HS_BCR>;
+                       reset-names = "core";
+                       #reset-cells = <1>;
+                       phy_type = "ulpi";
+                       dr_mode = "otg";
+                       adp-disable;
+                       hnp-disable;
+                       srp-disable;
+                       ahb-burst-config = <0>;
+                       phy-names = "usb-phy";
+                       phys = <&usb_hs_phy>;
+                       status = "disabled";
+
+                       ulpi {
+                               usb_hs_phy: phy {
+                                       compatible = "qcom,usb-hs-phy-msm8916",
+                                                    "qcom,usb-hs-phy";
+                                       clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
+                                                <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
+                                       clock-names = "ref", "sleep";
+                                       resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
+                                       reset-names = "phy", "por";
+                                       #phy-cells = <0>;
+                                       qcom,init-seq = /bits/ 8 <0x0 0x44>,
+                                                                <0x1 0x6b>,
+                                                                <0x2 0x24>,
+                                                                <0x3 0x13>;
+                               };
+                       };
+               };
+
+               wcnss: remoteproc@a204000 {
+                       compatible = "qcom,pronto-v2-pil", "qcom,pronto";
+                       interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack";
+                       reg = <0x0a204000 0x2000>,
+                             <0x0a202000 0x1000>,
+                             <0x0a21b000 0x3000>;
+                       reg-names = "ccu", "dxe", "pmu";
+
+                       memory-region = <&wcnss_mem>;
+
+                       power-domains = <&rpmpd MSM8939_VDDCX>,
+                                       <&rpmpd MSM8939_VDDMX>;
+                       power-domain-names = "cx", "mx";
+
+                       qcom,smem-states = <&wcnss_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&wcnss_pin_a>;
+
+                       status = "disabled";
+
+                       wcnss_iris: iris {
+                               /* Separate chip, compatible is board-specific */
+                               clocks = <&rpmcc RPM_SMD_RF_CLK2>;
+                               clock-names = "xo";
+                       };
+
+                       smd-edge {
+                               interrupts = <GIC_SPI 142 1>;
+                               qcom,ipc = <&apcs1_mbox 8 17>;
+                               qcom,smd-edge = <6>;
+                               qcom,remote-pid = <4>;
+
+                               label = "pronto";
+
+                               wcnss {
+                                       compatible = "qcom,wcnss";
+                                       qcom,smd-channels = "WCNSS_CTRL";
+
+                                       qcom,mmio = <&wcnss>;
+
+                                       wcnss_bt: bluetooth {
+                                               compatible = "qcom,wcnss-bt";
+                                       };
+
+                                       wcnss_wifi: wifi {
+                                               compatible = "qcom,wcnss-wlan";
+
+                                               interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                                                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
+                                               interrupt-names = "tx", "rx";
+
+                                               qcom,smem-states = <&apps_smsm 10>,
+                                                                  <&apps_smsm 9>;
+                                               qcom,smem-state-names = "tx-enable",
+                                                                       "tx-rings-empty";
+                                       };
+                               };
+                       };
+               };
+
+               intc: interrupt-controller@b000000 {
+                       compatible = "qcom,msm-qgic2";
+                       reg = <0x0b000000 0x1000>, <0x0b002000 0x2000>,
+                             <0x0b001000 0x1000>, <0x0b004000 0x2000>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
+               };
+
+               apcs1_mbox: mailbox@b011000 {
+                       compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
+                       reg = <0x0b011000 0x1000>;
+                       clocks = <&a53pll_c1>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                       clock-names = "pll", "aux", "ref";
+                       #clock-cells = <0>;
+                       assigned-clocks = <&apcs2>;
+                       assigned-clock-rates = <297600000>;
+                       #mbox-cells = <1>;
+               };
+
+               a53pll_c1: clock@b016000 {
+                       compatible = "qcom,msm8939-a53pll";
+                       reg = <0x0b016000 0x40>;
+                       #clock-cells = <0>;
+               };
+
+               acc0: clock-controller@b088000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b088000 0x1000>;
+               };
+
+               saw0: power-manager@b089000 {
+                       compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
+                       reg = <0x0b089000 0x1000>;
+               };
+
+               acc1: clock-controller@b098000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b098000 0x1000>;
+               };
+
+               saw1: power-manager@b099000 {
+                       compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
+                       reg = <0x0b099000 0x1000>;
+               };
+
+               acc2: clock-controller@b0a8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b0a8000 0x1000>;
+               };
+
+               saw2: power-manager@b0a9000 {
+                       compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
+                       reg = <0x0b0a9000 0x1000>;
+               };
+
+               acc3: clock-controller@b0b8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b0b8000 0x1000>;
+               };
+
+               saw3: power-manager@b0b9000 {
+                       compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
+                       reg = <0x0b0b9000 0x1000>;
+               };
+
+               apcs0_mbox: mailbox@b111000 {
+                       compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
+                       reg = <0x0b111000 0x1000>;
+                       clocks = <&a53pll_c0>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                       clock-names = "pll", "aux", "ref";
+                       #clock-cells = <0>;
+                       #mbox-cells = <1>;
+               };
+
+               a53pll_c0: clock@b116000 {
+                       compatible = "qcom,msm8939-a53pll";
+                       reg = <0x0b116000 0x40>;
+                       #clock-cells = <0>;
+               };
+
+               timer@b120000 {
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x0b120000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       frame@b121000 {
+                               reg = <0x0b121000 0x1000>,
+                                     <0x0b122000 0x1000>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                               frame-number = <0>;
+                       };
+
+                       frame@b123000 {
+                               reg = <0x0b123000 0x1000>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               frame-number = <1>;
+                               status = "disabled";
+                       };
+
+                       frame@b124000 {
+                               reg = <0x0b124000 0x1000>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               frame-number = <2>;
+                               status = "disabled";
+                       };
+
+                       frame@b125000 {
+                               reg = <0x0b125000 0x1000>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               frame-number = <3>;
+                               status = "disabled";
+                       };
+
+                       frame@b126000 {
+                               reg = <0x0b126000 0x1000>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               frame-number = <4>;
+                               status = "disabled";
+                       };
+
+                       frame@b127000 {
+                               reg = <0x0b127000 0x1000>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               frame-number = <5>;
+                               status = "disabled";
+                       };
+
+                       frame@b128000 {
+                               reg = <0x0b128000 0x1000>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               frame-number = <6>;
+                               status = "disabled";
+                       };
+               };
+
+               acc4: clock-controller@b188000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b188000 0x1000>;
+               };
+
+               saw4: power-manager@b189000 {
+                       compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
+                       reg = <0x0b189000 0x1000>;
+               };
+
+               acc5: clock-controller@b198000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b198000 0x1000>;
+               };
+
+               saw5: power-manager@b199000 {
+                       compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
+                       reg = <0x0b199000 0x1000>;
+               };
+
+               acc6: clock-controller@b1a8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b1a8000 0x1000>;
+               };
+
+               saw6: power-manager@b1a9000 {
+                       compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
+                       reg = <0x0b1a9000 0x1000>;
+               };
+
+               acc7: clock-controller@b1b8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b1b8000 0x1000>;
+               };
+
+               saw7: power-manager@b1b9000 {
+                       compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
+                       reg = <0x0b1b9000 0x1000>;
+               };
+
+               a53pll_cci: clock@b1d0000 {
+                       compatible = "qcom,msm8939-a53pll";
+                       reg = <0x0b1d0000 0x40>;
+                       #clock-cells = <0>;
+               };
+
+               apcs2: mailbox@b1d1000 {
+                       compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
+                       reg = <0x0b1d1000 0x1000>;
+                       clocks = <&a53pll_cci>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                       clock-names = "pll", "aux", "ref";
+                       #clock-cells = <0>;
+                       #mbox-cells = <1>;
+               };
+       };
+
+       thermal_zones: thermal-zones {
+               cpu0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 5>;
+
+                       trips {
+                               cpu0_alert: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu0_crit: trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu0_alert>;
+                                       cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 6>;
+
+                       trips {
+                               cpu1_alert: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu1_crit: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu1_alert>;
+                                       cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 7>;
+
+                       trips {
+                               cpu2_alert: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu2_crit: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu2_alert>;
+                                       cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu3-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 8>;
+
+                       trips {
+                               cpu3_alert: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu3_crit: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu3_alert>;
+                                       cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu4567-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 9>;
+
+                       trips {
+                               cpu4567_alert: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu4567_crit: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu4567_alert>;
+                                       cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               gpu-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 3>;
+
+                       trips {
+                               gpu_alert0: trip-point0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu_crit: gpu_crit {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 0>;
+
+                       trips {
+                               modem1_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               modem2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 2>;
+
+                       trips {
+                               modem2_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               camera-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 1>;
+
+                       trips {
+                               cam_alert0: trip-point0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+};
index 602cb188a6354266d9108316aeccf697271f9ac4..f42a1e37634077c6722a1d1386e351564c1fcc11 100644 (file)
                        };
                };
 
-               apps_iommu: iommu@1e00000 {
+               apps_iommu: iommu@1e20000 {
                        compatible = "qcom,msm8953-iommu", "qcom,msm-iommu-v1";
                        ranges  = <0 0x01e20000 0x20000>;
 
                        };
                };
 
+               blsp1_dma: dma-controller@7884000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x07884000 0x1f000>;
+                       interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       num-channels = <12>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,num-ees = <4>;
+                       qcom,controlled-remotely;
+               };
+
                uart_0: serial@78af000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0x078af000 0x200>;
                        clock-names = "core", "iface";
                        clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
+                       dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
+                       dma-names = "tx", "rx";
 
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_1_default>;
                        clock-names = "core", "iface";
                        clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
+                       dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
+                       dma-names = "tx", "rx";
 
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_2_default>;
                        clock-names = "core", "iface";
                        clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
+                       dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
+                       dma-names = "tx", "rx";
+
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_3_default>;
                        pinctrl-1 = <&i2c_3_sleep>;
                        clock-names = "core", "iface";
                        clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
+                       dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
+                       dma-names = "tx", "rx";
+
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_4_default>;
                        pinctrl-1 = <&i2c_4_sleep>;
                        status = "disabled";
                };
 
+               blsp2_dma: dma-controller@7ac4000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x07ac4000 0x1f000>;
+                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       num-channels = <12>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,num-ees = <4>;
+                       qcom,controlled-remotely;
+               };
+
                i2c_5: i2c@7af5000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x07af5000 0x600>;
                        clock-names = "core", "iface";
                        clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
                                 <&gcc GCC_BLSP2_AHB_CLK>;
+                       dmas = <&blsp2_dma 4>, <&blsp2_dma 5>;
+                       dma-names = "tx", "rx";
+
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_5_default>;
                        pinctrl-1 = <&i2c_5_sleep>;
                        clock-names = "core", "iface";
                        clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
                                 <&gcc GCC_BLSP2_AHB_CLK>;
+                       dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
+                       dma-names = "tx", "rx";
+
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_6_default>;
                        pinctrl-1 = <&i2c_6_sleep>;
                        clock-names = "core", "iface";
                        clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
                                 <&gcc GCC_BLSP2_AHB_CLK>;
+                       dmas = <&blsp2_dma 8>, <&blsp2_dma 9>;
+                       dma-names = "tx", "rx";
+
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_7_default>;
                        pinctrl-1 = <&i2c_7_sleep>;
                        clock-names = "core", "iface";
                        clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>,
                                 <&gcc GCC_BLSP2_AHB_CLK>;
+                       dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
+                       dma-names = "tx", "rx";
+
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_8_default>;
                        pinctrl-1 = <&i2c_8_sleep>;
                        status = "disabled";
                };
 
-               wcnss: remoteproc@a21b000 {
+               wcnss: remoteproc@a204000 {
                        compatible = "qcom,pronto-v3-pil", "qcom,pronto";
                        reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
                        reg-names = "ccu", "dxe", "pmu";
                timer@b120000 {
                        compatible = "arm,armv7-timer-mem";
                        reg = <0x0b120000 0x1000>;
-                       #address-cells = <0x01>;
-                       #size-cells = <0x01>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
                        ranges;
 
                        frame@b121000 {
index 1f0bd24a074a681de0beb52756b5f28614dfab41..937bb7fcca2668ffc06894271b18cfac27250d20 100644 (file)
                        #interrupt-cells = <4>;
                };
 
-               sdhc_1: mmc@7824000 {
+               sdhc_1: mmc@7824900 {
                        compatible = "qcom,msm8976-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0x07824900 0x500>, <0x07824000 0x800>;
                        reg-names = "hc", "core";
                        status = "disabled";
                };
 
-               sdhc_2: mmc@7864000 {
+               sdhc_2: mmc@7864900 {
                        compatible = "qcom,msm8976-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0x07864900 0x11c>, <0x07864000 0x800>;
                        reg-names = "hc", "core";
                        #reset-cells = <1>;
                };
 
-               sdhc_3: mmc@7a24000 {
+               sdhc_3: mmc@7a24900 {
                        compatible = "qcom,msm8976-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0x07a24900 0x11c>, <0x07a24000 0x800>;
                        reg-names = "hc", "core";
index 2831966be960de32a651d01615685049a76f1014..184bdde5c78daceeec13a633b1072b6d7f01959e 100644 (file)
                };
        };
 
-       soc: soc {
-
+       soc: soc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
                        reg = <0xfc4ab000 0x4>;
                };
 
-               spmi_bus: spmi@fc4c0000 {
+               spmi_bus: spmi@fc4cf000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0xfc4cf000 0x1000>,
                              <0xfc4cb000 0x1000>,
index 7f4d493a55ff499477ab0bb58f00f201c7b6cbf2..b4b770a9277dc511e18850b2c7cf63d7faf8f70c 100644 (file)
@@ -11,6 +11,7 @@
 #include "pmi8996.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
 
        };
 };
 
+&pmi8994_lpg {
+       qcom,power-source = <1>;
+       status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+       };
+};
+
 &pmi8994_spmi_regulators {
        vdd_gfx:
        pmi8994_s2: s2 {
index 2b35cb3f52921662ca823d3be5dd52017f1884f1..a3f49f21ec3795b1c99564a09b6a6e65a5e143d0 100644 (file)
                };
        };
 
-       soc: soc {
+       soc: soc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
                        #power-domain-cells = <1>;
                        reg = <0x008c0000 0x40000>;
                        clocks = <&xo_board>,
-                                <&gcc GCC_MMSS_NOC_CFG_AHB_CLK>,
                                 <&gcc GPLL0>,
+                                <&gcc GCC_MMSS_NOC_CFG_AHB_CLK>,
                                 <&dsi0_phy 1>,
                                 <&dsi0_phy 0>,
                                 <&dsi1_phy 1>,
                                 <&dsi1_phy 0>,
                                 <&hdmi_phy>;
                        clock-names = "xo",
-                                     "gcc_mmss_noc_cfg_ahb_clk",
                                      "gpll0",
+                                     "gcc_mmss_noc_cfg_ahb_clk",
                                      "dsi0pll",
                                      "dsi0pllbyte",
                                      "dsi1pll",
                        compatible = "simple-pm-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       ranges;
+                       ranges = <0x0 0x0 0xffffffff>;
 
                        pcie0: pcie@600000 {
                                compatible = "qcom,pcie-msm8996";
                        };
                };
 
-               camss: camss@a00000 {
+               camss: camss@a34000 {
                        compatible = "qcom,msm8996-camss";
                        reg = <0x00a34000 0x1000>,
                              <0x00a00030 0x4>,
index b150437a83558c440e2745397d873fe01b3fc88c..9c7568fb49503624c309421b6775d1417b5b5fb8 100644 (file)
                             <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
        };
 
-       soc: soc {
+       soc: soc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
                                drive-strength = <2>;
                                bias-pull-up;
                        };
+
+                       blsp1_spi_b_default: blsp1-spi-b-default-state {
+                               pins = "gpio23", "gpio28";
+                               function = "blsp1_spi_b";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp1_spi1_default: blsp1-spi1-default-state {
+                               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+                               function = "blsp_spi1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp1_spi2_default: blsp1-spi2-default-state {
+                               pins = "gpio31", "gpio34", "gpio32", "gpio33";
+                               function = "blsp_spi2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp1_spi3_default: blsp1-spi3-default-state {
+                               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+                               function = "blsp_spi2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp1_spi4_default: blsp1-spi4-default-state {
+                               pins = "gpio8", "gpio9", "gpio10", "gpio11";
+                               function = "blsp_spi4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp1_spi5_default: blsp1-spi5-default-state {
+                               pins = "gpio85", "gpio86", "gpio87", "gpio88";
+                               function = "blsp_spi5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp1_spi6_default: blsp1-spi6-default-state {
+                               pins = "gpio41", "gpio42", "gpio43", "gpio44";
+                               function = "blsp_spi6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+
                        /* 6 interfaces per QUP, BLSP2 indexes are numbered (n)+6 */
                        blsp2_i2c1_default: blsp2-i2c1-default-state {
                                pins = "gpio55", "gpio56";
                                drive-strength = <2>;
                                bias-pull-up;
                        };
+
+                       blsp2_spi1_default: blsp2-spi1-default-state {
+                               pins = "gpio53", "gpio54", "gpio55", "gpio56";
+                               function = "blsp_spi7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp2_spi2_default: blsp2-spi2-default-state {
+                               pins = "gpio4", "gpio5", "gpio6", "gpio7";
+                               function = "blsp_spi8";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp2_spi3_default: blsp2-spi3-default-state {
+                               pins = "gpio49", "gpio50", "gpio51", "gpio52";
+                               function = "blsp_spi9";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp2_spi4_default: blsp2-spi4-default-state {
+                               pins = "gpio65", "gpio66", "gpio67", "gpio68";
+                               function = "blsp_spi10";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp2_spi5_default: blsp2-spi5-default-state {
+                               pins = "gpio58", "gpio59", "gpio60", "gpio61";
+                               function = "blsp_spi11";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       blsp2_spi6_default: blsp2-spi6-default-state {
+                               pins = "gpio81", "gpio82", "gpio83", "gpio84";
+                               function = "blsp_spi12";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
                };
 
                remoteproc_mss: remoteproc@4080000 {
                        #size-cells = <0>;
                };
 
+               blsp1_spi1: spi@c175000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c175000 0x600>;
+                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp1_spi1_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp1_spi2: spi@c176000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c176000 0x600>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp1_spi2_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp1_spi3: spi@c177000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c177000 0x600>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp1_dma 10>, <&blsp1_dma 11>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp1_spi3_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp1_spi4: spi@c178000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c178000 0x600>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp1_spi4_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp1_spi5: spi@c179000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c179000 0x600>;
+                       interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp1_spi5_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp1_spi6: spi@c17a000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c17a000 0x600>;
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp1_dma 16>, <&blsp1_dma 17>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp1_spi6_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
                blsp2_dma: dma-controller@c184000 {
                        compatible = "qcom,bam-v1.7.0";
                        reg = <0x0c184000 0x25000>;
                        #size-cells = <0>;
                };
 
+               blsp2_spi1: spi@c1b5000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c1b5000 0x600>;
+                       interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP2_QUP1_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp2_spi1_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp2_spi2: spi@c1b6000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c1b6000 0x600>;
+                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP2_QUP2_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp2_dma 8>, <&blsp2_dma 9>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp2_spi2_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp2_spi3: spi@c1b7000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c1b7000 0x600>;
+                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP2_QUP3_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp2_spi3_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp2_spi4: spi@c1b8000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c1b8000 0x600>;
+                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP2_QUP4_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp2_dma 12>, <&blsp2_dma 13>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp2_spi4_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp2_spi5: spi@c1b9000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c1b9000 0x600>;
+                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP2_QUP5_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp2_dma 14>, <&blsp2_dma 15>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp2_spi5_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp2_spi6: spi@c1ba000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x0c1ba000 0x600>;
+                       interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_BLSP2_QUP6_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp2_dma 16>, <&blsp2_dma 17>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp2_spi6_default>;
+
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
                mmcc: clock-controller@c8c0000 {
                        compatible = "qcom,mmcc-msm8998";
                        #clock-cells = <1>;
index d709d955a2f5a4e73da404bd2243c33d7407c2c2..daa6f1d30efa01b4616b45da0092875bc8fac0a0 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2022 Luca Weiss <luca.weiss@fairphone.com>
  */
 
+#include <dt-bindings/iio/qcom,spmi-vadc.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
index 46396ec1a330afd371f0ba84b0b77d9669ed58a4..33f357a8063629ef7952c740c4c6de5016a25d32 100644 (file)
                        interrupt-controller;
                        #interrupt-cells = <2>;
                };
+
+               pm8550_flash: led-controller@ee00 {
+                       compatible = "qcom,pm8550-flash-led", "qcom,spmi-flash-led";
+                       reg = <0xee00>;
+                       status = "disabled";
+               };
        };
 };
index f4fb1a92ab55a51a65638e7696ab245e91c8b240..1ea8920ff3694108672bdeea260ba587ed3e7303 100644 (file)
                        status = "disabled";
                };
 
-               wcd_codec: audio-codec@f000 {
+               pm8916_codec: audio-codec@f000 {
                        compatible = "qcom,pm8916-wcd-analog-codec";
                        reg = <0xf000>;
                        reg-names = "pmic-codec-core";
                                          "cdc_ear_cnp_int",
                                          "cdc_hphr_cnp_int",
                                          "cdc_hphl_cnp_int";
-                       vdd-cdc-io-supply = <&pm8916_l5>;
-                       vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
-                       vdd-micbias-supply = <&pm8916_l13>;
                        #sound-dai-cells = <1>;
+                       status = "disabled";
                };
        };
 };
index a1d36f9ebbd259e41a80e3af516d9a044419afe0..2268daf27fa7afc028d9a244f6c03a31375aecd8 100644 (file)
                        reg-names = "rtc", "alarm";
                        interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
                };
+
+               pm8953_gpios: gpio@c000 {
+                       compatible = "qcom,pm8953-gpio", "qcom,spmi-gpio";
+                       reg = <0xc000>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8953_gpios 0 0 8>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
        };
 
        pmic@1 {
index 340033ac31860e52fb5c9edc65b7e0fb08a5d601..695d79116cde257b94ddc9083072863fca7cef76 100644 (file)
@@ -55,7 +55,7 @@
 
                        pm8998_resin: resin {
                                compatible = "qcom,pm8941-resin";
-                               interrupts = <GIC_SPI 0x8 1 IRQ_TYPE_EDGE_BOTH>;
+                               interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
                                debounce = <15625>;
                                bias-pull-up;
                                status = "disabled";
diff --git a/arch/arm64/boot/dts/qcom/pmi632.dtsi b/arch/arm64/boot/dts/qcom/pmi632.dtsi
new file mode 100644 (file)
index 0000000..4eb79e0
--- /dev/null
@@ -0,0 +1,165 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (C) 2023 Luca Weiss <luca@z3ntu.xyz>
+ */
+
+#include <dt-bindings/iio/qcom,spmi-vadc.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+       thermal-zones {
+               pmi632-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pmi632_temp>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+
+                               trip2 {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
+
+&spmi_bus {
+       pmic@2 {
+               compatible = "qcom,pmi632", "qcom,spmi-pmic";
+               reg = <0x2 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmi632_temp: temp-alarm@2400 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0x2400>;
+                       interrupts = <0x2 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmi632_adc: adc@3100 {
+                       compatible = "qcom,spmi-adc5";
+                       reg = <0x3100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #io-channel-cells = <1>;
+                       interrupts = <0x2 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+
+                       channel@0 {
+                               reg = <ADC5_REF_GND>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "ref_gnd";
+                       };
+
+                       channel@1 {
+                               reg = <ADC5_1P25VREF>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "vref_1p25";
+                       };
+
+                       channel@6 {
+                               reg = <ADC5_DIE_TEMP>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "die_temp";
+                       };
+
+                       channel@7 {
+                               reg = <ADC5_USB_IN_I>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "usb_in_i_uv";
+                       };
+
+                       channel@8 {
+                               reg = <ADC5_USB_IN_V_16>;
+                               qcom,pre-scaling = <1 16>;
+                               label = "usb_in_v_div_16";
+                       };
+
+                       channel@9 {
+                               reg = <ADC5_CHG_TEMP>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "chg_temp";
+                       };
+
+                       channel@4b {
+                               reg = <ADC5_BAT_ID_100K_PU>;
+                               qcom,hw-settle-time = <200>;
+                               qcom,pre-scaling = <1 1>;
+                               qcom,ratiometric;
+                               label = "bat_id";
+                       };
+
+                       channel@83 {
+                               reg = <ADC5_VPH_PWR>;
+                               qcom,pre-scaling = <1 3>;
+                               label = "vph_pwr";
+                       };
+
+                       channel@84 {
+                               reg = <ADC5_VBAT_SNS>;
+                               qcom,pre-scaling = <1 3>;
+                               label = "vbat_sns";
+                       };
+               };
+
+               pmi632_adc_tm: adc-tm@3500 {
+                       compatible = "qcom,spmi-adc-tm5";
+                       reg = <0x3500>;
+                       interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
+                       #thermal-sensor-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               pmi632_sdam_7: nvram@b600 {
+                       compatible = "qcom,spmi-sdam";
+                       reg = <0xb600>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0xb600 0x100>;
+               };
+
+               pmi632_gpios: gpio@c000 {
+                       compatible = "qcom,pmi632-gpio", "qcom,spmi-gpio";
+                       reg = <0xc000>;
+                       gpio-controller;
+                       gpio-ranges = <&pmi632_gpios 0 0 8>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       pmic@3 {
+               compatible = "qcom,pmi632", "qcom,spmi-pmic";
+               reg = <0x3 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmi632_lpg: pwm {
+                       compatible = "qcom,pmi632-lpg";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #pwm-cells = <2>;
+
+                       status = "disabled";
+               };
+       };
+};
index ffe587f281d8cdc81703d545b98b661e09b87853..08e00819b39d1acca09747cfb1f0dd844380ec72 100644 (file)
                        status = "disabled";
                };
 
+               pmi8998_flash: led-controller@d300 {
+                       compatible = "qcom,pmi8998-flash-led", "qcom,spmi-flash-led";
+                       reg = <0xd300>;
+                       status = "disabled";
+               };
+
                pmi8998_wled: leds@d800 {
                        compatible = "qcom,pmi8998-wled";
                        reg = <0xd800>, <0xd900>;
index f26fb7d32faf2e7e29ed1787c60d974e62dbd957..bc6297e7253e2bb8602402a5aab1f1aeb6120135 100644 (file)
        #define PMK8350_SID 0
 #endif
 
+/ {
+       reboot-mode {
+               compatible = "nvmem-reboot-mode";
+               nvmem-cells = <&reboot_reason>;
+               nvmem-cell-names = "reboot-mode";
+               mode-recovery = <0x01>;
+               mode-bootloader = <0x02>;
+       };
+};
+       
 &spmi_bus {
        pmk8350: pmic@PMK8350_SID {
                compatible = "qcom,pmk8350", "qcom,spmi-pmic";
                        status = "disabled";
                };
 
+               pmk8350_sdam_2: nvram@7100 {
+                       compatible = "qcom,spmi-sdam";
+                       reg = <0x7100>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x7100 0x100>;
+
+                       reboot_reason: reboot-reason@48 {
+                               reg = <0x48 0x1>;
+                               bits = <1 7>;
+                       };
+               };
+
                pmk8350_gpios: gpio@b000 {
                        compatible = "qcom,pmk8350-gpio", "qcom,spmi-gpio";
                        reg = <0xb000>;
index 201efeda7d2d972deb8819625a77763e20eaefd5..8c897d4fee2964cef41da939ae2bbc17b8d3e5d5 100644 (file)
@@ -8,6 +8,16 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
+/ {
+       reboot-mode {
+               compatible = "nvmem-reboot-mode";
+               nvmem-cells = <&reboot_reason>;
+               nvmem-cell-names = "reboot-mode";
+               mode-recovery = <0x01>;
+               mode-bootloader = <0x02>;
+       };
+};
+
 &spmi_bus {
        pmk8550: pmic@0 {
                compatible = "qcom,pm8550", "qcom,spmi-pmic";
                        status = "disabled";
                };
 
+               pmk8550_sdam_2: nvram@7100 {
+                       compatible = "qcom,spmi-sdam";
+                       reg = <0x7100>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x7100 0x100>;
+
+                       reboot_reason: reboot-reason@48 {
+                               reg = <0x48 0x1>;
+                               bits = <1 7>;
+                       };
+               };
+
                pmk8550_gpios: gpio@8800 {
                        compatible = "qcom,pmk8550-gpio", "qcom,spmi-gpio";
                        reg = <0xb800>;
index 59702ba24f3517fbb231bc05682aba20657396cb..358827c2fbd31b2018c1de1d1a926da020471a05 100644 (file)
@@ -27,8 +27,8 @@
        phy-handle = <&phy1>;
        phy-mode = "rgmii";
        mdio {
-               #address-cells = <0x1>;
-               #size-cells = <0x0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
                compatible = "snps,dwmac-mdio";
                phy1: phy@4 {
                        compatible = "ethernet-phy-ieee802.3-c22";
index 734438113bbae71a57472f1ed20023717bd6df6d..bc16d12432c1195a95a446dd1faa8430b454f582 100644 (file)
                };
 
                apps_smmu: iommu@15000000 {
-                       compatible = "qcom,qdu1000-smmu-500", "arm,mmu-500";
+                       compatible = "qcom,qdu1000-smmu-500", "qcom,smmu-500", "arm,mmu-500";
                        reg = <0x0 0x15000000 0x0 0x100000>;
                        #iommu-cells = <2>;
                        #global-interrupts = <2>;
index dc80f0bca7676d6fb3ac5744ca854d68b7498d0b..39597277343cfbf940effdc4ca56d036d8c9ad98 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/leds/common.h>
 #include "sm4250.dtsi"
 
 / {
                stdout-path = "serial0:115200n8";
        };
 
-       vph_pwr: vph-pwr-regulator {
+       clocks {
+               clk40M: can-clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <40000000>;
+                       #clock-cells = <0>;
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&lt9611_out>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-bt {
+                       label = "blue:bt";
+                       function = LED_FUNCTION_BLUETOOTH;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "bluetooth-power";
+                       default-state = "off";
+               };
+
+               led-user0 {
+                       label = "green:user0";
+                       function = LED_FUNCTION_INDICATOR;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "none";
+                       default-state = "off";
+                       panic-indicator;
+               };
+
+               led-wlan {
+                       label = "yellow:wlan";
+                       function = LED_FUNCTION_WLAN;
+                       color = <LED_COLOR_ID_YELLOW>;
+                       gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tx";
+                       default-state = "off";
+               };
+       };
+
+       vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 {
+               compatible = "regulator-fixed";
+               regulator-name = "VREG_HDMI_OUT_1P2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&vdc_1v2>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       lt9611_3v3: regulator-lt9611-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "LT9611_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vdc_3v3>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* Main barrel jack input */
+       vdc_12v: regulator-vdc-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "DC_12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* 1.2V supply stepped down from the barrel jack input */
+       vdc_1v2: regulator-vdc-1v2 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDC_1V2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&vdc_12v>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* 3.3V supply stepped down from the barrel jack input */
+       vdc_3v3: regulator-vdc-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDC_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vdc_12v>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* 5V supply stepped down from the barrel jack input */
+       vdc_5v: regulator-vdc-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "VDC_5V";
+
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* "Battery" voltage for the SoM, stepped down from the barrel jack input */
+       vdc_vbat_som: regulator-vdc-vbat {
+               compatible = "regulator-fixed";
+               regulator-name = "VBAT_SOM";
+               regulator-min-microvolt = <4200000>;
+               regulator-max-microvolt = <4200000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* PMI632 charger out, supplied by VBAT */
+       vph_pwr: regulator-vph-pwr {
                compatible = "regulator-fixed";
                regulator-name = "vph_pwr";
                regulator-min-microvolt = <3700000>;
                regulator-max-microvolt = <3700000>;
+               vin-supply = <&vdc_vbat_som>;
 
                regulator-always-on;
                regulator-boot-on;
        };
 };
 
+&gpi_dma0 {
+       status = "okay";
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       lt9611_codec: hdmi-bridge@2b {
+               compatible = "lontium,lt9611uxc";
+               reg = <0x2b>;
+               interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
+
+               vdd-supply = <&vreg_hdmi_out_1p2>;
+               vcc-supply = <&lt9611_3v3>;
+
+               pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
+               pinctrl-names = "default";
+               #sound-dai-cells = <1>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               lt9611_a: endpoint {
+                                       remote-endpoint = <&mdss_dsi0_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               lt9611_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vreg_l18a_1p232>;
+       status = "okay";
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&lt9611_a>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 
+&remoteproc_adsp {
+       firmware-name = "qcom/qrb4210/adsp.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qrb4210/cdsp.mbn";
+
+       status = "okay";
+};
+
 &rpm_requests {
        regulators {
                compatible = "qcom,rpm-pm6125-regulators";
                vreg_l5a_2p96: l5 {
                        regulator-min-microvolt = <1648000>;
                        regulator-max-microvolt = <3056000>;
+                       regulator-allow-set-load;
                };
 
                vreg_l6a_0p6: l6 {
                vreg_l11a_1p8: l11 {
                        regulator-min-microvolt = <1704000>;
                        regulator-max-microvolt = <1952000>;
+                       regulator-allow-set-load;
                };
 
                vreg_l12a_1p8: l12 {
 };
 
 &sdhc_1 {
+       pinctrl-0 = <&sdc1_state_on>;
+       pinctrl-1 = <&sdc1_state_off>;
+       pinctrl-names = "default", "sleep";
+
        vmmc-supply = <&vreg_l24a_2p96>;
        vqmmc-supply = <&vreg_l11a_1p8>;
        no-sdio;
 };
 
 &sdhc_2 {
-       cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>; /* card detect gpio */
+       cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; /* card detect gpio */
+
+       pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>;
+       pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>;
+       pinctrl-names = "default", "sleep";
+
        vmmc-supply = <&vreg_l22a_2p96>;
        vqmmc-supply = <&vreg_l5a_2p96>;
        no-sdio;
        status = "okay";
 };
 
+&spi5 {
+       status = "okay";
+
+       can@0 {
+               compatible = "microchip,mcp2518fd";
+               reg = <0>;
+               interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&clk40M>;
+               spi-max-frequency = <10000000>;
+               vdd-supply = <&vdc_5v>;
+               xceiver-supply = <&vdc_5v>;
+       };
+};
+
 &sleep_clk {
        clock-frequency = <32000>;
 };
 
 &tlmm {
-       gpio-reserved-ranges = <37 5>, <43 2>, <47 1>,
-                              <49 1>, <52 1>, <54 1>,
+       gpio-reserved-ranges = <43 2>, <49 1>, <54 1>,
                               <56 3>, <61 2>, <64 1>,
                               <68 1>, <72 8>, <96 1>;
+
+       lt9611_rst_pin: lt9611-rst-state {
+               pins = "gpio41";
+               function = "gpio";
+               input-disable;
+               output-high;
+       };
+
+       lt9611_irq_pin: lt9611-irq-state {
+               pins = "gpio46";
+               function = "gpio";
+               bias-disable;
+       };
+
+       sdc2_card_det_n: sd-card-det-n-state {
+               pins = "gpio88";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
 };
 
 &uart4 {
        status = "okay";
 };
 
+&usb {
+       status = "okay";
+};
+
+&usb_dwc3 {
+       maximum-speed = "super-speed";
+       dr_mode = "peripheral";
+};
+
+&usb_hsphy {
+       vdd-supply = <&vreg_l4a_0p9>;
+       vdda-pll-supply = <&vreg_l12a_1p8>;
+       vdda-phy-dpdm-supply = <&vreg_l15a_3p128>;
+
+       status = "okay";
+};
+
+&usb_qmpphy {
+       vdda-phy-supply = <&vreg_l4a_0p9>;
+       vdda-pll-supply = <&vreg_l12a_1p8>;
+
+       status = "okay";
+};
+
 &xo_board {
        clock-frequency = <19200000>;
 };
index 339fea522509fae5987378c949e15871a1b88f41..02d04ce877c9c89f85555d7e23a5cea8dc1124ff 100644 (file)
 
                vin-supply = <&vreg_3p3>;
        };
-
-       mtl_rx_setup: rx-queues-config {
-               snps,rx-queues-to-use = <1>;
-               snps,rx-sched-sp;
-
-               queue0 {
-                       snps,dcb-algorithm;
-                       snps,map-to-dma-channel = <0x0>;
-                       snps,route-up;
-                       snps,priority = <0x1>;
-               };
-       };
-
-       mtl_tx_setup: tx-queues-config {
-               snps,tx-queues-to-use = <1>;
-               snps,tx-sched-wrr;
-
-               queue0 {
-                       snps,weight = <0x10>;
-                       snps,dcb-algorithm;
-                       snps,priority = <0x0>;
-               };
-       };
 };
 
 &apps_rsc {
        max-speed = <1000>;
 
        mdio {
-               #address-cells = <0x1>;
-               #size-cells = <0x0>;
-
                compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
 
                /* Micrel KSZ9031RNZ PHY */
                rgmii_phy: phy@7 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <0x7>;
 
-                       interrupt-parent = <&tlmm>;
-                       interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>; /* phy intr */
+                       interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>;
                        device_type = "ethernet-phy";
-                       compatible = "ethernet-phy-ieee802.3-c22";
+               };
+       };
+
+       mtl_rx_setup: rx-queues-config {
+               snps,rx-queues-to-use = <1>;
+               snps,rx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x0>;
+                       snps,route-up;
+                       snps,priority = <0x1>;
+               };
+       };
+
+       mtl_tx_setup: tx-queues-config {
+               snps,tx-queues-to-use = <1>;
+               snps,tx-sched-wrr;
+
+               queue0 {
+                       snps,weight = <0x10>;
+                       snps,dcb-algorithm;
+                       snps,priority = <0x0>;
                };
        };
 };
index 24fa449d48a6640a0753366c95b947f02c51b431..21e9eaf914ddecb0a851b9f68861a1322ea51643 100644 (file)
        };
 };
 
+&ethernet0 {
+       snps,mtl-rx-config = <&ethernet0_mtl_rx_setup>;
+       snps,mtl-tx-config = <&ethernet0_mtl_tx_setup>;
+
+       max-speed = <1000>;
+       phy-handle = <&rgmii_phy>;
+       phy-mode = "rgmii-txid";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&ethernet0_default>;
+
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* Marvell 88EA1512 */
+               rgmii_phy: phy@8 {
+                       reg = <0x8>;
+
+                       interrupts-extended = <&tlmm 127 IRQ_TYPE_EDGE_FALLING>;
+
+                       reset-gpios = <&pmm8540c_gpios 1 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <11000>;
+                       reset-deassert-us = <70000>;
+
+                       device_type = "ethernet-phy";
+
+                       /* Set to RGMII_SGMII mode and soft reset. Turn off auto-negotiation
+                        * from userspace to talk to the switch on the SGMII side of things
+                        */
+                       marvell,reg-init =
+                               /* Set MODE[2:0] to RGMII_SGMII */
+                               <0x12 0x14 0xfff8 0x4>,
+                               /* Soft reset required after changing MODE[2:0] */
+                               <0x12 0x14 0x7fff 0x8000>;
+               };
+       };
+
+       ethernet0_mtl_rx_setup: rx-queues-config {
+               snps,rx-queues-to-use = <1>;
+               snps,rx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x0>;
+                       snps,route-up;
+                       snps,priority = <0x1>;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x1>;
+                       snps,route-ptp;
+               };
+
+               queue2 {
+                       snps,avb-algorithm;
+                       snps,map-to-dma-channel = <0x2>;
+                       snps,route-avcp;
+               };
+
+               queue3 {
+                       snps,avb-algorithm;
+                       snps,map-to-dma-channel = <0x3>;
+                       snps,priority = <0xc>;
+               };
+       };
+
+       ethernet0_mtl_tx_setup: tx-queues-config {
+               snps,tx-queues-to-use = <1>;
+               snps,tx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+               };
+
+               queue2 {
+                       snps,avb-algorithm;
+                       snps,send_slope = <0x1000>;
+                       snps,idle_slope = <0x1000>;
+                       snps,high_credit = <0x3e800>;
+                       snps,low_credit = <0xffc18000>;
+               };
+
+               queue3 {
+                       snps,avb-algorithm;
+                       snps,send_slope = <0x1000>;
+                       snps,idle_slope = <0x1000>;
+                       snps,high_credit = <0x3e800>;
+                       snps,low_credit = <0xffc18000>;
+               };
+       };
+};
+
+&ethernet1 {
+       snps,mtl-rx-config = <&ethernet1_mtl_rx_setup>;
+       snps,mtl-tx-config = <&ethernet1_mtl_tx_setup>;
+
+       max-speed = <1000>;
+       phy-mode = "rgmii-txid";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&ethernet1_default>;
+
+       status = "okay";
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+
+       ethernet1_mtl_rx_setup: rx-queues-config {
+               snps,rx-queues-to-use = <1>;
+               snps,rx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x0>;
+                       snps,route-up;
+                       snps,priority = <0x1>;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x1>;
+                       snps,route-ptp;
+               };
+
+               queue2 {
+                       snps,avb-algorithm;
+                       snps,map-to-dma-channel = <0x2>;
+                       snps,route-avcp;
+               };
+
+               queue3 {
+                       snps,avb-algorithm;
+                       snps,map-to-dma-channel = <0x3>;
+                       snps,priority = <0xc>;
+               };
+       };
+
+       ethernet1_mtl_tx_setup: tx-queues-config {
+               snps,tx-queues-to-use = <1>;
+               snps,tx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+               };
+
+               queue2 {
+                       snps,avb-algorithm;
+                       snps,send_slope = <0x1000>;
+                       snps,idle_slope = <0x1000>;
+                       snps,high_credit = <0x3e800>;
+                       snps,low_credit = <0xffc18000>;
+               };
+
+               queue3 {
+                       snps,avb-algorithm;
+                       snps,send_slope = <0x1000>;
+                       snps,idle_slope = <0x1000>;
+                       snps,high_credit = <0x3e800>;
+                       snps,low_credit = <0xffc18000>;
+               };
+       };
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_default>;
 /* PINCTRL */
 
 &tlmm {
+       ethernet0_default: ethernet0-default-state {
+               mdc-pins {
+                       pins = "gpio175";
+                       function = "rgmii_0";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               mdio-pins {
+                       pins = "gpio176";
+                       function = "rgmii_0";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               rgmii-tx-pins {
+                       pins = "gpio183", "gpio184", "gpio185", "gpio186", "gpio187", "gpio188";
+                       function = "rgmii_0";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               rgmii-rx-pins {
+                       pins = "gpio177", "gpio178", "gpio179", "gpio180", "gpio181", "gpio182";
+                       function = "rgmii_0";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+       };
+
+       ethernet1_default: ethernet1-default-state {
+               mdc-pins {
+                       pins = "gpio97";
+                       function = "rgmii_1";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               mdio-pins {
+                       pins = "gpio98";
+                       function = "rgmii_1";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               rgmii-tx-pins {
+                       pins = "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110";
+                       function = "rgmii_1";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               rgmii-rx-pins {
+                       pins = "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104";
+                       function = "rgmii_1";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+       };
+
        i2c0_default: i2c0-default-state {
                /* To USB7002T-I/KDXVA0 USB hub (SIP1 only) */
                pins = "gpio135", "gpio136";
index 7602cca47baec48038766ee4985e30c073d28c69..3c3b6287cd274854252ea7e109d631dceddb5081 100644 (file)
                        };
                };
        };
+
+       reboot-mode {
+               compatible = "nvmem-reboot-mode";
+               nvmem-cells = <&reboot_reason>;
+               nvmem-cell-names = "reboot-mode";
+               mode-recovery = <0x01>;
+               mode-bootloader = <0x02>;
+       };
 };
 
 &spmi_bus {
                        compatible = "qcom,pmk8350-pon";
                        reg = <0x1200>, <0x800>;
                        reg-names = "hlos", "pbs";
-                       mode-recovery = <0x1>;
-                       mode-bootloader = <0x2>;
 
                        pmm8654au_0_pon_pwrkey: pwrkey {
                                compatible = "qcom,pmk8350-pwrkey";
                        interrupt-controller;
                        #interrupt-cells = <2>;
                };
+
+               pmm8654au_0_sdam_0: nvram@7100 {
+                       compatible = "qcom,spmi-sdam";
+                       reg = <0x7100>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x7100 0x100>;
+
+                       reboot_reason: reboot-reason@48 {
+                               reg = <0x48 0x1>;
+                               bits = <1 7>;
+                       };
+               };
        };
 
        pmm8654au_1: pmic@2 {
index f238a02a54480ed40a401e1a7846f306d7fbb9da..ab767cfa51ff5e4bca344ea04d4e5cf7bd447867 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "sa8775p.dtsi"
                serial0 = &uart10;
                serial1 = &uart12;
                serial2 = &uart17;
+               i2c11 = &i2c11;
                i2c18 = &i2c18;
                spi16 = &spi16;
+               ufshc1 = &ufs_mem_hc;
        };
 
        chosen {
        };
 };
 
+&i2c11 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&qup_i2c11_default>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
 &i2c18 {
        clock-frequency = <400000>;
        pinctrl-0 = <&qup_i2c18_default>;
                          "BT_EN",
                          "USB2_PWR_EN",
                          "USB2_FAULT";
+
+       usb2_en_state: usb2-en-state {
+               pins = "gpio9";
+               function = "normal";
+               output-high;
+               power-source = <0>;
+       };
 };
 
 &pmm8654au_2_gpios {
                          "USB1_PWR_ENABLE",
                          "USB1_FAULT",
                          "VMON_SPX8";
+
+       usb0_en_state: usb0-en-state {
+               pins = "gpio3";
+               function = "normal";
+               output-high;
+               power-source = <0>;
+       };
+
+       usb1_en_state: usb1-en-state {
+               pins = "gpio10";
+               function = "normal";
+               output-high;
+               power-source = <0>;
+       };
 };
 
 &pmm8654au_3_gpios {
                bias-disable;
        };
 
+       qup_i2c11_default: qup-i2c11-state {
+               pins = "gpio48", "gpio49";
+               function = "qup1_se4";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        qup_i2c18_default: qup-i2c18-state {
                pins = "gpio95", "gpio96";
                function = "qup2_se4";
        status = "okay";
 };
 
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       vcc-supply = <&vreg_l8a>;
+       vcc-max-microamp = <1100000>;
+       vccq-supply = <&vreg_l4c>;
+       vccq-max-microamp = <1200000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l4a>;
+       vdda-pll-supply = <&vreg_l1c>;
+
+       status = "okay";
+};
+
+&usb_0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_en_state>;
+
+       status = "okay";
+};
+
+&usb_0_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_0_hsphy {
+       vdda-pll-supply = <&vreg_l7a>;
+       vdda18-supply = <&vreg_l6c>;
+       vdda33-supply = <&vreg_l9a>;
+
+       status = "okay";
+};
+
+&usb_0_qmpphy {
+       vdda-phy-supply = <&vreg_l1c>;
+       vdda-pll-supply = <&vreg_l7a>;
+
+       status = "okay";
+};
+
+&usb_1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb1_en_state>;
+
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_1_hsphy {
+       vdda-pll-supply = <&vreg_l7a>;
+       vdda18-supply = <&vreg_l6c>;
+       vdda33-supply = <&vreg_l9a>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l1c>;
+       vdda-pll-supply = <&vreg_l7a>;
+
+       status = "okay";
+};
+
+&usb_2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb2_en_state>;
+
+       status = "okay";
+};
+
+&usb_2_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_2_hsphy {
+       vdda-pll-supply = <&vreg_l7a>;
+       vdda18-supply = <&vreg_l6c>;
+       vdda33-supply = <&vreg_l9a>;
+
+       status = "okay";
+};
+
 &xo_board_clk {
        clock-frequency = <38400000>;
 };
index 2343df7e0ea4f36961ae305ddbaedcdc5157a287..0385fc810d4cb9f84a7f1a8b175d4eac7e634f41 100644 (file)
@@ -7,7 +7,9 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,sa8775p-gcc.h>
+#include <dt-bindings/clock/qcom,sa8775p-gpucc.h>
 #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h>
+#include <dt-bindings/mailbox/qcom-ipcc.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 
                };
        };
 
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
                                 <0>,
                                 <0>,
                                 <0>,
-                                <0>,
-                                <0>,
+                                <&usb_0_qmpphy>,
+                                <&usb_1_qmpphy>,
                                 <0>,
                                 <0>,
                                 <0>,
                        #mbox-cells = <2>;
                };
 
-               qupv3_id_2: geniqup@8c0000 {
-                       compatible = "qcom,geni-se-qup";
-                       reg = <0x0 0x008c0000 0x0 0x6000>;
-                       ranges;
-                       clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
-                                <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
-                       clock-names = "m-ahb", "s-ahb";
-                       iommus = <&apps_smmu 0x5a3 0x0>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       status = "disabled";
+               qupv3_id_2: geniqup@8c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x008c0000 0x0 0x6000>;
+                       ranges;
+                       clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
+                       clock-names = "m-ahb", "s-ahb";
+                       iommus = <&apps_smmu 0x5a3 0x0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       status = "disabled";
+
+                       i2c14: i2c@880000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x880000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi14: spi@880000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x880000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c15: i2c@884000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x884000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi15: spi@884000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x884000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c16: i2c@888000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x888000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi16: spi@888000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00888000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c17: i2c@88c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x88c000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi17: spi@88c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x88c000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       uart17: serial@88c000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0x0088c000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c18: i2c@890000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00890000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi18: spi@890000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x890000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c19: i2c@894000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x894000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi19: spi@894000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x894000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c20: i2c@898000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x898000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 834 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi20: spi@898000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x898000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 834 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+               };
+
+               qupv3_id_0: geniqup@9c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x9c0000 0x0 0x6000>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
+                               <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x403 0x0>;
+                       status = "disabled";
+
+                       i2c0: i2c@980000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x980000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 550 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi0: spi@980000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x980000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 550 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@984000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x984000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 551 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi1: spi@984000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x984000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 551 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@988000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x988000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi2: spi@988000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x988000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@98c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x98c000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi3: spi@98c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x98c000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@990000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x990000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi4: spi@990000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x990000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@994000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x994000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi5: spi@994000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x994000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       uart5: serial@994000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0x994000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+               };
+
+               qupv3_id_1: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00ac0000 0x0 0x6000>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x443 0x0>;
+                       status = "disabled";
+
+                       i2c7: i2c@a80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0xa80000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi7: spi@a80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0xa80000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c8: i2c@a84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0xa84000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi8: spi@a84000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0xa84000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c9: i2c@a88000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0xa88000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi9: spi@a88000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0xa88000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       uart9: serial@a88000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0xa88000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c10: i2c@a8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0xa8c000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi10: spi@a8c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0xa8c000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       uart10: serial@a8c000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0x00a8c000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               interconnect-names = "qup-core", "qup-config";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0
+                                                &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_APPSS_PROC 0
+                                                &config_noc SLAVE_QUP_1 0>;
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               status = "disabled";
+                       };
+
+                       i2c11: i2c@a90000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0xa90000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
 
-                       spi16: spi@888000 {
+                       spi11: spi@a90000 {
                                compatible = "qcom,geni-spi";
-                               reg = <0x0 0x00888000 0x0 0x4000>;
-                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               reg = <0x0 0xa90000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
                                clock-names = "se";
-                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
-                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
-                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
-                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       i2c12: i2c@a94000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0xa94000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
                                                 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
                                interconnect-names = "qup-core",
                                                     "qup-config",
                                                     "qup-memory";
                                power-domains = <&rpmhpd SA8775P_CX>;
+                               status = "disabled";
+                       };
+
+                       spi12: spi@a94000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0xa94000 0x0 0x4000>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+                               power-domains = <&rpmhpd SA8775P_CX>;
                                status = "disabled";
                        };
 
-                       uart17: serial@88c000 {
+                       uart12: serial@a94000 {
                                compatible = "qcom,geni-uart";
-                               reg = <0x0 0x0088c000 0x0 0x4000>;
-                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               reg = <0x0 0x00a94000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
                                clock-names = "se";
-                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
-                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
-                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>;
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>;
                                interconnect-names = "qup-core", "qup-config";
                                power-domains = <&rpmhpd SA8775P_CX>;
                                status = "disabled";
                        };
 
-                       i2c18: i2c@890000 {
+                       i2c13: i2c@a98000 {
                                compatible = "qcom,geni-i2c";
-                               reg = <0x0 0x00890000 0x0 0x4000>;
-                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               reg = <0x0 0xa98000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 836 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
                                clock-names = "se";
-                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
-                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
-                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
-                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
                                                 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
                                interconnect-names = "qup-core",
                                                     "qup-config",
                                                     "qup-memory";
                                power-domains = <&rpmhpd SA8775P_CX>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
                                status = "disabled";
                        };
                };
 
-               qupv3_id_1: geniqup@ac0000 {
+               qupv3_id_3: geniqup@bc0000 {
                        compatible = "qcom,geni-se-qup";
-                       reg = <0x0 0x00ac0000 0x0 0x6000>;
+                       reg = <0x0 0xbc0000 0x0 0x6000>;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
                        clock-names = "m-ahb", "s-ahb";
-                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
-                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
-                       iommus = <&apps_smmu 0x443 0x0>;
+                       clocks = <&gcc GCC_QUPV3_WRAP_3_M_AHB_CLK>,
+                               <&gcc GCC_QUPV3_WRAP_3_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x43 0x0>;
                        status = "disabled";
 
-                       uart10: serial@a8c000 {
-                               compatible = "qcom,geni-uart";
-                               reg = <0x0 0x00a8c000 0x0 0x4000>;
-                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                       i2c21: i2c@b80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0xb80000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 831 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP3_S0_CLK>;
                                clock-names = "se";
-                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
-                               interconnect-names = "qup-core", "qup-config";
-                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0
-                                                &clk_virt SLAVE_QUP_CORE_1 0>,
-                                               <&gem_noc MASTER_APPSS_PROC 0
-                                                &config_noc SLAVE_QUP_1 0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_3 QCOM_ICC_TAG_ALWAYS
+                                               &clk_virt SLAVE_QUP_CORE_3 QCOM_ICC_TAG_ALWAYS>,
+                                          <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                               &config_noc SLAVE_QUP_3 QCOM_ICC_TAG_ALWAYS>,
+                                          <&aggre1_noc MASTER_QUP_3 QCOM_ICC_TAG_ALWAYS
+                                               &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                        "qup-config",
+                                                        "qup-memory";
                                power-domains = <&rpmhpd SA8775P_CX>;
-                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                status = "disabled";
                        };
 
-                       uart12: serial@a94000 {
-                               compatible = "qcom,geni-uart";
-                               reg = <0x0 0x00a94000 0x0 0x4000>;
-                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                       spi21: spi@b80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0xb80000 0x0 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 831 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP3_S0_CLK>;
                                clock-names = "se";
-                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
-                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
-                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
-                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>;
-                               interconnect-names = "qup-core", "qup-config";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_3 QCOM_ICC_TAG_ALWAYS
+                                               &clk_virt SLAVE_QUP_CORE_3 QCOM_ICC_TAG_ALWAYS>,
+                                          <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                               &config_noc SLAVE_QUP_3 QCOM_ICC_TAG_ALWAYS>,
+                                          <&aggre1_noc MASTER_QUP_3 QCOM_ICC_TAG_ALWAYS
+                                               &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                        "qup-config",
+                                                        "qup-memory";
                                power-domains = <&rpmhpd SA8775P_CX>;
                                status = "disabled";
                        };
                };
 
+               ufs_mem_hc: ufs@1d84000 {
+                       compatible = "qcom,sa8775p-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
+                       reg = <0x0 0x01d84000 0x0 0x3000>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&ufs_mem_phy>;
+                       phy-names = "ufsphy";
+                       lanes-per-direction = <2>;
+                       #reset-cells = <1>;
+                       resets = <&gcc GCC_UFS_PHY_BCR>;
+                       reset-names = "rst";
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+                       iommus = <&apps_smmu 0x100 0x0>;
+                       dma-coherent;
+                       clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_UFS_PHY_AHB_CLK>,
+                                <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+                       clock-names = "core_clk",
+                                     "bus_aggr_clk",
+                                     "iface_clk",
+                                     "core_clk_unipro",
+                                     "ref_clk",
+                                     "tx_lane0_sync_clk",
+                                     "rx_lane0_sync_clk",
+                                     "rx_lane1_sync_clk";
+                       freq-table-hz = <75000000 300000000>,
+                                       <0 0>,
+                                       <0 0>,
+                                       <75000000 300000000>,
+                                       <0 0>,
+                                       <0 0>,
+                                       <0 0>,
+                                       <0 0>;
+                       status = "disabled";
+               };
+
+               ufs_mem_phy: phy@1d87000 {
+                       compatible = "qcom,sa8775p-qmp-ufs-phy";
+                       reg = <0x0 0x01d87000 0x0 0xe10>;
+                       /*
+                        * Yes, GCC_EDP_REF_CLKREF_EN is correct in qref. It
+                        * enables the CXO clock to eDP *and* UFS PHY.
+                        */
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+                                <&gcc GCC_EDP_REF_CLKREF_EN>;
+                       clock-names = "ref", "ref_aux", "qref";
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+                       resets = <&ufs_mem_hc 0>;
+                       reset-names = "ufsphy";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               usb_0_hsphy: phy@88e4000 {
+                       compatible = "qcom,sa8775p-usb-hs-phy",
+                                    "qcom,usb-snps-hs-5nm-phy";
+                       reg = <0 0x088e4000 0 0x120>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+                       resets = <&gcc GCC_USB2_PHY_PRIM_BCR>;
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_0_qmpphy: phy@88e8000 {
+                       compatible = "qcom,sa8775p-qmp-usb3-uni-phy";
+                       reg = <0 0x088e8000 0 0x2000>;
+
+                       clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
+                                <&gcc GCC_USB_CLKREF_EN>,
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+                       clock-names = "aux", "ref", "com_aux", "pipe";
+
+                       resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_PRIM_BCR>;
+                       reset-names = "phy", "phy_phy";
+
+                       power-domains = <&gcc USB30_PRIM_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb3_prim_phy_pipe_clk_src";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_0: usb@a6f8800 {
+                       compatible = "qcom,sa8775p-dwc3", "qcom,dwc3";
+                       reg = <0 0x0a6f8800 0 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
+                                <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
+                       clock-names = "cfg_noc", "core", "iface", "sleep", "mock_utmi";
+
+                       assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_PRIM_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 15 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 12 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq",
+                                         "ss_phy_irq";
+
+                       power-domains = <&gcc USB30_PRIM_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       resets = <&gcc GCC_USB30_PRIM_BCR>;
+
+                       interconnects = <&aggre1_noc MASTER_USB3_0 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_0 0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       wakeup-source;
+
+                       status = "disabled";
+
+                       usb_0_dwc3: usb@a600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a600000 0 0xe000>;
+                               interrupts = <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x080 0x0>;
+                               phys = <&usb_0_hsphy>, <&usb_0_qmpphy>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                       };
+               };
+
+               usb_1_hsphy: phy@88e6000 {
+                       compatible = "qcom,sa8775p-usb-hs-phy",
+                                    "qcom,usb-snps-hs-5nm-phy";
+                       reg = <0 0x088e6000 0 0x120>;
+                       clocks = <&gcc GCC_USB_CLKREF_EN>;
+                       clock-names = "ref";
+                       resets = <&gcc GCC_USB2_PHY_SEC_BCR>;
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_1_qmpphy: phy@88ea000 {
+                       compatible = "qcom,sa8775p-qmp-usb3-uni-phy";
+                       reg = <0 0x088ea000 0 0x2000>;
+
+                       clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
+                                <&gcc GCC_USB_CLKREF_EN>,
+                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
+                       clock-names = "aux", "ref", "com_aux", "pipe";
+
+                       resets = <&gcc GCC_USB3_PHY_SEC_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_SEC_BCR>;
+                       reset-names = "phy", "phy_phy";
+
+                       power-domains = <&gcc USB30_SEC_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb3_sec_phy_pipe_clk_src";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_1: usb@a8f8800 {
+                       compatible = "qcom,sa8775p-dwc3", "qcom,dwc3";
+                       reg = <0 0x0a8f8800 0 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_SEC_AXI_CLK>,
+                                <&gcc GCC_USB30_SEC_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_SEC_AXI_CLK>,
+                                <&gcc GCC_USB30_SEC_SLEEP_CLK>,
+                                <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>;
+                       clock-names = "cfg_noc", "core", "iface", "sleep", "mock_utmi";
+
+                       assigned-clocks = <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_SEC_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 8 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 7 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 13 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq",
+                                         "ss_phy_irq";
+
+                       power-domains = <&gcc USB30_SEC_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       resets = <&gcc GCC_USB30_SEC_BCR>;
+
+                       interconnects = <&aggre1_noc MASTER_USB3_1 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_1 0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       wakeup-source;
+
+                       status = "disabled";
+
+                       usb_1_dwc3: usb@a800000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a800000 0 0xe000>;
+                               interrupts = <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x0a0 0x0>;
+                               phys = <&usb_1_hsphy>, <&usb_1_qmpphy>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                       };
+               };
+
+               usb_2_hsphy: phy@88e7000 {
+                       compatible = "qcom,sa8775p-usb-hs-phy",
+                                    "qcom,usb-snps-hs-5nm-phy";
+                       reg = <0 0x088e7000 0 0x120>;
+                       clocks = <&gcc GCC_USB_CLKREF_EN>;
+                       clock-names = "ref";
+                       resets = <&gcc GCC_USB3_PHY_TERT_BCR>;
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_2: usb@a4f8800 {
+                       compatible = "qcom,sa8775p-dwc3", "qcom,dwc3";
+                       reg = <0 0x0a4f8800 0 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB20_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB2_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB20_SLEEP_CLK>,
+                                <&gcc GCC_USB20_MOCK_UTMI_CLK>;
+                       clock-names = "cfg_noc", "core", "iface", "sleep", "mock_utmi";
+
+                       assigned-clocks = <&gcc GCC_USB20_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB20_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 10 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "pwr_event",
+                                         "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq";
+
+                       power-domains = <&gcc USB20_PRIM_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       resets = <&gcc GCC_USB20_PRIM_BCR>;
+
+                       interconnects = <&aggre1_noc MASTER_USB2 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB2 0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       wakeup-source;
+
+                       status = "disabled";
+
+                       usb_2_dwc3: usb@a400000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a400000 0 0xe000>;
+                               interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x020 0x0>;
+                               phys = <&usb_2_hsphy>;
+                               phy-names = "usb2-phy";
+                       };
+               };
+
                tcsr_mutex: hwlock@1f40000 {
                        compatible = "qcom,tcsr-mutex";
                        reg = <0x0 0x01f40000 0x0 0x20000>;
                        #hwlock-cells = <1>;
                };
 
+               gpucc: clock-controller@3d90000 {
+                       compatible = "qcom,sa8775p-gpucc";
+                       reg = <0x0 0x03d90000 0x0 0xa000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+                       clock-names = "bi_tcxo",
+                                     "gcc_gpu_gpll0_clk_src",
+                                     "gcc_gpu_gpll0_div_clk_src";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               adreno_smmu: iommu@3da0000 {
+                       compatible = "qcom,sa8775p-smmu-500", "qcom,adreno-smmu",
+                                    "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0x0 0x03da0000 0x0 0x20000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <2>;
+                       dma-coherent;
+                       power-domains = <&gpucc GPU_CC_CX_GDSC>;
+                       clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>,
+                                <&gpucc GPU_CC_AHB_CLK>,
+                                <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
+                                <&gpucc GPU_CC_CX_GMU_CLK>,
+                                <&gpucc GPU_CC_HUB_CX_INT_CLK>,
+                                <&gpucc GPU_CC_HUB_AON_CLK>;
+                       clock-names = "gcc_gpu_memnoc_gfx_clk",
+                                     "gcc_gpu_snoc_dvm_gfx_clk",
+                                     "gpu_cc_ahb_clk",
+                                     "gpu_cc_hlos1_vote_gpu_smmu_clk",
+                                     "gpu_cc_cx_gmu_clk",
+                                     "gpu_cc_hub_cx_int_clk",
+                                     "gpu_cc_hub_aon_clk";
+                       interrupts = <GIC_SPI 673 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 674 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                pdc: interrupt-controller@b220000 {
                        compatible = "qcom,sa8775p-pdc", "qcom,pdc";
                        reg = <0x0 0x0b220000 0x0 0x30000>,
                        interrupt-controller;
                };
 
+               aoss_qmp: power-management@c300000 {
+                       compatible = "qcom,sa8775p-aoss-qmp", "qcom,aoss-qmp";
+                       reg = <0x0 0x0c300000 0x0 0x400>;
+                       interrupts-extended = <&ipcc IPCC_CLIENT_AOP
+                                              IPCC_MPROC_SIGNAL_GLINK_QMP
+                                              IRQ_TYPE_EDGE_RISING>;
+                       mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
+                       #clock-cells = <0>;
+               };
+
                spmi_bus: spmi@c440000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0x0 0x0c440000 0x0 0x1100>,
                                     <GIC_SPI 891 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               pcie_smmu: iommu@15200000 {
+                       compatible = "qcom,sa8775p-smmu-500", "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0x0 0x15200000 0x0 0x80000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <2>;
+
+                       interrupts = <GIC_SPI 920 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 921 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 925 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 926 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 927 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 928 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 950 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 951 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 952 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 953 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 954 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 955 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 956 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 957 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 958 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 885 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 886 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 887 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 888 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 820 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 822 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 823 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 452 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 840 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 841 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 842 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 843 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 844 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 845 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 847 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 848 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 849 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 802 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 803 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 804 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 805 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 806 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 807 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 808 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 809 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 810 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 811 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 812 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 813 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 814 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 836 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 837 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 838 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 839 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 854 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 855 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 856 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 790 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 791 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 792 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 793 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 794 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 795 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 796 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 639 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                intc: interrupt-controller@17a00000 {
                        compatible = "arm,gic-v3";
                        reg = <0x0 0x17a00000 0x0 0x10000>,     /* GICD */
                        redistributor-stride = <0x0 0x20000>;
                };
 
+               watchdog@17c10000 {
+                       compatible = "qcom,apss-wdt-sa8775p", "qcom,kpss-wdt";
+                       reg = <0x0 0x17c10000 0x0 0x1000>;
+                       clocks = <&sleep_clk>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                memtimer: timer@17c20000 {
                        compatible = "arm,armv7-timer-mem";
                        reg = <0x0 0x17c20000 0x0 0x1000>;
diff --git a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
new file mode 100644 (file)
index 0000000..2a80f40
--- /dev/null
@@ -0,0 +1,845 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "sc7180.dtsi"
+
+#include "pm6150.dtsi"
+#include "pm6150l.dtsi"
+
+/delete-node/ &tz_mem;
+/delete-node/ &ipa_fw_mem;
+
+/ {
+       model = "Acer Aspire 1";
+       compatible = "acer,aspire1", "qcom,sc7180";
+       chassis-type = "laptop";
+
+       aliases {
+               bluetooth0 = &bluetooth;
+               hsuart0 = &uart3;
+               serial0 = &uart8;
+               wifi0 = &wifi;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       reserved-memory {
+               zap_mem: zap-shader@80840000 {
+                       reg = <0x0 0x80840000 0 0x2000>;
+                       no-map;
+               };
+
+               venus_mem: venus@85b00000 {
+                       reg = <0x0 0x85b00000 0 0x500000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss@86000000 {
+                       reg = <0x0 0x86000000 0x0 0x2000000>;
+                       no-map;
+               };
+
+               adsp_mem: adsp@8e400000 {
+                       reg = <0x0 0x8e400000 0x0 0x2800000>;
+                       no-map;
+               };
+
+               wlan_mem: wlan@93900000 {
+                       reg = <0x0 0x93900000 0x0 0x200000>;
+                       no-map;
+               };
+       };
+
+       max98357a: audio-codec {
+               compatible = "maxim,max98357a";
+               sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&amp_sd_mode_default>;
+               pinctrl-names = "default";
+
+               #sound-dai-cells = <0>;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&sn65dsi86_bridge 1000000>;
+               enable-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&soc_bkoff_default>;
+               pinctrl-names = "default";
+       };
+
+       reg_brij_1p2: bridge-1p2-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "brij_1p2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+
+               gpio = <&tlmm 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&reg_edp_1p2_en_default>;
+               pinctrl-names = "default";
+       };
+
+       reg_brij_1p8: bridge-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "brij_1p8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               vin-supply = <&vreg_l8c_1p8>;
+
+               gpio = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&reg_edp_1p8_en_default>;
+               pinctrl-names = "default";
+       };
+
+       reg_codec_3p3: codec-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "codec_3p3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&reg_audio_en_default>;
+               pinctrl-names = "default";
+       };
+
+       reg_lcm_3p3: panel-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "lcm_3p3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&reg_lcm_en_default>;
+               pinctrl-names = "default";
+       };
+
+       reg_tp_3p3: touchpad-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "tp_3p3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&reg_tp_en_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&dsi0 {
+       vdda-supply = <&vreg_l3c_1p2>;
+       status = "okay";
+};
+
+&dsi0_out {
+       remote-endpoint = <&sn65dsi86_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&dsi_phy {
+       vdds-supply = <&vreg_l4a_0p8>;
+       status = "okay";
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /* embedded-controller@76 */
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /*
+        * NOTE: DSDT defines two possible touchpads, other one is
+        *
+        * reg = <0x15>;
+        * hid-descr-addr = <0x1>;
+        */
+
+       touchpad@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+               hid-descr-addr = <0x20>;
+
+               vdd-supply = <&reg_tp_3p3>;
+
+               interrupts-extended = <&tlmm 94 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&hid_touchpad_default>;
+               pinctrl-names = "default";
+
+               wakeup-source;
+       };
+
+       keyboard@3a {
+               compatible = "hid-over-i2c";
+               reg = <0x3a>;
+               hid-descr-addr = <0x1>;
+
+               interrupts-extended = <&tlmm 33 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&hid_keyboard_default>;
+               pinctrl-names = "default";
+
+               wakeup-source;
+       };
+};
+
+&i2c9 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       alc5682: codec@1a {
+               compatible = "realtek,rt5682i";
+               reg = <0x1a>;
+
+               #sound-dai-cells = <1>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <28 IRQ_TYPE_EDGE_BOTH>;
+
+               pinctrl-0 = <&codec_irq_default>;
+               pinctrl-names = "default";
+
+               AVDD-supply = <&vreg_l15a_1p8>;
+               MICVDD-supply = <&reg_codec_3p3>;
+               VBAT-supply = <&reg_codec_3p3>;
+
+               realtek,dmic1-data-pin = <1>;
+               realtek,dmic1-clk-pin = <1>;
+               realtek,jd-src = <1>;
+       };
+};
+
+&i2c10 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       sn65dsi86_bridge: bridge@2c {
+               compatible = "ti,sn65dsi86";
+               reg = <0x2c>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               #pwm-cells = <1>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+
+               enable-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
+               suspend-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&bridge_en_default>,
+                           <&edp_bridge_irq_default>,
+                           <&bridge_suspend_default>;
+               pinctrl-names = "default";
+
+               vpll-supply = <&reg_brij_1p8>;
+               vccio-supply = <&reg_brij_1p8>;
+               vcca-supply = <&reg_brij_1p2>;
+               vcc-supply = <&reg_brij_1p2>;
+
+               clocks = <&rpmhcc RPMH_LN_BB_CLK3>;
+               clock-names = "refclk";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               sn65dsi86_in: endpoint {
+                                       remote-endpoint = <&dsi0_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               sn65dsi86_out: endpoint {
+                                       data-lanes = <0 1>;
+                                       remote-endpoint = <&panel_in_edp>;
+                               };
+                       };
+               };
+
+               aux-bus {
+                       panel: panel {
+                               compatible = "edp-panel";
+                               power-supply = <&reg_lcm_3p3>;
+                               backlight = <&backlight>;
+                               hpd-absent-delay-ms = <200>;
+
+                               port {
+                                       panel_in_edp: endpoint {
+                                               remote-endpoint = <&sn65dsi86_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               memory-region = <&zap_mem>;
+               firmware-name = "qcom/sc7180/acer/aspire1/qcdxkmsuc7180.mbn";
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&pm6150_adc {
+       thermistor@4e {
+               reg = <ADC5_AMUX_THM2_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+       };
+
+       charger-thermistor@4f {
+               reg = <ADC5_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+       };
+};
+
+&pm6150_adc_tm {
+       status = "okay";
+
+       charger-thermistor@0 {
+               reg = <0>;
+               io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       thermistor@1 {
+               reg = <1>;
+               io-channels = <&pm6150_adc ADC5_AMUX_THM2_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
+&pm6150_pon {
+       status = "disabled";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/sc7180/acer/aspire1/qcmpss7180_nm.mbn";
+       status = "okay";
+};
+
+&sdhc_1 {
+       pinctrl-0 = <&sdc1_default>;
+       pinctrl-1 = <&sdc1_sleep>;
+       pinctrl-names = "default", "sleep";
+       vmmc-supply = <&vreg_l19a_2p9>;
+       vqmmc-supply = <&vreg_l12a_1p8>;
+
+       status = "okay";
+};
+
+&uart3 {
+       /delete-property/interrupts;
+       interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
+                             <&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
+
+       pinctrl-1 = <&qup_uart3_sleep>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+
+       bluetooth: bluetooth {
+               compatible = "qcom,wcn3991-bt";
+               vddio-supply = <&vreg_l10a_1p8>;
+               vddxo-supply = <&vreg_l1c_1p8>;
+               vddrf-supply = <&vreg_l2c_1p3>;
+               vddch0-supply = <&vreg_l10c_3p3>;
+               max-speed = <3200000>;
+       };
+};
+
+&uart8 {
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "host";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       usb_hub_2_x: hub@1 {
+               compatible = "usbbda,5411";
+               reg = <1>;
+               peer-hub = <&usb_hub_3_x>;
+       };
+
+       usb_hub_3_x: hub@2 {
+               compatible = "usbbda,411";
+               reg = <2>;
+               peer-hub = <&usb_hub_2_x>;
+       };
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&vreg_l4a_0p8>;
+       vdda-pll-supply = <&vreg_l11a_1p8>;
+       vdda-phy-dpdm-supply = <&vreg_l17a_3p0>;
+       qcom,imp-res-offset-value = <8>;
+       qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
+       qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
+       qcom,bias-ctrl-value = <0x22>;
+       qcom,charge-ctrl-value = <3>;
+       qcom,hsdisc-trim-value = <0>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l4a_0p8>;
+
+       status = "okay";
+};
+
+&venus {
+       firmware-name = "qcom/sc7180/acer/aspire1/qcvss7180.mbn";
+};
+
+&wifi {
+       vdd-0.8-cx-mx-supply = <&vreg_l9a_0p6>;
+       vdd-1.8-xo-supply = <&vreg_l1c_1p8>;
+       vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
+       vdd-3.3-ch0-supply = <&vreg_l10c_3p3>;
+       vdd-3.3-ch1-supply = <&vreg_l11c_3p3>;
+
+       status = "okay";
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm6150-rpmh-regulators";
+               qcom,pmic-id = "a";
+
+               vreg_s1a_1p1: smps1 {
+                       regulator-min-microvolt = <1128000>;
+                       regulator-max-microvolt = <1128000>;
+               };
+
+               vreg_l4a_0p8: ldo4 {
+                       regulator-min-microvolt = <824000>;
+                       regulator-max-microvolt = <928000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9a_0p6: ldo9 {
+                       regulator-min-microvolt = <488000>;
+                       regulator-max-microvolt = <800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10a_1p8: ldo10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               vreg_l11a_1p8: ldo11 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12a_1p8: ldo12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13a_1p8: ldo13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14a_1p8: ldo14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15a_1p8: ldo15 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16a_2p7: ldo16 {
+                       regulator-min-microvolt = <2496000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17a_3p0: ldo17 {
+                       regulator-min-microvolt = <2920000>;
+                       regulator-max-microvolt = <3232000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l18a_2p8: ldo18 {
+                       regulator-min-microvolt = <2496000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l19a_2p9: ldo19 {
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm6150l-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vreg_s8c_1p3: smps8 {
+                       regulator-min-microvolt = <1120000>;
+                       regulator-max-microvolt = <1408000>;
+               };
+
+               vreg_l1c_1p8: ldo1 {
+                       regulator-min-microvolt = <1616000>;
+                       regulator-max-microvolt = <1984000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_1p3: ldo2 {
+                       regulator-min-microvolt = <1168000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_1p2: ldo3 {
+                       regulator-min-microvolt = <1144000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_1p8: ldo4 {
+                       regulator-min-microvolt = <1648000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+               };
+
+               vreg_l5c_1p8: ldo5 {
+                       regulator-min-microvolt = <1648000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+               };
+
+               vreg_l6c_2p9: ldo6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c_3p0: ldo7 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+               };
+
+               vreg_l8c_1p8: ldo8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c_2p9: ldo9 {
+                       regulator-min-microvolt = <2952000>;
+                       regulator-max-microvolt = <2952000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_3p3: ldo10 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3400000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_3p3: ldo11 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3400000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob: bob {
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+};
+
+&qup_i2c2_default {
+       drive-strength = <2>;
+
+       /* Has external pullup */
+       bias-disable;
+};
+
+&qup_i2c4_default {
+       drive-strength = <2>;
+
+       /* Has external pullup */
+       bias-disable;
+};
+
+&qup_i2c9_default {
+       drive-strength = <2>;
+
+       /* Has external pullup */
+       bias-disable;
+};
+
+&qup_i2c10_default {
+       drive-strength = <2>;
+
+       /* Has external pullup */
+       bias-disable;
+};
+
+&tlmm {
+       /*
+        * The TZ seem to protect those because some boards can have
+        * fingerprint sensor connected to this range. Not connected
+        * on this board
+        */
+       gpio-reserved-ranges = <58 5>;
+
+       amp_sd_mode_default: amp-sd-mode-deault-state {
+               pins = "gpio23";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       bridge_en_default: bridge-en-default-state {
+               pins = "gpio51";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       bridge_suspend_default: bridge-suspend-default-state {
+               pins = "gpio22";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-pull-up;
+       };
+
+       codec_irq_default: codec-irq-deault-state {
+               pins = "gpio28";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       edp_bridge_irq_default: edp-bridge-irq-default-state {
+               pins = "gpio11";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       hid_keyboard_default: hid-keyboard-default-state {
+               pins = "gpio33";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       hid_touchpad_default: hid-touchpad-default-state {
+               pins = "gpio94";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       qup_uart3_sleep: qup-uart3-sleep-state {
+               cts-pins {
+                       /*
+                        * Configure a pull-down on CTS to match the pull of
+                        * the Bluetooth module.
+                        */
+                       pins = "gpio38";
+                       function = "gpio";
+                       bias-pull-down;
+               };
+
+               rts-pins {
+                       /*
+                        * Configure pull-down on RTS. As RTS is active low
+                        * signal, pull it low to indicate the BT SoC that it
+                        * can wakeup the system anytime from suspend state by
+                        * pulling RX low (by sending wakeup bytes).
+                        */
+                       pins = "gpio39";
+                       function = "gpio";
+                       bias-pull-down;
+               };
+
+               tx-pins {
+                       /*
+                        * Configure pull-up on TX when it isn't actively driven
+                        * to prevent BT SoC from receiving garbage during sleep.
+                        */
+                       pins = "gpio40";
+                       function = "gpio";
+                       bias-pull-up;
+               };
+
+               rx-pins {
+                       /*
+                        * Configure a pull-up on RX. This is needed to avoid
+                        * garbage data when the TX pin of the Bluetooth module
+                        * is floating which may cause spurious wakeups.
+                        */
+                       pins = "gpio41";
+                       function = "gpio";
+                       bias-pull-up;
+               };
+       };
+
+       reg_edp_1p2_en_default: reg-edp-1p2-en-deault-state {
+               pins = "gpio19";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       reg_edp_1p8_en_default: reg-edp-1p8-en-deault-state {
+               pins = "gpio20";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       reg_lcm_en_default: reg-lcm-en-deault-state {
+               pins = "gpio26";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       reg_audio_en_default: reg-audio-en-deault-state {
+               pins = "gpio83";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       reg_tp_en_default: reg-tp-en-deault-state {
+               pins = "gpio25";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       soc_bkoff_default: soc-bkoff-deault-state {
+               pins = "gpio10";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       sdc1_default: sdc1-default-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd-pins {
+                       pins = "sdc1_cmd";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               data-pins {
+                       pins = "sdc1_data";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               rclk-pins {
+                       pins = "sdc1_rclk";
+                       bias-pull-down;
+               };
+       };
+
+       sdc1_sleep: sdc1-sleep-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               cmd-pins {
+                       pins = "sdc1_cmd";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               data-pins {
+                       pins = "sdc1_data";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               rclk-pins {
+                       pins = "sdc1_rclk";
+                       bias-pull-down;
+               };
+       };
+};
index 9f052270e0908c8e48b8c724edded66fb663f323..bd9ed03159cfbde52043badb0b605009866c62c5 100644 (file)
        vdds-supply = <&vreg_l4a_0p8>;
 };
 
-&mdp {
-       status = "okay";
-};
-
 &mdss {
        status = "okay";
 };
index ca6920de7ea879bbcdf302b51c76909aab7e092b..51d6c3502f3ff99089390a8110609fdf2f3e6a3a 100644 (file)
@@ -788,6 +788,10 @@ hp_i2c: &i2c9 {
        };
 };
 
+&lpasscc {
+       status = "okay";
+};
+
 &lpass_cpu {
        status = "okay";
 
@@ -813,7 +817,7 @@ hp_i2c: &i2c9 {
        };
 };
 
-&mdp {
+&lpass_hm {
        status = "okay";
 };
 
index ea1ffade1aa194ba5896680ac13083b7fd3cf24e..af90052c5a8a1c1addb33617ed449689e0097a7f 100644 (file)
                qspi: spi@88dc000 {
                        compatible = "qcom,sc7180-qspi", "qcom,qspi-v1";
                        reg = <0 0x088dc000 0 0x600>;
+                       iommus = <&apps_smmu 0x20 0x0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&mdss>;
                                interrupts = <0>;
 
-                               status = "disabled";
-
                                ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                        power-domains = <&lpass_hm LPASS_CORE_HM_GDSCR>;
                        #clock-cells = <1>;
                        #power-domain-cells = <1>;
+
+                       status = "reserved"; /* Controlled by ADSP */
                };
 
                lpass_cpu: lpass@62d87000 {
 
                        #clock-cells = <1>;
                        #power-domain-cells = <1>;
+
+                       status = "reserved"; /* Controlled by ADSP */
                };
        };
 
index 31728f4614223b1b9ce440f709d16609e624a42f..7c5dbac7ef772b72de7ef6a8218eb1ed8033ef4d 100644 (file)
                };
        };
 
+       eud_typec: connector {
+               compatible = "usb-c-connector";
+
+               ports {
+                       port@0 {
+                               con_eud: endpoint {
+                                       remote-endpoint = <&eud_con>;
+                               };
+                       };
+               };
+       };
+
        memory@80000000 {
                device_type = "memory";
                /* We expect the bootloader to fill in the size */
                                phy-names = "usb2-phy";
                                maximum-speed = "high-speed";
                                usb-role-switch;
+
                                port {
                                        usb2_role_switch: endpoint {
                                                remote-endpoint = <&eud_ep>;
                qspi: spi@88dc000 {
                        compatible = "qcom,sc7280-qspi", "qcom,qspi-v1";
                        reg = <0 0x088dc000 0 0x1000>;
+                       iommus = <&apps_smmu 0x20 0x0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                eud: eud@88e0000 {
-                       compatible = "qcom,sc7280-eud","qcom,eud";
-                       reg = <0 0x088e0000 0 0x2000>,
-                             <0 0x088e2000 0 0x1000>;
+                       compatible = "qcom,sc7280-eud", "qcom,eud";
+                       reg = <0 0x88e0000 0 0x2000>,
+                             <0 0x88e2000 0 0x1000>;
                        interrupts-extended = <&pdc 11 IRQ_TYPE_LEVEL_HIGH>;
+
                        ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                                remote-endpoint = <&usb2_role_switch>;
                                        };
                                };
+
                                port@1 {
                                        reg = <1>;
                                        eud_con: endpoint {
                        };
                };
 
-               eud_typec: connector {
-                       compatible = "usb-c-connector";
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
-                                       con_eud: endpoint {
-                                               remote-endpoint = <&eud_con>;
-                                       };
-                               };
-                       };
-               };
-
                nsp_noc: interconnect@a0c0000 {
                        reg = <0 0x0a0c0000 0 0x10000>;
                        compatible = "qcom,sc7280-nsp-noc";
diff --git a/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts b/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
new file mode 100644 (file)
index 0000000..fe3b366
--- /dev/null
@@ -0,0 +1,583 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020-2023, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sc8180x.dtsi"
+#include "sc8180x-pmics.dtsi"
+
+/ {
+       model = "Lenovo Flex 5G";
+       compatible = "lenovo,flex-5g", "qcom,sc8180x";
+
+       aliases {
+               serial0 = &uart13;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pmc8180c_lpg 4 1000000>;
+               enable-gpios = <&pmc8180c_gpios 8 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&bl_pwm_default>;
+               pinctrl-names = "default";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&hall_int_active_state>;
+               pinctrl-names = "default";
+
+               lid {
+                       gpios = <&tlmm 121 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       wakeup-source;
+                       wakeup-event-action = <EV_ACT_DEASSERTED>;
+               };
+       };
+
+       reserved-memory {
+               rmtfs_mem: rmtfs-region@85500000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0x85500000 0x0 0x200000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <15>;
+               };
+
+               wlan_mem: wlan-region@8bc00000 {
+                       reg = <0x0 0x8bc00000 0x0 0x180000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss-region@8d800000 {
+                       reg = <0x0 0x8d800000 0x0 0x3000000>;
+                       no-map;
+               };
+
+               adsp_mem: adsp-region@90800000 {
+                       reg = <0x0 0x90800000 0x0 0x1c00000>;
+                       no-map;
+               };
+
+               gpu_mem: gpu-region@98715000 {
+                       reg = <0x0 0x98715000 0x0 0x2000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp-region@98900000 {
+                       reg = <0x0 0x98900000 0x0 0x1400000>;
+                       no-map;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+       };
+
+       vreg_s4a_1p8: pm8150-s4-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_s4a_1p8";
+
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+
+               vin-supply = <&vph_pwr>;
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pmc8180-rpmh-regulators";
+               qcom,pmic-id = "a";
+
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;
+
+               vreg_s5a_2p0: smps5 {
+                       regulator-min-microvolt = <2040000>;
+                       regulator-max-microvolt = <2100000>;
+               };
+
+               vreg_l7a_1p8: ldo7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9a_1p3: ldo9 {
+                       regulator-min-microvolt = <1296000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12a_1p8: ldo12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pmc8180c-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-l2-l3-supply = <&vreg_s6c_1p35>;
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_s6c_1p35: smps6 {
+                       regulator-min-microvolt = <1350000>;
+                       regulator-max-microvolt = <1372000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_1p2: ldo3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_3p3: ldo10 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_3p3: ldo11 {
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob: bob {
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3350000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmc8180-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-l2-l10-supply = <&vreg_bob>;
+               vdd-l3-l4-l5-l18-supply = <&vreg_s4e_0p98>;
+               vdd-l7-l12-l14-l15-supply = <&vreg_s5e_2p05>;
+               vdd-l13-l16-l17-supply = <&vreg_bob>;
+
+               vreg_s4e_0p98: smps4 {
+                       regulator-min-microvolt = <992000>;
+                       regulator-max-microvolt = <992000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5e_2p05: smps5 {
+                       regulator-min-microvolt = <2040000>;
+                       regulator-max-microvolt = <2040000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1e_0p75: ldo1 {
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <752000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5e_0p88: ldo5 {
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7e_1p8: ldo7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10e_2p9: ldo10 {
+                       regulator-min-microvolt = <2904000>;
+                       regulator-max-microvolt = <2904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16e_3p0: ldo16 {
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               memory-region = <&gpu_mem>;
+               firmware-name = "qcom/sc8180x/qcdxkmsuc8180.mbn";
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+
+       pinctrl-0 = <&i2c1_active>, <&i2c1_hid_active>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       hid@10 {
+               compatible = "hid-over-i2c";
+               reg = <0x10>;
+               hid-descr-addr = <0x1>;
+
+               interrupts-extended = <&tlmm 122 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&i2c7 {
+       clock-frequency = <100000>;
+
+       pinctrl-0 = <&i2c7_active>, <&i2c7_hid_active>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       hid@5 {
+               compatible = "hid-over-i2c";
+               reg = <0x5>;
+               hid-descr-addr = <0x20>;
+
+               interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       hid@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+               hid-descr-addr = <0x20>;
+
+               interrupts-extended = <&tlmm 24 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_edp {
+       data-lanes = <0 1 2 3>;
+
+       pinctrl-0 = <&edp_hpd_active>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       aux-bus {
+               panel {
+                       compatible = "edp-panel";
+                       no-hpd;
+
+                       backlight = <&backlight>;
+
+                       ports {
+                               port {
+                                       auo_b140han06_in: endpoint {
+                                               remote-endpoint = <&mdss_edp_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       ports {
+               port@1 {
+                       reg = <1>;
+                       mdss_edp_out: endpoint {
+                               remote-endpoint = <&auo_b140han06_in>;
+                       };
+               };
+       };
+};
+
+&pcie3 {
+       perst-gpio = <&tlmm 178 GPIO_ACTIVE_LOW>;
+       wake-gpio = <&tlmm 180 GPIO_ACTIVE_HIGH>;
+       pinctrl-0 = <&pcie3_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie3_phy {
+       vdda-phy-supply = <&vreg_l5e_0p88>;
+       vdda-pll-supply = <&vreg_l3c_1p2>;
+
+       status = "okay";
+};
+
+&pmc8180c_lpg {
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&qupv3_id_2 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       memory-region = <&adsp_mem>;
+       firmware-name = "qcom/sc8180x/LENOVO/82AK/qcadsp8180.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       memory-region = <&cdsp_mem>;
+       firmware-name = "qcom/sc8180x/LENOVO/82AK/qccdsp8180.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       memory-region = <&mpss_mem>;
+       firmware-name = "qcom/sc8180x/LENOVO/82AK/qcmpss8180_nm.mbn";
+
+       status = "okay";
+};
+
+&uart13 {
+       pinctrl-0 = <&uart13_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn3998-bt";
+
+               vddio-supply = <&vreg_s4a_1p8>;
+               vddxo-supply = <&vreg_l7a_1p8>;
+               vddrf-supply = <&vreg_l9a_1p3>;
+               vddch0-supply = <&vreg_l11c_3p3>;
+               max-speed = <3200000>;
+       };
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 190 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l10e_2p9>;
+       vcc-max-microamp = <155000>;
+
+       vccq2-supply = <&vreg_l7e_1p8>;
+       vccq2-max-microamp = <425000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l5e_0p88>;
+       vdda-pll-supply = <&vreg_l3c_1p2>;
+
+       status = "okay";
+};
+
+&usb_prim_hsphy {
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l16e_3p0>;
+
+       status = "okay";
+};
+
+&usb_prim_qmpphy {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+
+       status = "okay";
+};
+
+&usb_prim {
+       status = "okay";
+};
+
+&usb_prim_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_sec_hsphy {
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l16e_3p0>;
+
+       status = "okay";
+};
+
+&usb_sec_qmpphy {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+
+       status = "okay";
+};
+
+&usb_sec {
+       status = "okay";
+};
+
+&usb_sec_dwc3 {
+       dr_mode = "host";
+};
+
+&wifi {
+       memory-region = <&wlan_mem>;
+
+       vdd-0.8-cx-mx-supply = <&vreg_l1e_0p75>;
+       vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
+       vdd-1.3-rfa-supply = <&vreg_l9a_1p3>;
+       vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
+       vdd-3.3-ch1-supply = <&vreg_l10c_3p3>;
+
+       status = "okay";
+};
+
+&xo_board_clk {
+       clock-frequency = <38400000>;
+};
+
+/* PINCTRL */
+
+&pmc8180c_gpios {
+       bl_pwm_default: bl-pwm-default-state {
+               en-pins {
+                       pins = "gpio8";
+                       function = "normal";
+               };
+
+               pwm-pins {
+                       pins = "gpio10";
+                       function = "func1";
+               };
+       };
+};
+
+&tlmm {
+       gpio-reserved-ranges = <0 4>, <47 4>, <126 4>;
+
+       edp_hpd_active: epd-hpd-active-state {
+               pins = "gpio10";
+               function = "edp_hot";
+       };
+
+       hall_int_active_state: hall-int-active-state {
+               pins = "gpio121";
+               function = "gpio";
+
+               input-enable;
+               bias-disable;
+       };
+
+       i2c1_active: i2c1-active-state {
+               pins = "gpio114", "gpio115";
+               function = "qup1";
+
+               bias-pull-up = <1>;
+               drive-strength = <2>;
+       };
+
+       i2c1_hid_active: i2c1-hid-active-state {
+               pins = "gpio122";
+               function = "gpio";
+
+               input-enable;
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
+       i2c7_active: i2c7-active-state {
+               pins = "gpio98", "gpio99";
+               function = "qup7";
+
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
+       i2c7_hid_active: i2c7-hid-active-state {
+               pins = "gpio37", "gpio24";
+               function = "gpio";
+
+               input-enable;
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
+       pcie3_default_state: pcie3-default-state {
+               clkreq-pins {
+                       pins = "gpio179";
+                       function = "pci_e3";
+                       bias-pull-up;
+               };
+
+               reset-n-pins {
+                       pins = "gpio178";
+                       function = "gpio";
+
+                       drive-strength = <2>;
+                       output-low;
+                       bias-pull-down;
+               };
+
+               wake-n-pins {
+                       pins = "gpio180";
+                       function = "gpio";
+
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       uart13_state: uart13-state {
+               cts-pins {
+                       pins = "gpio43";
+                       function = "qup13";
+                       bias-pull-down;
+               };
+
+               rts-tx-pins {
+                       pins = "gpio44", "gpio45";
+                       function = "qup13";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               rx-pins {
+                       pins = "gpio46";
+                       function = "qup13";
+                       bias-pull-up;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/qcom/sc8180x-pmics.dtsi b/arch/arm64/boot/dts/qcom/sc8180x-pmics.dtsi
new file mode 100644 (file)
index 0000000..8247af0
--- /dev/null
@@ -0,0 +1,326 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021-2023, Linaro Limited
+ */
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+#include <dt-bindings/iio/qcom,spmi-vadc.h>
+
+/ {
+       thermal-zones {
+               pmc8180-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pmc8180_temp>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+
+                               trip2 {
+                                       temperature = <145000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               pmc8180c-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pmc8180c_temp>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+
+                               trip2 {
+                                       temperature = <145000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
+
+&spmi_bus {
+       pmc8180_0: pmic@0 {
+               compatible = "qcom,pm8150", "qcom,spmi-pmic";
+               reg = <0x0 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pon: power-on@800 {
+                       compatible = "qcom,pm8916-pon";
+                       reg = <0x0800>;
+                       pwrkey {
+                               compatible = "qcom,pm8941-pwrkey";
+                               interrupts = <0x0 0x8 0x0 IRQ_TYPE_EDGE_BOTH>;
+                               debounce = <15625>;
+                               bias-pull-up;
+                               linux,code = <KEY_POWER>;
+
+                               status = "disabled";
+                       };
+               };
+
+               pmc8180_temp: temp-alarm@2400 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0x2400>;
+                       interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       io-channels = <&pmc8180_adc ADC5_DIE_TEMP>;
+                       io-channel-names = "thermal";
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmc8180_adc: adc@3100 {
+                       compatible = "qcom,spmi-adc5";
+                       reg = <0x3100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #io-channel-cells = <1>;
+                       interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+
+                       ref-gnd@0 {
+                               reg = <ADC5_REF_GND>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "ref_gnd";
+                       };
+
+                       vref-1p25@1 {
+                               reg = <ADC5_1P25VREF>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "vref_1p25";
+                       };
+
+                       die-temp@6 {
+                               reg = <ADC5_DIE_TEMP>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "die_temp";
+                       };
+               };
+
+               pmc8180_adc_tm: adc-tm@3500 {
+                       compatible = "qcom,spmi-adc-tm5";
+                       reg = <0x3500>;
+                       interrupts = <0x0 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
+                       #thermal-sensor-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rtc@6000 {
+                       compatible = "qcom,pm8941-rtc";
+                       reg = <0x6000>;
+                       reg-names = "rtc", "alarm";
+                       interrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>;
+               };
+
+               pmc8180_gpios: gpio@c000 {
+                       compatible = "qcom,pmc8180-gpio";
+                       reg = <0xc000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       pmic@1 {
+               compatible = "qcom,pmc8180", "qcom,spmi-pmic";
+               reg = <0x1 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       pmic@2 {
+               compatible = "qcom,smb2351", "qcom,spmi-pmic";
+               reg = <0x2 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               adc@3100 {
+                       compatible = "qcom,spmi-adc-rev2";
+                       reg = <0x3100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #io-channel-cells = <1>;
+                       interrupts = <0x2 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+
+                       ref-gnd@0 {
+                               reg = <ADC5_REF_GND>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "ref_gnd";
+                       };
+
+                       vref-1p25@1 {
+                               reg = <ADC5_1P25VREF>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "vref_1p25";
+                       };
+
+                       vcoin@85 {
+                               reg = <0x85>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "vcoin2";
+                       };
+               };
+       };
+
+       pmic@6 {
+               compatible = "qcom,pm8150c", "qcom,spmi-pmic";
+               reg = <0x6 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       pmic@8 {
+               compatible = "qcom,pm8150", "qcom,spmi-pmic";
+               reg = <0x8 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       pmic@a {
+               compatible = "qcom,smb2351", "qcom,spmi-pmic";
+               reg = <0xa SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               adc@3100 {
+                       compatible = "qcom,spmi-adc-rev2";
+                       reg = <0x3100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #io-channel-cells = <1>;
+                       interrupts = <0xa 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+
+                       ref-gnd@0 {
+                               reg = <ADC5_REF_GND>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "ref_gnd";
+                       };
+
+                       vref-1p25@1 {
+                               reg = <ADC5_1P25VREF>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "vref_1p25";
+                       };
+
+                       vcoin@85 {
+                               reg = <0x85>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "vcoin";
+                       };
+               };
+       };
+
+       pmic@4 {
+               compatible = "qcom,pm8150c", "qcom,spmi-pmic";
+               reg = <0x4 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               power-on@800 {
+                       compatible = "qcom,pm8916-pon";
+                       reg = <0x0800>;
+
+                       status = "disabled";
+               };
+
+               pmc8180c_temp: temp-alarm@2400 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0x2400>;
+                       interrupts = <0x4 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       io-channels = <&pmc8180c_adc ADC5_DIE_TEMP>;
+                       io-channel-names = "thermal";
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmc8180c_adc: adc@3100 {
+                       compatible = "qcom,spmi-adc5";
+                       reg = <0x3100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #io-channel-cells = <1>;
+                       interrupts = <0x4 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+
+                       ref-gnd@0 {
+                               reg = <ADC5_REF_GND>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "ref_gnd";
+                       };
+
+                       vref-1p25@1 {
+                               reg = <ADC5_1P25VREF>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "vref_1p25";
+                       };
+
+                       die-temp@6 {
+                               reg = <ADC5_DIE_TEMP>;
+                               qcom,pre-scaling = <1 1>;
+                               label = "die_temp";
+                       };
+               };
+
+               pmc8180c_adc_tm: adc-tm@3500 {
+                       compatible = "qcom,spmi-adc-tm5";
+                       reg = <0x3500>;
+                       interrupts = <0x4 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
+                       #thermal-sensor-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               pmc8180c_gpios: gpio@c000 {
+                       compatible = "qcom,pmc8180c-gpio";
+                       reg = <0xc000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       pmic@5 {
+               compatible = "qcom,pmc8180c", "qcom,spmi-pmic";
+               reg = <0x5 SPMI_USID>;
+
+               pmc8180c_lpg: lpg {
+                       compatible = "qcom,pmc8180c-lpg";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #pwm-cells = <2>;
+
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/qcom/sc8180x-primus.dts b/arch/arm64/boot/dts/qcom/sc8180x-primus.dts
new file mode 100644 (file)
index 0000000..cca663b
--- /dev/null
@@ -0,0 +1,706 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020-2023, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sc8180x.dtsi"
+#include "sc8180x-pmics.dtsi"
+
+/ {
+       model = "Qualcomm SC8180x Primus";
+       compatible = "qcom,sc8180x-primus", "qcom,sc8180x";
+
+       aliases {
+               serial0 = &uart12;
+               serial1 = &uart13;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pmc8180c_lpg 4 1000000>;
+               enable-gpios = <&pmc8180c_gpios 8 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&bl_pwm_default>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&hall_int_active_state>;
+
+               lid-switch {
+                       gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       wakeup-source;
+                       wakeup-event-action = <EV_ACT_DEASSERTED>;
+               };
+       };
+
+       reserved-memory {
+               rmtfs_mem: rmtfs-region@85500000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0x85500000 0x0 0x200000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <15>;
+               };
+
+               wlan_mem: wlan-region@8bc00000 {
+                       reg = <0x0 0x8bc00000 0x0 0x180000>;
+                       no-map;
+               };
+
+               adsp_mem: adsp-region@96e00000 {
+                       reg = <0x0 0x96e00000 0x0 0x1c00000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss-region@8d800000 {
+                       reg = <0x0 0x8d800000 0x0 0x9600000>;
+                       no-map;
+               };
+
+               gpu_mem: gpu-region@98a00000 {
+                       reg = <0x0 0x98a00000 0x0 0x2000>;
+                       no-map;
+               };
+
+               reserved-region@9a500000 {
+                       reg = <0x0 0x9a500000 0x0 0x600000>;
+                       no-map;
+               };
+       };
+
+       vreg_nvme_0p9: nvme-0p9-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_nvme_0p9";
+
+               regulator-min-microvolt = <900000>;
+               regulator-max-microvolt = <900000>;
+
+               regulator-always-on;
+       };
+
+       vreg_nvme_3p3: nvme-3p3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_nvme_3p3";
+
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pmc8180c_gpios 11 0>;
+               enable-active-high;
+
+               regulator-always-on;
+       };
+
+       vdd_kb_tp_3v3: vdd-kb-tp-3v3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_kb_tp_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 4 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               regulator-always-on;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&kb_tp_3v3_en_active_state>;
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+       };
+
+       vreg_s4a_1p8: pm8150-s4 {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_s4a_1p8";
+
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+
+               vin-supply = <&vph_pwr>;
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pmc8180-rpmh-regulators";
+               qcom,pmic-id = "a";
+
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;
+
+               vreg_s5a_2p0: smps5 {
+                       regulator-min-microvolt = <2040000>;
+                       regulator-max-microvolt = <2100000>;
+               };
+
+               vreg_l7a_1p8: ldo7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9a_1p3: ldo9 {
+                       regulator-min-microvolt = <1296000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12a_1p8: ldo12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pmc8180c-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-l2-l3-supply = <&vreg_s6c_1p35>;
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_s6c_1p35: smps6 {
+                       regulator-min-microvolt = <1350000>;
+                       regulator-max-microvolt = <1372000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s8c_1p8: smps8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-always-on;
+               };
+
+               vreg_l3c_1p2: ldo3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_3p3: ldo4 {
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_3p3: ldo10 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_3p3: ldo11 {
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob: bob {
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3350000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmc8180-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-l2-l10-supply = <&vreg_bob>;
+               vdd-l3-l4-l5-l18-supply = <&vreg_s4e_0p98>;
+               vdd-l7-l12-l14-l15-supply = <&vreg_s5e_2p05>;
+               vdd-l13-l16-l17-supply = <&vreg_bob>;
+
+               vreg_s4e_0p98: smps4 {
+                       regulator-min-microvolt = <992000>;
+                       regulator-max-microvolt = <992000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5e_2p05: smps5 {
+                       regulator-min-microvolt = <2040000>;
+                       regulator-max-microvolt = <2040000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1e_0p75: ldo1 {
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <752000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5e_0p88: ldo5 {
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7e_1p8: ldo7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10e_2p9: ldo10 {
+                       regulator-min-microvolt = <2904000>;
+                       regulator-max-microvolt = <2904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12e: ldo12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16e_3p0: ldo16 {
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&dispcc {
+       status = "okay";
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               memory-region = <&gpu_mem>;
+               firmware-name = "qcom/sc8180x/qcdxkmsuc8180.mbn";
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&ts_i2c_active_state>;
+
+       status = "okay";
+
+       touchscreen@10 {
+               compatible = "hid-over-i2c";
+               reg = <0x10>;
+               hid-descr-addr = <0x1>;
+
+               vdd-supply = <&vreg_l4c_3p3>;
+               vddl-supply = <&vreg_l12e>;
+
+               post-power-on-delay-ms = <20>;
+
+               interrupts-extended = <&tlmm 122 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_active_state>;
+       };
+};
+
+&i2c7 {
+       clock-frequency = <100000>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&aux_i2c_active_state>;
+
+       status = "okay";
+
+       touchpad@15 {
+               compatible = "hid-over-i2c";
+               reg = <0x15>;
+               hid-descr-addr = <0x1>;
+
+               interrupts-extended = <&tlmm 24 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&tp_int_active_state>;
+
+               vdd-supply = <&vdd_kb_tp_3v3>;
+       };
+
+       keyboard@3a {
+               compatible = "hid-over-i2c";
+               reg = <0x3a>;
+               hid-descr-addr = <0x1>;
+               interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&kb_int_active_state>;
+
+               vdd-supply = <&vdd_kb_tp_3v3>;
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_edp {
+       data-lanes = <0 1 2 3>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&edp_hpd_active>;
+
+       status = "okay";
+
+       aux-bus {
+               panel {
+                       compatible = "edp-panel";
+
+                       backlight = <&backlight>;
+
+                       ports {
+                               port {
+                                       auo_b133han05_in: endpoint {
+                                               remote-endpoint = <&mdss_edp_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       ports {
+               port@1 {
+                       reg = <1>;
+                       mdss_edp_out: endpoint {
+                               remote-endpoint = <&auo_b133han05_in>;
+                       };
+               };
+       };
+};
+
+&pcie1 {
+       perst-gpio = <&tlmm 175 GPIO_ACTIVE_LOW>;
+       wake-gpio = <&tlmm 177 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_default_state>;
+
+       status = "okay";
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l5e_0p88>;
+       vdda-pll-supply = <&vreg_l3c_1p2>;
+
+       status = "okay";
+};
+
+&pmc8180c_lpg {
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&qupv3_id_2 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       memory-region = <&adsp_mem>;
+       firmware-name = "qcom/sc8180x/qcadsp8180.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       memory-region = <&mpss_mem>;
+       firmware-name = "qcom/sc8180x/qcmpss8180.mbn";
+
+       status = "okay";
+};
+
+&uart12 {
+       compatible = "qcom,geni-debug-uart";
+       status = "okay";
+};
+
+&uart13 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart13_state>;
+
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn3998-bt";
+
+               vddio-supply = <&vreg_s4a_1p8>;
+               vddxo-supply = <&vreg_l7a_1p8>;
+               vddrf-supply = <&vreg_l9a_1p3>;
+               vddch0-supply = <&vreg_l11c_3p3>;
+               max-speed = <3200000>;
+       };
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 190 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l10e_2p9>;
+       vcc-max-microamp = <155000>;
+
+       vccq2-supply = <&vreg_l7e_1p8>;
+       vccq2-max-microamp = <425000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l5e_0p88>;
+       vdda-pll-supply = <&vreg_l3c_1p2>;
+
+       status = "okay";
+};
+
+&usb_prim_hsphy {
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l16e_3p0>;
+
+       status = "okay";
+};
+
+&usb_prim_qmpphy {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+
+       status = "okay";
+};
+
+&usb_prim {
+       status = "okay";
+};
+
+&usb_prim_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_sec_hsphy {
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l16e_3p0>;
+
+       status = "okay";
+};
+
+&usb_sec_qmpphy {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+
+       status = "okay";
+};
+
+&usb_sec {
+       status = "okay";
+};
+
+&usb_sec_dwc3 {
+       dr_mode = "host";
+};
+
+&wifi {
+       memory-region = <&wlan_mem>;
+
+       vdd-0.8-cx-mx-supply = <&vreg_l1e_0p75>;
+       vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
+       vdd-1.3-rfa-supply = <&vreg_l9a_1p3>;
+       vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
+       vdd-3.3-ch1-supply = <&vreg_l10c_3p3>;
+
+       status = "okay";
+};
+
+&xo_board_clk {
+       clock-frequency = <38400000>;
+};
+
+/* PINCTRL */
+
+&pmc8180c_gpios {
+       bl_pwm_default: bl-pwm-default-state {
+               en-pins {
+                       pins = "gpio8";
+                       function = "normal";
+               };
+
+               pwm-pins {
+                       pins = "gpio10";
+                       function = "func1";
+               };
+       };
+};
+
+&tlmm {
+       gpio-reserved-ranges = <0 4>, <47 4>, <126 4>;
+
+       aux_i2c_active_state: aux-i2c-active-state {
+               pins = "gpio98", "gpio99";
+               function = "qup7";
+
+               bias-disable;
+               drive-strength = <16>;
+       };
+
+       edp_hpd_active: epd-hpd-active-state {
+               pins = "gpio10";
+               function = "edp_hot";
+       };
+
+       hall_int_active_state: hall-int-active-state {
+               pins = "gpio121";
+               function = "gpio";
+
+               input-enable;
+               bias-disable;
+       };
+
+       kb_int_active_state: kb-int-active-state {
+               int-n-pins {
+                       pins = "gpio37";
+                       function = "gpio";
+
+                       bias-pull-up;
+                       intput-enable;
+               };
+
+               kp-disable-pins {
+                       pins = "gpio135";
+                       function = "gpio";
+
+                       output-high;
+               };
+       };
+
+       kb_tp_3v3_en_active_state: kb-tp-3v3-en-active-state {
+               pins = "gpio4";
+               function = "gpio";
+
+               bias-disable;
+       };
+
+       pcie2_default_state: pcie2-default-state {
+               clkreq-pins {
+                       pins = "gpio176";
+                       function = "pci_e2";
+                       bias-pull-up;
+               };
+
+               reset-n-pins {
+                       pins = "gpio175";
+                       function = "gpio";
+
+                       drive-strength = <2>;
+                       output-low;
+                       bias-pull-down;
+               };
+
+               wake-n-pins {
+                       pins = "gpio177";
+                       function = "gpio";
+
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       tp_int_active_state: tp-int-active-state {
+               tp-int-pins {
+                       pins = "gpio24";
+                       function = "gpio";
+
+                       bias-disable;
+                       input-enable;
+               };
+
+               tp-close-n-pins {
+                       pins = "gpio116";
+                       function = "gpio";
+
+                       bias-disable;
+                       input-enable;
+               };
+       };
+
+       ts_active_state: ts-active-state {
+               int-n-pins {
+                       pins = "gpio122";
+                       function = "gpio";
+
+                       input-enable;
+                       bias-disable;
+               };
+
+               reset-n-pins {
+                       pins = "gpio54";
+                       function = "gpio";
+
+                       output-high;
+               };
+       };
+
+       ts_i2c_active_state: ts-i2c-active-state {
+               pins = "gpio114", "gpio115";
+               function = "qup1";
+
+               /* External pull up */
+               bias-disable;
+               drive-strength = <2>;
+       };
+
+       uart13_state: uart13-state {
+               cts-pins {
+                       pins = "gpio43";
+                       function = "qup13";
+                       bias-pull-down;
+               };
+
+               rts-tx-pins {
+                       pins = "gpio44", "gpio45";
+                       function = "qup13";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               rx-pins {
+                       pins = "gpio46";
+                       function = "qup13";
+                       bias-pull-up;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qcom/sc8180x.dtsi
new file mode 100644 (file)
index 0000000..e8613a0
--- /dev/null
@@ -0,0 +1,4030 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020-2023, Linaro Limited
+ */
+
+#include <dt-bindings/clock/qcom,dispcc-sm8250.h>
+#include <dt-bindings/clock/qcom,gcc-sc8180x.h>
+#include <dt-bindings/clock/qcom,gpucc-sm8150.h>
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/interconnect/qcom,osm-l3.h>
+#include <dt-bindings/interconnect/qcom,sc8180x.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+       interrupt-parent = <&intc>;
+
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       clocks {
+               xo_board_clk: xo-board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <38400000>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32764>;
+                       clock-output-names = "sleep_clk";
+               };
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               CPU0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <602>;
+                       next-level-cache = <&L2_0>;
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 3 &mc_virt SLAVE_EBI_CH0 3>,
+                                       <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD0>;
+                       power-domain-names = "psci";
+                       #cooling-cells = <2>;
+                       clocks = <&cpufreq_hw 0>;
+
+                       L2_0: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+                               L3_0: l3-cache {
+                                       compatible = "cache";
+                                       cache-level = <3>;
+                               };
+                       };
+               };
+
+               CPU1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <602>;
+                       next-level-cache = <&L2_100>;
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 3 &mc_virt SLAVE_EBI_CH0 3>,
+                                       <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD1>;
+                       power-domain-names = "psci";
+                       #cooling-cells = <2>;
+                       clocks = <&cpufreq_hw 0>;
+
+                       L2_100: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+                       };
+
+               };
+
+               CPU2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x200>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <602>;
+                       next-level-cache = <&L2_200>;
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 3 &mc_virt SLAVE_EBI_CH0 3>,
+                                       <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD2>;
+                       power-domain-names = "psci";
+                       #cooling-cells = <2>;
+                       clocks = <&cpufreq_hw 0>;
+
+                       L2_200: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x300>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <602>;
+                       next-level-cache = <&L2_300>;
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 3 &mc_virt SLAVE_EBI_CH0 3>,
+                                       <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD3>;
+                       power-domain-names = "psci";
+                       #cooling-cells = <2>;
+                       clocks = <&cpufreq_hw 0>;
+
+                       L2_300: l2-cache {
+                               compatible = "cache";
+                               cache-unified;
+                               cache-level = <2>;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x400>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       next-level-cache = <&L2_400>;
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+                       operating-points-v2 = <&cpu4_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 3 &mc_virt SLAVE_EBI_CH0 3>,
+                                       <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD4>;
+                       power-domain-names = "psci";
+                       #cooling-cells = <2>;
+                       clocks = <&cpufreq_hw 1>;
+
+                       L2_400: l2-cache {
+                               compatible = "cache";
+                               cache-unified;
+                               cache-level = <2>;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x500>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       next-level-cache = <&L2_500>;
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+                       operating-points-v2 = <&cpu4_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 3 &mc_virt SLAVE_EBI_CH0 3>,
+                                       <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD5>;
+                       power-domain-names = "psci";
+                       #cooling-cells = <2>;
+                       clocks = <&cpufreq_hw 1>;
+
+                       L2_500: l2-cache {
+                               compatible = "cache";
+                               cache-unified;
+                               cache-level = <2>;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU6: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x600>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       next-level-cache = <&L2_600>;
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+                       operating-points-v2 = <&cpu4_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 3 &mc_virt SLAVE_EBI_CH0 3>,
+                                       <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD6>;
+                       power-domain-names = "psci";
+                       #cooling-cells = <2>;
+                       clocks = <&cpufreq_hw 1>;
+
+                       L2_600: l2-cache {
+                               compatible = "cache";
+                               cache-unified;
+                               cache-level = <2>;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x700>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       next-level-cache = <&L2_700>;
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+                       operating-points-v2 = <&cpu4_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 3 &mc_virt SLAVE_EBI_CH0 3>,
+                                       <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD7>;
+                       power-domain-names = "psci";
+                       #cooling-cells = <2>;
+                       clocks = <&cpufreq_hw 1>;
+
+                       L2_700: l2-cache {
+                               compatible = "cache";
+                               cache-unified;
+                               cache-level = <2>;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&CPU0>;
+                               };
+
+                               core1 {
+                                       cpu = <&CPU1>;
+                               };
+
+                               core2 {
+                                       cpu = <&CPU2>;
+                               };
+
+                               core3 {
+                                       cpu = <&CPU3>;
+                               };
+
+                               core4 {
+                                       cpu = <&CPU4>;
+                               };
+
+                               core5 {
+                                       cpu = <&CPU5>;
+                               };
+
+                               core6 {
+                                       cpu = <&CPU6>;
+                               };
+
+                               core7 {
+                                       cpu = <&CPU7>;
+                               };
+                       };
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <355>;
+                               exit-latency-us = <909>;
+                               min-residency-us = <3934>;
+                               local-timer-stop;
+                       };
+
+                       BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <241>;
+                               exit-latency-us = <1461>;
+                               min-residency-us = <4488>;
+                               local-timer-stop;
+                       };
+               };
+
+               domain-idle-states {
+                       CLUSTER_SLEEP_0: cluster-sleep-0 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x4100c244>;
+                               entry-latency-us = <3263>;
+                               exit-latency-us = <6562>;
+                               min-residency-us = <9987>;
+                       };
+               };
+       };
+
+       cpu0_opp_table: opp-table-cpu0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-peak-kBps = <800000 9600000>;
+               };
+
+               opp-422400000 {
+                       opp-hz = /bits/ 64 <422400000>;
+                       opp-peak-kBps = <800000 9600000>;
+               };
+
+               opp-537600000 {
+                       opp-hz = /bits/ 64 <537600000>;
+                       opp-peak-kBps = <800000 12902400>;
+               };
+
+               opp-652800000 {
+                       opp-hz = /bits/ 64 <652800000>;
+                       opp-peak-kBps = <800000 12902400>;
+               };
+
+               opp-768000000 {
+                       opp-hz = /bits/ 64 <768000000>;
+                       opp-peak-kBps = <800000 15974400>;
+               };
+
+               opp-883200000 {
+                       opp-hz = /bits/ 64 <883200000>;
+                       opp-peak-kBps = <1804000 19660800>;
+               };
+
+               opp-998400000 {
+                       opp-hz = /bits/ 64 <998400000>;
+                       opp-peak-kBps = <1804000 19660800>;
+               };
+
+               opp-1113600000 {
+                       opp-hz = /bits/ 64 <1113600000>;
+                       opp-peak-kBps = <1804000 22732800>;
+               };
+
+               opp-1228800000 {
+                       opp-hz = /bits/ 64 <1228800000>;
+                       opp-peak-kBps = <1804000 22732800>;
+               };
+
+               opp-1363200000 {
+                       opp-hz = /bits/ 64 <1363200000>;
+                       opp-peak-kBps = <2188000 25804800>;
+               };
+
+               opp-1478400000 {
+                       opp-hz = /bits/ 64 <1478400000>;
+                       opp-peak-kBps = <2188000 31948800>;
+               };
+
+               opp-1574400000 {
+                       opp-hz = /bits/ 64 <1574400000>;
+                       opp-peak-kBps = <3072000 31948800>;
+               };
+
+               opp-1670400000 {
+                       opp-hz = /bits/ 64 <1670400000>;
+                       opp-peak-kBps = <3072000 31948800>;
+               };
+
+               opp-1766400000 {
+                       opp-hz = /bits/ 64 <1766400000>;
+                       opp-peak-kBps = <3072000 31948800>;
+               };
+       };
+
+       cpu4_opp_table: opp-table-cpu4 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-825600000 {
+                       opp-hz = /bits/ 64 <825600000>;
+                       opp-peak-kBps = <1804000 15974400>;
+               };
+
+               opp-940800000 {
+                       opp-hz = /bits/ 64 <940800000>;
+                       opp-peak-kBps = <2188000 19660800>;
+               };
+
+               opp-1056000000 {
+                       opp-hz = /bits/ 64 <1056000000>;
+                       opp-peak-kBps = <2188000 22732800>;
+               };
+
+               opp-1171200000 {
+                       opp-hz = /bits/ 64 <1171200000>;
+                       opp-peak-kBps = <3072000 25804800>;
+               };
+
+               opp-1286400000 {
+                       opp-hz = /bits/ 64 <1286400000>;
+                       opp-peak-kBps = <3072000 31948800>;
+               };
+
+               opp-1420800000 {
+                       opp-hz = /bits/ 64 <1420800000>;
+                       opp-peak-kBps = <4068000 31948800>;
+               };
+
+               opp-1536000000 {
+                       opp-hz = /bits/ 64 <1536000000>;
+                       opp-peak-kBps = <4068000 31948800>;
+               };
+
+               opp-1651200000 {
+                       opp-hz = /bits/ 64 <1651200000>;
+                       opp-peak-kBps = <4068000 40550400>;
+               };
+
+               opp-1766400000 {
+                       opp-hz = /bits/ 64 <1766400000>;
+                       opp-peak-kBps = <4068000 40550400>;
+               };
+
+               opp-1881600000 {
+                       opp-hz = /bits/ 64 <1881600000>;
+                       opp-peak-kBps = <4068000 43008000>;
+               };
+
+               opp-1996800000 {
+                       opp-hz = /bits/ 64 <1996800000>;
+                       opp-peak-kBps = <6220000 43008000>;
+               };
+
+               opp-2131200000 {
+                       opp-hz = /bits/ 64 <2131200000>;
+                       opp-peak-kBps = <6220000 49152000>;
+               };
+
+               opp-2246400000 {
+                       opp-hz = /bits/ 64 <2246400000>;
+                       opp-peak-kBps = <7216000 49152000>;
+               };
+
+               opp-2361600000 {
+                       opp-hz = /bits/ 64 <2361600000>;
+                       opp-peak-kBps = <8368000 49152000>;
+               };
+
+               opp-2457600000 {
+                       opp-hz = /bits/ 64 <2457600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               opp-2553600000 {
+                       opp-hz = /bits/ 64 <2553600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               opp-2649600000 {
+                       opp-hz = /bits/ 64 <2649600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               opp-2745600000 {
+                       opp-hz = /bits/ 64 <2745600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               opp-2841600000 {
+                       opp-hz = /bits/ 64 <2841600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               opp-2918400000 {
+                       opp-hz = /bits/ 64 <2918400000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               opp-2995200000 {
+                       opp-hz = /bits/ 64 <2995200000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+       };
+
+       firmware {
+               scm: scm {
+                       compatible = "qcom,scm-sc8180x", "qcom,scm";
+               };
+       };
+
+       camnoc_virt: interconnect-camnoc-virt {
+               compatible = "qcom,sc8180x-camnoc-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       mc_virt: interconnect-mc-virt {
+               compatible = "qcom,sc8180x-mc-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       qup_virt: interconnect-qup-virt {
+               compatible = "qcom,sc8180x-qup-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the size */
+               reg = <0x0 0x80000000 0x0 0x0>;
+       };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+
+               CPU_PD0: power-domain-cpu0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD2: power-domain-cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD3: power-domain-cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD4: power-domain-cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD5: power-domain-cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD6: power-domain-cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD7: power-domain-cpu7 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CLUSTER_PD: power-domain-cpu-cluster0 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_SLEEP_0>;
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               hyp_mem: hyp@85700000 {
+                       reg = <0x0 0x85700000 0x0 0x600000>;
+                       no-map;
+               };
+
+               xbl_mem: xbl@85d00000 {
+                       reg = <0x0 0x85d00000 0x0 0x140000>;
+                       no-map;
+               };
+
+               aop_mem: aop@85f00000 {
+                       reg = <0x0 0x85f00000 0x0 0x20000>;
+                       no-map;
+               };
+
+               aop_cmd_db: cmd-db@85f20000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0x0 0x85f20000 0x0 0x20000>;
+                       no-map;
+               };
+
+               reserved@85f40000 {
+                       reg = <0x0 0x85f40000 0x0 0x10000>;
+                       no-map;
+               };
+
+               smem_mem: smem@86000000 {
+                       compatible = "qcom,smem";
+                       reg = <0x0 0x86000000 0x0 0x200000>;
+                       no-map;
+                       hwlocks = <&tcsr_mutex 3>;
+               };
+
+               reserved@86200000 {
+                       reg = <0x0 0x86200000 0x0 0x3900000>;
+                       no-map;
+               };
+
+               reserved@89b00000 {
+                       reg = <0x0 0x89b00000 0x0 0x1c00000>;
+                       no-map;
+               };
+
+               reserved@9d400000 {
+                       reg = <0x0 0x9d400000 0x0 0x1000000>;
+                       no-map;
+               };
+
+               reserved@9e400000 {
+                       reg = <0x0 0x9e400000 0x0 0x1400000>;
+                       no-map;
+               };
+
+               reserved@9f800000 {
+                       reg = <0x0 0x9f800000 0x0 0x800000>;
+                       no-map;
+               };
+       };
+
+       smp2p-cdsp {
+               compatible = "qcom,smp2p";
+               qcom,smem = <94>, <432>;
+
+               interrupts = <GIC_SPI 576 IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&apss_shared 6>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <5>;
+
+               cdsp_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               cdsp_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-lpass {
+               compatible = "qcom,smp2p";
+               qcom,smem = <443>, <429>;
+
+               interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&apss_shared 10>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <2>;
+
+               adsp_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               adsp_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-mpss {
+               compatible = "qcom,smp2p";
+               qcom,smem = <435>, <428>;
+
+               interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&apss_shared 14>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <1>;
+
+               modem_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               modem_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               modem_smp2p_ipa_out: ipa-ap-to-modem {
+                       qcom,entry-name = "ipa";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               modem_smp2p_ipa_in: ipa-modem-to-ap {
+                       qcom,entry-name = "ipa";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               modem_smp2p_wlan_in: wlan-wpss-to-ap {
+                       qcom,entry-name = "wlan";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-slpi {
+               compatible = "qcom,smp2p";
+               qcom,smem = <481>, <430>;
+
+               interrupts = <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&apss_shared 26>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <3>;
+
+               slpi_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               slpi_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       soc: soc@0 {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges = <0 0 0 0 0x10 0>;
+               dma-ranges = <0 0 0 0 0x10 0>;
+
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,gcc-sc8180x";
+                       reg = <0x0 0x00100000 0x0 0x1f0000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK_A>,
+                                <&sleep_clk>;
+                       clock-names = "bi_tcxo",
+                                     "bi_tcxo_ao",
+                                     "sleep_clk";
+               };
+
+               qupv3_id_0: geniqup@8c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0 0x008c0000 0 0x6000>;
+                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       clock-names = "m-ahb", "s-ahb";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       iommus = <&apps_smmu 0x4c3 0>;
+                       status = "disabled";
+
+                       i2c0: i2c@880000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00880000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi0: spi@880000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00880000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart0: serial@880000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00880000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@884000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00884000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi1: spi@884000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00884000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart1: serial@884000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00884000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@888000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00888000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi2: spi@888000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00888000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart2: serial@888000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00888000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@88c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x0088c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi3: spi@88c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0088c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart3: serial@88c000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x0088c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@890000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00890000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi4: spi@890000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00890000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart4: serial@890000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00890000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@894000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00894000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi5: spi@894000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00894000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart5: serial@894000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00894000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c6: i2c@898000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00898000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi6: spi@898000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00898000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart6: serial@898000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00898000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@89c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x0089c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi7: spi@89c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0089c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart7: serial@89c000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x0089c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+               };
+
+               qupv3_id_1: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00ac0000 0x0 0x6000>;
+                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+                       clock-names = "m-ahb", "s-ahb";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       iommus = <&apps_smmu 0x603 0>;
+                       status = "disabled";
+
+                       i2c8: i2c@a80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a80000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi8: spi@a80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a80000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart8: serial@a80000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00a80000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c9: i2c@a84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a84000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi9: spi@a84000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a84000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart9: serial@a84000 {
+                               compatible = "qcom,geni-debug-uart";
+                               reg = <0 0x00a84000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c10: i2c@a88000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a88000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi10: spi@a88000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a88000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart10: serial@a88000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00a88000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c11: i2c@a8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a8c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi11: spi@a8c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a8c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart11: serial@a8c000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00a8c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c12: i2c@a90000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a90000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi12: spi@a90000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a90000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart12: serial@a90000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00a90000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c16: i2c@a94000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a94000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi16: spi@a94000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a94000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart16: serial@a94000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00a94000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_1 0 &qup_virt SLAVE_QUP_CORE_1 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_1 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+               };
+
+               qupv3_id_2: geniqup@cc0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00cc0000 0x0 0x6000>;
+                       clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
+                       clock-names = "m-ahb", "s-ahb";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       iommus = <&apps_smmu 0x7a3 0>;
+                       status = "disabled";
+
+                       i2c17: i2c@c80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00c80000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi17: spi@c80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00c80000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart17: serial@c80000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00c80000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c18: i2c@c84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00c84000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi18: spi@c84000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00c84000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart18: serial@c84000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00c84000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c19: i2c@c88000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00c88000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi19: spi@c88000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00c88000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart19: serial@c88000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00c88000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c13: i2c@c8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00c8c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi13: spi@c8c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00c8c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart13: serial@c8c000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00c8c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c14: i2c@c90000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00c90000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi14: spi@c90000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00c90000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart14: serial@c90000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00c90000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c15: i2c@c94000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00c94000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi15: spi@c94000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00c94000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart15: serial@c94000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00c94000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&qup_virt MASTER_QUP_CORE_2 0 &qup_virt SLAVE_QUP_CORE_2 0>,
+                                               <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_2 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+               };
+
+               config_noc: interconnect@1500000 {
+                       compatible = "qcom,sc8180x-config-noc";
+                       reg = <0 0x01500000 0 0x7400>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               system_noc: interconnect@1620000 {
+                       compatible = "qcom,sc8180x-system-noc";
+                       reg = <0 0x01620000 0 0x19400>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre1_noc: interconnect@16e0000 {
+                       compatible = "qcom,sc8180x-aggre1-noc";
+                       reg = <0 0x016e0000 0 0xd080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre2_noc: interconnect@1700000 {
+                       compatible = "qcom,sc8180x-aggre2-noc";
+                       reg = <0 0x01700000 0 0x20000>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               compute_noc: interconnect@1720000 {
+                       compatible = "qcom,sc8180x-compute-noc";
+                       reg = <0 0x01720000 0 0x7000>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               mmss_noc: interconnect@1740000 {
+                       compatible = "qcom,sc8180x-mmss-noc";
+                       reg = <0 0x01740000 0 0x1c100>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               pcie0: pci@1c00000 {
+                       compatible = "qcom,pcie-sc8180x";
+                       reg = <0 0x01c00000 0 0x3000>,
+                             <0 0x60000000 0 0xf1d>,
+                             <0 0x60000f20 0 0xa8>,
+                             <0 0x60001000 0 0x1000>,
+                             <0 0x60100000 0 0x100000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config";
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <2>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x60200000 0x0 0x60200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>;
+
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
+                                <&gcc GCC_PCIE_0_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_CLKREF_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       clock-names = "pipe",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ref",
+                                     "tbu";
+
+                       assigned-clocks = <&gcc GCC_PCIE_0_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       iommus = <&apps_smmu 0x1d80 0x7f>;
+                       iommu-map = <0x0   &apps_smmu 0x1d80 0x1>,
+                                   <0x100 &apps_smmu 0x1d81 0x1>;
+
+                       resets = <&gcc GCC_PCIE_0_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_0_GDSC>;
+
+                       interconnects = <&aggre2_noc MASTER_PCIE 0 &mc_virt SLAVE_EBI_CH0 0>,
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_0 0>;
+                       interconnect-names = "pcie-mem", "cpu-pcie";
+
+                       phys = <&pcie0_lane>;
+                       phy-names = "pciephy";
+
+                       status = "disabled";
+               };
+
+               pcie0_phy: phy-wrapper@1c06000 {
+                       compatible = "qcom,sc8180x-qmp-pcie-phy";
+                       reg = <0 0x1c06000 0 0x1c0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_CLKREF_CLK>,
+                                <&gcc GCC_PCIE1_PHY_REFGEN_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE0_PHY_REFGEN_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie0_lane: phy@1c06200 {
+                               reg = <0 0x1c06200 0 0x170>, /* tx0 */
+                                     <0 0x1c06400 0 0x200>, /* rx0 */
+                                     <0 0x1c06a00 0 0x1f0>, /* pcs */
+                                     <0 0x1c06600 0 0x170>, /* tx1 */
+                                     <0 0x1c06800 0 0x200>, /* rx1 */
+                                     <0 0x1c06e00 0 0xf4>; /* pcs_com */
+                               clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #clock-cells = <0>;
+                               clock-output-names = "pcie_0_pipe_clk";
+                               #phy-cells = <0>;
+                       };
+               };
+
+               pcie3: pci@1c08000 {
+                       compatible = "qcom,pcie-sc8180x";
+                       reg = <0 0x01c08000 0 0x3000>,
+                             <0 0x40000000 0 0xf1d>,
+                             <0 0x40000f20 0 0xa8>,
+                             <0 0x40001000 0 0x1000>,
+                             <0 0x40100000 0 0x100000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config";
+                       device_type = "pci";
+                       linux,pci-domain = <3>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <2>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x40200000 0x0 0x40200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
+
+                       interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 434 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 435 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 438 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 439 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_3_PIPE_CLK>,
+                                <&gcc GCC_PCIE_3_AUX_CLK>,
+                                <&gcc GCC_PCIE_3_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_3_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_3_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_3_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_PCIE_3_CLKREF_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       clock-names = "pipe",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ref",
+                                     "tbu";
+
+                       assigned-clocks = <&gcc GCC_PCIE_3_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       iommus = <&apps_smmu 0x1e00 0x7f>;
+                       iommu-map = <0x0   &apps_smmu 0x1e00 0x1>,
+                                   <0x100 &apps_smmu 0x1e01 0x1>;
+
+                       resets = <&gcc GCC_PCIE_3_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_3_GDSC>;
+
+                       interconnects = <&aggre2_noc MASTER_PCIE_3 0 &mc_virt SLAVE_EBI_CH0 0>,
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_0 0>;
+                       interconnect-names = "pcie-mem", "cpu-pcie";
+
+                       phys = <&pcie3_lane>;
+                       phy-names = "pciephy";
+
+                       status = "disabled";
+               };
+
+               pcie3_phy: phy-wrapper@1c0c000 {
+                       compatible = "qcom,sc8180x-qmp-pcie-phy";
+                       reg = <0 0x1c0c000 0 0x1c0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_3_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_3_CLKREF_CLK>,
+                                <&gcc GCC_PCIE2_PHY_REFGEN_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_3_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE3_PHY_REFGEN_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie3_lane: phy@1c0c200 {
+                               reg = <0 0x1c0c200 0 0x170>, /* tx0 */
+                                     <0 0x1c0c400 0 0x200>, /* rx0 */
+                                     <0 0x1c0ca00 0 0x1f0>, /* pcs */
+                                     <0 0x1c0c600 0 0x170>, /* tx1 */
+                                     <0 0x1c0c800 0 0x200>, /* rx1 */
+                                     <0 0x1c0ce00 0 0xf4>; /* pcs_com */
+                               clocks = <&gcc GCC_PCIE_3_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #clock-cells = <0>;
+                               clock-output-names = "pcie_3_pipe_clk";
+                               #phy-cells = <0>;
+                       };
+               };
+
+               pcie1: pci@1c10000 {
+                       compatible = "qcom,pcie-sc8180x";
+                       reg = <0 0x01c10000 0 0x3000>,
+                             <0 0x68000000 0 0xf1d>,
+                             <0 0x68000f20 0 0xa8>,
+                             <0 0x68001000 0 0x1000>,
+                             <0 0x68100000 0 0x100000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config";
+                       device_type = "pci";
+                       linux,pci-domain = <1>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <2>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x68200000 0x0 0x68200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x68300000 0x0 0x68300000 0x0 0x3d00000>;
+
+                       interrupts = <GIC_SPI 755 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 747 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 746 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 745 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 744 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
+                                <&gcc GCC_PCIE_1_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_CLKREF_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       clock-names = "pipe",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ref",
+                                     "tbu";
+
+                       assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       iommus = <&apps_smmu 0x1c80 0x7f>;
+                       iommu-map = <0x0   &apps_smmu 0x1c80 0x1>,
+                                   <0x100 &apps_smmu 0x1c81 0x1>;
+
+                       resets = <&gcc GCC_PCIE_1_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_1_GDSC>;
+
+                       interconnects = <&aggre2_noc MASTER_PCIE_1 0 &mc_virt SLAVE_EBI_CH0 0>,
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_0 0>;
+                       interconnect-names = "pcie-mem", "cpu-pcie";
+
+                       phys = <&pcie1_lane>;
+                       phy-names = "pciephy";
+
+                       status = "disabled";
+               };
+
+               pcie1_phy: phy-wrapper@1c16000 {
+                       compatible = "qcom,sc8180x-qmp-pcie-phy";
+                       reg = <0 0x1c16000 0 0x1c0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_1_CLKREF_CLK>,
+                                <&gcc GCC_PCIE1_PHY_REFGEN_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_1_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE1_PHY_REFGEN_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie1_lane: phy@1c0e200 {
+                               reg = <0 0x1c16200 0 0x170>, /* tx0 */
+                                     <0 0x1c16400 0 0x200>, /* rx0 */
+                                     <0 0x1c16a00 0 0x1f0>, /* pcs */
+                                     <0 0x1c16600 0 0x170>, /* tx1 */
+                                     <0 0x1c16800 0 0x200>, /* rx1 */
+                                     <0 0x1c16e00 0 0xf4>; /* pcs_com */
+                               clocks = <&gcc GCC_PCIE_1_PIPE_CLK>;
+                               clock-names = "pipe0";
+                               #clock-cells = <0>;
+                               clock-output-names = "pcie_1_pipe_clk";
+
+                               #phy-cells = <0>;
+                       };
+               };
+
+               pcie2: pci@1c18000 {
+                       compatible = "qcom,pcie-sc8180x";
+                       reg = <0 0x01c18000 0 0x3000>,
+                             <0 0x70000000 0 0xf1d>,
+                             <0 0x70000f20 0 0xa8>,
+                             <0 0x70001000 0 0x1000>,
+                             <0 0x70100000 0 0x100000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config";
+                       device_type = "pci";
+                       linux,pci-domain = <2>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <4>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x70200000 0x0 0x70200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x70300000 0x0 0x70300000 0x0 0x3d00000>;
+
+                       interrupts = <GIC_SPI 671 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 663 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 662 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 661 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 660 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_2_PIPE_CLK>,
+                                <&gcc GCC_PCIE_2_AUX_CLK>,
+                                <&gcc GCC_PCIE_2_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_2_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_2_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_2_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_PCIE_2_CLKREF_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       clock-names = "pipe",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ref",
+                                     "tbu";
+
+                       assigned-clocks = <&gcc GCC_PCIE_2_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       iommus = <&apps_smmu 0x1d00 0x7f>;
+                       iommu-map = <0x0   &apps_smmu 0x1d00 0x1>,
+                                   <0x100 &apps_smmu 0x1d01 0x1>;
+
+                       resets = <&gcc GCC_PCIE_2_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_2_GDSC>;
+
+                       interconnects = <&aggre2_noc MASTER_PCIE_2 0 &mc_virt SLAVE_EBI_CH0 0>,
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_0 0>;
+                       interconnect-names = "pcie-mem", "cpu-pcie";
+
+                       phys = <&pcie2_lane>;
+                       phy-names = "pciephy";
+
+                       status = "disabled";
+               };
+
+               pcie2_phy: phy-wrapper@1c1c000 {
+                       compatible = "qcom,sc8180x-qmp-pcie-phy";
+                       reg = <0 0x1c1c000 0 0x1c0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_2_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_2_CLKREF_CLK>,
+                                <&gcc GCC_PCIE2_PHY_REFGEN_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_2_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE2_PHY_REFGEN_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie2_lane: phy@1c0e200 {
+                               reg = <0 0x1c1c200 0 0x170>, /* tx0 */
+                                     <0 0x1c1c400 0 0x200>, /* rx0 */
+                                     <0 0x1c1ca00 0 0x1f0>, /* pcs */
+                                     <0 0x1c1c600 0 0x170>, /* tx1 */
+                                     <0 0x1c1c800 0 0x200>, /* rx1 */
+                                     <0 0x1c1ce00 0 0xf4>; /* pcs_com */
+                               clocks = <&gcc GCC_PCIE_2_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #clock-cells = <0>;
+                               clock-output-names = "pcie_2_pipe_clk";
+
+                               #phy-cells = <0>;
+                       };
+               };
+
+               ufs_mem_hc: ufshc@1d84000 {
+                       compatible = "qcom,sc8180x-ufshc", "qcom,ufshc",
+                                    "jedec,ufs-2.0";
+                       reg = <0 0x01d84000 0 0x2500>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&ufs_mem_phy_lanes>;
+                       phy-names = "ufsphy";
+                       lanes-per-direction = <2>;
+                       #reset-cells = <1>;
+                       resets = <&gcc GCC_UFS_PHY_BCR>;
+                       reset-names = "rst";
+
+                       iommus = <&apps_smmu 0x300 0>;
+
+                       clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_UFS_PHY_AHB_CLK>,
+                                <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+                       clock-names = "core_clk",
+                                     "bus_aggr_clk",
+                                     "iface_clk",
+                                     "core_clk_unipro",
+                                     "ref_clk",
+                                     "tx_lane0_sync_clk",
+                                     "rx_lane0_sync_clk",
+                                     "rx_lane1_sync_clk";
+                       freq-table-hz = <37500000 300000000>,
+                                       <0 0>,
+                                       <0 0>,
+                                       <37500000 300000000>,
+                                       <0 0>,
+                                       <0 0>,
+                                       <0 0>,
+                                       <0 0>;
+
+                       status = "disabled";
+               };
+
+               ufs_mem_phy: phy-wrapper@1d87000 {
+                       compatible = "qcom,sc8180x-qmp-ufs-phy";
+                       reg = <0 0x01d87000 0 0x1c0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
+                       clock-names = "ref",
+                                     "ref_aux";
+
+                       resets = <&ufs_mem_hc 0>;
+                       reset-names = "ufsphy";
+                       status = "disabled";
+
+                       ufs_mem_phy_lanes: phy@1d87400 {
+                               reg = <0 0x01d87400 0 0x108>,
+                                     <0 0x01d87600 0 0x1e0>,
+                                     <0 0x01d87c00 0 0x1dc>,
+                                     <0 0x01d87800 0 0x108>,
+                                     <0 0x01d87a00 0 0x1e0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               ipa_virt: interconnect@1e00000 {
+                       compatible = "qcom,sc8180x-ipa-virt";
+                       reg = <0 0x01e00000 0 0x1000>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x0 0x01f40000 0x0 0x40000>;
+                       #hwlock-cells = <1>;
+               };
+
+               gpu: gpu@2c00000 {
+                       compatible = "qcom,adreno-680.1", "qcom,adreno";
+                       #stream-id-cells = <16>;
+
+                       reg = <0 0x02c00000 0 0x40000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+
+                       interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+
+                       iommus = <&adreno_smmu 0 0xc01>;
+
+                       operating-points-v2 = <&gpu_opp_table>;
+
+                       interconnects = <&gem_noc MASTER_GRAPHICS_3D 0 &mc_virt SLAVE_EBI_CH0 0>;
+                       interconnect-names = "gfx-mem";
+
+                       qcom,gmu = <&gmu>;
+                       status = "disabled";
+
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-514000000 {
+                                       opp-hz = /bits/ 64 <514000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                               };
+
+                               opp-500000000 {
+                                       opp-hz = /bits/ 64 <500000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                               };
+
+                               opp-461000000 {
+                                       opp-hz = /bits/ 64 <461000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                               };
+
+                               opp-405000000 {
+                                       opp-hz = /bits/ 64 <405000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                               };
+
+                               opp-315000000 {
+                                       opp-hz = /bits/ 64 <315000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                               };
+
+                               opp-256000000 {
+                                       opp-hz = /bits/ 64 <256000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+
+                               opp-177000000 {
+                                       opp-hz = /bits/ 64 <177000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+                       };
+               };
+
+               gmu: gmu@2c6a000 {
+                       compatible="qcom,adreno-gmu-680.1", "qcom,adreno-gmu";
+
+                       reg = <0 0x02c6a000 0 0x30000>,
+                             <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_AHB_CLK>,
+                                <&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 = "ahb", "gmu", "cxo", "axi", "memnoc";
+
+                       power-domains = <&gpucc GPU_CX_GDSC>,
+                                       <&gpucc GPU_GX_GDSC>;
+                       power-domain-names = "cx", "gx";
+
+                       iommus = <&adreno_smmu 5 0xc00>;
+
+                       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>;
+                               };
+
+                               opp-500000000 {
+                                       opp-hz = /bits/ 64 <500000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                               };
+                       };
+               };
+
+               gpucc: clock-controller@2c90000 {
+                       compatible = "qcom,sc8180x-gpucc";
+                       reg = <0 0x02c90000 0 0x9000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+                       clock-names = "bi_tcxo",
+                                     "gcc_gpu_gpll0_clk_src",
+                                     "gcc_gpu_gpll0_div_clk_src";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               adreno_smmu: iommu@2ca0000 {
+                       compatible = "qcom,sc8180x-smmu-500", "arm,mmu-500";
+                       reg = <0 0x02ca0000 0 0x10000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+                       interrupts = <GIC_SPI 674 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 688 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gpucc GPU_CC_AHB_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
+                       clock-names = "ahb", "bus", "iface";
+
+                       power-domains = <&gpucc GPU_CX_GDSC>;
+               };
+
+               tlmm: pinctrl@3100000 {
+                       compatible = "qcom,sc8180x-tlmm";
+                       reg = <0 0x03100000 0 0x300000>,
+                             <0 0x03500000 0 0x700000>,
+                             <0 0x03d00000 0 0x300000>;
+                       reg-names = "west", "east", "south";
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-ranges = <&tlmm 0 0 191>;
+                       wakeup-parent = <&pdc>;
+               };
+
+               remoteproc_mpss: remoteproc@4080000 {
+                       compatible = "qcom,sc8180x-mpss-pas";
+                       reg = <0x0 0x04080000 0x0 0x4040>;
+
+                       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 = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SC8180X_CX>,
+                                       <&rpmhpd SC8180X_MSS>;
+                       power-domain-names = "cx", "mss";
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&modem_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       glink-edge {
+                               interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
+                               label = "modem";
+                               qcom,remote-pid = <1>;
+                               mboxes = <&apss_shared 12>;
+                       };
+               };
+
+               remoteproc_cdsp: remoteproc@8300000 {
+                       compatible = "qcom,sc8180x-cdsp-pas";
+                       reg = <0x0 0x08300000 0x0 0x4040>;
+
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SC8180X_CX>;
+                       power-domain-names = "cx";
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&cdsp_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts = <GIC_SPI 574 IRQ_TYPE_EDGE_RISING>;
+                               label = "cdsp";
+                               qcom,remote-pid = <5>;
+                               mboxes = <&apss_shared 4>;
+                       };
+               };
+
+               usb_prim_hsphy: phy@88e2000 {
+                       compatible = "qcom,sc8180x-usb-hs-phy",
+                                    "qcom,usb-snps-hs-7nm-phy";
+                       reg = <0 0x088e2000 0 0x400>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+                       resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_sec_hsphy: phy@88e3000 {
+                       compatible = "qcom,sc8180x-usb-hs-phy",
+                                    "qcom,usb-snps-hs-7nm-phy";
+                       reg = <0 0x088e3000 0 0x400>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+                       resets = <&gcc GCC_QUSB2PHY_SEC_BCR>;
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_prim_qmpphy: phy@88e9000 {
+                       compatible = "qcom,sc8180x-qmp-usb3-dp-phy";
+                       reg = <0 0x088e9000 0 0x18c>,
+                             <0 0x088e8000 0 0x38>,
+                             <0 0x088ea000 0 0x40>;
+                       reg-names = "reg-base", "dp_com";
+                       clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
+                       clock-names = "aux",
+                                     "ref_clk_src",
+                                     "ref",
+                                     "com_aux";
+                       resets = <&gcc GCC_USB3_DP_PHY_PRIM_SP0_BCR>,
+                                <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>;
+                       reset-names = "phy", "common";
+
+                       #clock-cells = <1>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       usb_prim_ssphy: usb3-phy@88e9200 {
+                               reg = <0 0x088e9200 0 0x200>,
+                                     <0 0x088e9400 0 0x200>,
+                                     <0 0x088e9c00 0 0x218>,
+                                     <0 0x088e9600 0 0x200>,
+                                     <0 0x088e9800 0 0x200>,
+                                     <0 0x088e9a00 0 0x100>;
+                               #phy-cells = <0>;
+                               clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+                               clock-names = "pipe0";
+                               clock-output-names = "usb3_prim_phy_pipe_clk_src";
+                       };
+
+                       usb_prim_dpphy: dp-phy@88ea200 {
+                               reg = <0 0x088ea200 0 0x200>,
+                                     <0 0x088ea400 0 0x200>,
+                                     <0 0x088eaa00 0 0x200>,
+                                     <0 0x088ea600 0 0x200>,
+                                     <0 0x088ea800 0 0x200>;
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               usb_sec_qmpphy: phy@88ee000 {
+                       compatible = "qcom,sc8180x-qmp-usb3-dp-phy";
+                       reg = <0 0x088ee000 0 0x18c>,
+                             <0 0x088ed000 0 0x10>,
+                             <0 0x088ef000 0 0x40>;
+                       reg-names = "reg-base", "dp_com";
+                       clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_USB3_SEC_CLKREF_CLK>,
+                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
+                       clock-names = "aux",
+                                     "ref_clk_src",
+                                     "ref",
+                                     "com_aux";
+                       resets = <&gcc GCC_USB3_DP_PHY_SEC_BCR>,
+                                <&gcc GCC_USB3_PHY_SEC_BCR>;
+                       reset-names = "phy", "common";
+
+                       #clock-cells = <1>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       usb_sec_ssphy: usb3-phy@88e9200 {
+                               reg = <0 0x088ee200 0 0x200>,
+                                     <0 0x088ee400 0 0x200>,
+                                     <0 0x088eec00 0 0x218>,
+                                     <0 0x088ee600 0 0x200>,
+                                     <0 0x088ee800 0 0x200>,
+                                     <0 0x088eea00 0 0x100>;
+                               #phy-cells = <0>;
+                               clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
+                               clock-names = "pipe0";
+                               clock-output-names = "usb3_sec_phy_pipe_clk_src";
+                       };
+
+                       usb_sec_dpphy: dp-phy@88ef200 {
+                               reg = <0 0x088ef200 0 0x200>,
+                                     <0 0x088ef400 0 0x200>,
+                                     <0 0x088efa00 0 0x200>,
+                                     <0 0x088ef600 0 0x200>,
+                                     <0 0x088ef800 0 0x200>;
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+                               clock-output-names = "qmp_dptx1_phy_pll_link_clk",
+                                                    "qmp_dptx1_phy_pll_vco_div_clk";
+                       };
+               };
+
+               system-cache-controller@9200000 {
+                       compatible = "qcom,sc8180x-llcc";
+                       reg = <0 0x09200000 0 0x50000>, <0 0x09600000 0 0x50000>;
+                       reg-names = "llcc_base", "llcc_broadcast_base";
+                       interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               gem_noc: interconnect@9680000 {
+                       compatible = "qcom,sc8180x-gem-noc";
+                       reg = <0 0x09680000 0 0x58200>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               usb_prim: usb@a6f8800 {
+                       compatible = "qcom,sc8180x-dwc3", "qcom,dwc3";
+                       reg = <0 0x0a6f8800 0 0x400>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hs_phy_irq",
+                                         "ss_phy_irq",
+                                         "dm_hs_phy_irq",
+                                         "dp_hs_phy_irq";
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
+                                <&gcc GCC_USB3_SEC_CLKREF_CLK>;
+                       clock-names = "cfg_noc",
+                                     "core",
+                                     "iface",
+                                     "mock_utmi",
+                                     "sleep",
+                                     "xo";
+                       resets = <&gcc GCC_USB30_PRIM_BCR>;
+                       power-domains = <&gcc USB30_PRIM_GDSC>;
+
+                       interconnects = <&aggre1_noc MASTER_USB3 0 &mc_virt SLAVE_EBI_CH0 0>,
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_USB3 0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_PRIM_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       dma-ranges;
+
+                       status = "disabled";
+
+                       usb_prim_dwc3: usb@a600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a600000 0 0xcd00>;
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x140 0>;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               phys = <&usb_prim_hsphy>, <&usb_prim_ssphy>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                       };
+               };
+
+               usb_sec: usb@a8f8800 {
+                       compatible = "qcom,sc8180x-dwc3", "qcom,dwc3";
+                       reg = <0 0x0a8f8800 0 0x400>;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_SEC_AXI_CLK>,
+                                <&gcc GCC_USB30_SEC_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_SEC_AXI_CLK>,
+                                <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>,
+                                <&gcc GCC_USB30_SEC_SLEEP_CLK>,
+                                <&gcc GCC_USB3_SEC_CLKREF_CLK>;
+                       clock-names = "cfg_noc",
+                                     "core",
+                                     "iface",
+                                     "mock_utmi",
+                                     "sleep",
+                                     "xo";
+                       resets = <&gcc GCC_USB30_SEC_BCR>;
+                       power-domains = <&gcc USB30_SEC_GDSC>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hs_phy_irq", "ss_phy_irq",
+                                         "dm_hs_phy_irq", "dp_hs_phy_irq";
+
+                       assigned-clocks = <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_SEC_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interconnects = <&aggre1_noc MASTER_USB3_1 0 &mc_virt SLAVE_EBI_CH0 0>,
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_USB3_1 0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       dma-ranges;
+
+                       status = "disabled";
+
+                       usb_sec_dwc3: usb@a800000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a800000 0 0xcd00>;
+                               interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x160 0>;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               phys = <&usb_sec_hsphy>, <&usb_sec_ssphy>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                       };
+               };
+
+               mdss: mdss@ae00000 {
+                       compatible = "qcom,sc8180x-mdss";
+                       reg = <0 0x0ae00000 0 0x1000>;
+                       reg-names = "mdss";
+
+                       power-domains = <&dispcc MDSS_GDSC>;
+
+                       clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                <&gcc GCC_DISP_HF_AXI_CLK>,
+                                <&gcc GCC_DISP_SF_AXI_CLK>,
+                                <&dispcc DISP_CC_MDSS_MDP_CLK>;
+                       clock-names = "iface",
+                                     "bus",
+                                     "nrt_bus",
+                                     "core";
+
+                       resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
+
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+
+                       interconnects = <&mmss_noc MASTER_MDP_PORT0 0 &mc_virt SLAVE_EBI_CH0 0>,
+                                       <&mmss_noc MASTER_MDP_PORT1 0 &mc_virt SLAVE_EBI_CH0 0>;
+                       interconnect-names = "mdp0-mem", "mdp1-mem";
+
+                       iommus = <&apps_smmu 0x800 0x420>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       mdss_mdp: mdp@ae01000 {
+                               compatible = "qcom,sc8180x-dpu";
+                               reg = <0 0x0ae01000 0 0x8f000>,
+                                     <0 0x0aeb0000 0 0x2008>;
+                               reg-names = "mdp", "vbif";
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_DISP_HF_AXI_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_CLK>,
+                                        <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               clock-names = "iface",
+                                             "bus",
+                                             "core",
+                                             "vsync";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
+                                                 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               assigned-clock-rates = <460000000>,
+                                                      <19200000>;
+
+                               operating-points-v2 = <&mdp_opp_table>;
+                               power-domains = <&rpmhpd SC8180X_MMCX>;
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dpu_intf0_out: endpoint {
+                                                       remote-endpoint = <&dp0_in>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               dpu_intf1_out: endpoint {
+                                                       remote-endpoint = <&dsi0_in>;
+                                               };
+                                       };
+
+                                       port@2 {
+                                               reg = <2>;
+                                               dpu_intf2_out: endpoint {
+                                                       remote-endpoint = <&dsi1_in>;
+                                               };
+                                       };
+
+                                       port@4 {
+                                               reg = <4>;
+                                               dpu_intf4_out: endpoint {
+                                                       remote-endpoint = <&dp1_in>;
+                                               };
+                                       };
+
+                                       port@5 {
+                                               reg = <5>;
+                                               dpu_intf5_out: endpoint {
+                                                       remote-endpoint = <&edp_in>;
+                                               };
+                                       };
+                               };
+
+                               mdp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-200000000 {
+                                               opp-hz = /bits/ 64 <200000000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-300000000 {
+                                               opp-hz = /bits/ 64 <300000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-345000000 {
+                                               opp-hz = /bits/ 64 <345000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-460000000 {
+                                               opp-hz = /bits/ 64 <460000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+                       };
+
+                       dsi0: dsi@ae94000 {
+                               compatible = "qcom,mdss-dsi-ctrl";
+                               reg = <0 0x0ae94000 0 0x400>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ESC0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_DISP_HF_AXI_CLK>;
+                               clock-names = "byte",
+                                             "byte_intf",
+                                             "pixel",
+                                             "core",
+                                             "iface",
+                                             "bus";
+
+                               operating-points-v2 = <&dsi_opp_table>;
+                               power-domains = <&rpmhpd SC8180X_MMCX>;
+
+                               phys = <&dsi0_phy>;
+                               phy-names = "dsi";
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dsi0_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf1_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               dsi0_out: endpoint {
+                                               };
+                                       };
+                               };
+
+                               dsi_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-187500000 {
+                                               opp-hz = /bits/ 64 <187500000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-300000000 {
+                                               opp-hz = /bits/ 64 <300000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-358000000 {
+                                               opp-hz = /bits/ 64 <358000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+                               };
+                       };
+
+                       dsi0_phy: dsi-phy@ae94400 {
+                               compatible = "qcom,dsi-phy-7nm";
+                               reg = <0 0x0ae94400 0 0x200>,
+                                     <0 0x0ae94600 0 0x280>,
+                                     <0 0x0ae94900 0 0x260>;
+                               reg-names = "dsi_phy",
+                                           "dsi_phy_lane",
+                                           "dsi_pll";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&rpmhcc RPMH_CXO_CLK>;
+                               clock-names = "iface", "ref";
+
+                               status = "disabled";
+                       };
+
+                       dsi1: dsi@ae96000 {
+                               compatible = "qcom,mdss-dsi-ctrl";
+                               reg = <0 0x0ae96000 0 0x400>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_PCLK1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ESC1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_DISP_HF_AXI_CLK>;
+                               clock-names = "byte",
+                                             "byte_intf",
+                                             "pixel",
+                                             "core",
+                                             "iface",
+                                             "bus";
+
+                               operating-points-v2 = <&dsi_opp_table>;
+                               power-domains = <&rpmhpd SC8180X_MMCX>;
+
+                               phys = <&dsi1_phy>;
+                               phy-names = "dsi";
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dsi1_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf2_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               dsi1_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       dsi1_phy: dsi-phy@ae96400 {
+                               compatible = "qcom,dsi-phy-7nm";
+                               reg = <0 0x0ae96400 0 0x200>,
+                                     <0 0x0ae96600 0 0x280>,
+                                     <0 0x0ae96900 0 0x260>;
+                               reg-names = "dsi_phy",
+                                           "dsi_phy_lane",
+                                           "dsi_pll";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&rpmhcc RPMH_CXO_CLK>;
+                               clock-names = "iface", "ref";
+
+                               status = "disabled";
+                       };
+
+                       mdss_dp0: displayport-controller@ae90000 {
+                               compatible = "qcom,sc8180x-dp";
+                               reg = <0 0xae90000 0 0x200>,
+                                     <0 0xae90200 0 0x200>,
+                                     <0 0xae90400 0 0x600>,
+                                     <0 0xae90a00 0 0x400>;
+                               interrupt-parent = <&mdss>;
+                               interrupts = <12>;
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_AUX_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_LINK_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>;
+                               clock-names = "core_iface",
+                                             "core_aux",
+                                             "ctrl_link",
+                                             "ctrl_link_iface",
+                                             "stream_pixel";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;
+                               assigned-clock-parents = <&usb_prim_dpphy 0>, <&usb_prim_dpphy 1>;
+
+                               phys = <&usb_prim_dpphy>;
+                               phy-names = "dp";
+
+                               #sound-dai-cells = <0>;
+
+                               operating-points-v2 = <&dp0_opp_table>;
+                               power-domains = <&rpmhpd SC8180X_CX>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dp0_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf0_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                       };
+                               };
+
+                               dp0_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-160000000 {
+                                               opp-hz = /bits/ 64 <160000000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-270000000 {
+                                               opp-hz = /bits/ 64 <270000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-540000000 {
+                                               opp-hz = /bits/ 64 <540000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-810000000 {
+                                               opp-hz = /bits/ 64 <810000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+                       };
+
+                       mdss_dp1: displayport-controller@ae98000 {
+                               compatible = "qcom,sc8180x-dp";
+                               reg = <0 0xae98000 0 0x200>,
+                                     <0 0xae98200 0 0x200>,
+                                     <0 0xae98400 0 0x600>,
+                                     <0 0xae98a00 0 0x400>;
+                               interrupt-parent = <&mdss>;
+                               interrupts = <13>;
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_AUX1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_LINK1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_LINK1_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_PIXEL2_CLK>;
+                               clock-names = "core_iface",
+                                             "core_aux",
+                                             "ctrl_link",
+                                             "ctrl_link_iface",
+                                             "stream_pixel";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK1_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_DP_PIXEL2_CLK_SRC>;
+                               assigned-clock-parents = <&usb_sec_dpphy 0>, <&usb_sec_dpphy 1>;
+
+                               phys = <&usb_sec_dpphy>;
+                               phy-names = "dp";
+
+                               #sound-dai-cells = <0>;
+
+                               operating-points-v2 = <&dp0_opp_table>;
+                               power-domains = <&rpmhpd SC8180X_CX>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dp1_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf4_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                       };
+                               };
+
+                               dp1_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-160000000 {
+                                               opp-hz = /bits/ 64 <160000000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-270000000 {
+                                               opp-hz = /bits/ 64 <270000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-540000000 {
+                                               opp-hz = /bits/ 64 <540000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-810000000 {
+                                               opp-hz = /bits/ 64 <810000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+                       };
+
+                       mdss_edp: displayport-controller@ae9a000 {
+                               compatible = "qcom,sc8180x-edp";
+                               reg = <0 0xae9a000 0 0x200>,
+                                     <0 0xae9a200 0 0x200>,
+                                     <0 0xae9a400 0 0x600>,
+                                     <0 0xae9aa00 0 0x400>;
+                               interrupt-parent = <&mdss>;
+                               interrupts = <14>;
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_EDP_AUX_CLK>,
+                                        <&dispcc DISP_CC_MDSS_EDP_LINK_CLK>,
+                                        <&dispcc DISP_CC_MDSS_EDP_LINK_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_EDP_PIXEL_CLK>;
+                               clock-names = "core_iface",
+                                             "core_aux",
+                                             "ctrl_link",
+                                              "ctrl_link_iface",
+                                             "stream_pixel";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_EDP_LINK_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_EDP_PIXEL_CLK_SRC>;
+                               assigned-clock-parents = <&edp_phy 0>, <&edp_phy 1>;
+
+                               phys = <&edp_phy>;
+                               phy-names = "dp";
+
+                               #sound-dai-cells = <0>;
+
+                               operating-points-v2 = <&edp_opp_table>;
+                               power-domains = <&rpmhpd SC8180X_CX>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               edp_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf5_out>;
+                                               };
+                                       };
+                               };
+
+                               edp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-160000000 {
+                                               opp-hz = /bits/ 64 <160000000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-270000000 {
+                                               opp-hz = /bits/ 64 <270000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-540000000 {
+                                               opp-hz = /bits/ 64 <540000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-810000000 {
+                                               opp-hz = /bits/ 64 <810000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+                       };
+               };
+
+               edp_phy: phy@aec2a00 {
+                       compatible = "qcom,sc8180x-edp-phy";
+                       reg = <0 0x0aec2a00 0 0x1c0>,
+                             <0 0x0aec2200 0 0xa0>,
+                             <0 0x0aec2600 0 0xa0>,
+                             <0 0x0aec2000 0 0x19c>;
+
+                       clocks = <&dispcc DISP_CC_MDSS_EDP_AUX_CLK>,
+                                <&dispcc DISP_CC_MDSS_AHB_CLK>;
+                       clock-names = "aux", "cfg_ahb";
+
+                       power-domains = <&dispcc MDSS_GDSC>;
+
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+               };
+
+               dispcc: clock-controller@af00000 {
+                       compatible = "qcom,sc8180x-dispcc";
+                       reg = <0 0x0af00000 0 0x20000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&sleep_clk>,
+                                <&usb_prim_dpphy 0>,
+                                <&usb_prim_dpphy 1>,
+                                <&usb_sec_dpphy 0>,
+                                <&usb_sec_dpphy 1>,
+                                <&edp_phy 0>,
+                                <&edp_phy 1>;
+                       clock-names = "bi_tcxo",
+                                     "sleep_clk",
+                                     "dp_phy_pll_link_clk",
+                                     "dp_phy_pll_vco_div_clk",
+                                     "dptx1_phy_pll_link_clk",
+                                     "dptx1_phy_pll_vco_div_clk",
+                                     "edp_phy_pll_link_clk",
+                                     "edp_phy_pll_vco_div_clk";
+                       power-domains = <&rpmhpd SC8180X_MMCX>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,sc8180x-pdc", "qcom,pdc";
+                       reg = <0 0x0b220000 0 0x30000>;
+                       qcom,pdc-ranges = <0 480 94>, <94 609 31>;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&intc>;
+                       interrupt-controller;
+               };
+
+               tsens0: thermal-sensor@c263000 {
+                       compatible = "qcom,sc8180x-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c263000 0 0x1ff>, /* TM */
+                             <0 0x0c222000 0 0x1ff>; /* SROT */
+                       #qcom,sensors = <16>;
+                       interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow", "critical";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens1: thermal-sensor@c265000 {
+                       compatible = "qcom,sc8180x-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c265000 0 0x1ff>, /* TM */
+                             <0 0x0c223000 0 0x1ff>; /* SROT */
+                       #qcom,sensors = <9>;
+                       interrupts = <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow", "critical";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               aoss_qmp: power-controller@c300000 {
+                       compatible = "qcom,sc8180x-aoss-qmp", "qcom,aoss-qmp";
+                       reg = <0x0 0x0c300000 0x0 0x100000>;
+                       interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING>;
+                       mboxes = <&apss_shared 0>;
+
+                       #clock-cells = <0>;
+                       #power-domain-cells = <1>;
+               };
+
+               spmi_bus: spmi@c440000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg = <0x0 0x0c440000 0x0 0x0001100>,
+                             <0x0 0x0c600000 0x0 0x2000000>,
+                             <0x0 0x0e600000 0x0 0x0100000>,
+                             <0x0 0x0e700000 0x0 0x00a0000>,
+                             <0x0 0x0c40a000 0x0 0x0026000>;
+                       reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
+                       interrupt-names = "periph_irq";
+                       interrupts = <GIC_SPI 481 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       interrupt-controller;
+                       #interrupt-cells = <4>;
+                       cell-index = <0>;
+               };
+
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,sc8180x-smmu-500", "arm,mmu-500";
+                       reg = <0 0x15000000 0 0x100000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 706 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 708 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 709 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 710 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 711 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 712 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 713 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 714 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 715 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 643 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 768 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 770 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 771 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 772 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 773 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 774 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 775 IRQ_TYPE_LEVEL_HIGH>;
+
+               };
+
+               remoteproc_adsp: remoteproc@17300000 {
+                       compatible = "qcom,sc8180x-adsp-pas";
+                       reg = <0x0 0x17300000 0x0 0x4040>;
+
+                       interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SC8180X_CX>;
+                       power-domain-names = "cx";
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&adsp_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       remoteproc_adsp_glink: glink-edge {
+                               interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
+                               label = "lpass";
+                               qcom,remote-pid = <2>;
+                               mboxes = <&apss_shared 8>;
+                       };
+               };
+
+               intc: interrupt-controller@17a00000 {
+                       compatible = "arm,gic-v3";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0x0 0x17a00000 0x0 0x10000>,     /* GICD */
+                             <0x0 0x17a60000 0x0 0x100000>;    /* GICR * 8 */
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               apss_shared: mailbox@17c00000 {
+                       compatible = "qcom,sc8180x-apss-shared";
+                       reg = <0x0 0x17c00000 0x0 0x1000>;
+                       #mbox-cells = <1>;
+               };
+
+               timer@17c20000 {
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x0 0x17c20000 0x0 0x1000>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0 0x20000000>;
+
+                       frame@17c21000{
+                               reg = <0x17c21000 0x1000>,
+                                     <0x17c22000 0x1000>;
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       frame@17c23000 {
+                               reg = <0x17c23000 0x1000>;
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@17c25000 {
+                               reg = <0x17c25000 0x1000>;
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@17c27000 {
+                               reg = <0x17c26000 0x1000>;
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@17c29000 {
+                               reg = <0x17c29000 0x1000>;
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@17c2b000 {
+                               reg = <0x17c2b000 0x1000>;
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@17c2d000 {
+                               reg = <0x17c2d000 0x1000>;
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+               };
+
+               apps_rsc: rsc@18200000 {
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0x0 0x18200000 0x0 0x10000>,
+                             <0x0 0x18210000 0x0 0x10000>,
+                             <0x0 0x18220000 0x0 0x10000>;
+                       reg-names = "drv-0", "drv-1", "drv-2";
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <2>;
+                       qcom,tcs-config = <ACTIVE_TCS  2>,
+                                         <SLEEP_TCS   1>,
+                                         <WAKE_TCS    1>,
+                                         <CONTROL_TCS 0>;
+                       label = "apps_rsc";
+
+                       apps_bcm_voter: bcm-voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+
+                       rpmhcc: clock-controller {
+                               compatible = "qcom,sc8180x-rpmh-clk";
+                               #clock-cells = <1>;
+                               clock-names = "xo";
+                               clocks = <&xo_board_clk>;
+                       };
+
+                       rpmhpd: power-controller {
+                               compatible = "qcom,sc8180x-rpmhpd";
+                               #power-domain-cells = <1>;
+                               operating-points-v2 = <&rpmhpd_opp_table>;
+
+                               rpmhpd_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       rpmhpd_opp_ret: opp1 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
+                                       };
+
+                                       rpmhpd_opp_min_svs: opp2 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+                                       };
+
+                                       rpmhpd_opp_low_svs: opp3 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp4 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs_l1: opp5 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom: opp6 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       };
+
+                                       rpmhpd_opp_nom_l1: opp7 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom_l2: opp8 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
+                                       };
+
+                                       rpmhpd_opp_turbo: opp9 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l1: opp10 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       };
+                               };
+                       };
+               };
+
+               osm_l3: interconnect@18321000 {
+                       compatible = "qcom,sc8180x-osm-l3";
+                       reg = <0 0x18321000 0 0x1400>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
+                       clock-names = "xo", "alternate";
+
+                       #interconnect-cells = <1>;
+               };
+
+               lmh@18350800 {
+                       compatible = "qcom,sc8180x-lmh";
+                       reg = <0 0x18350800 0 0x400>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       cpus = <&CPU4>;
+                       qcom,lmh-temp-arm-millicelsius = <65000>;
+                       qcom,lmh-temp-low-millicelsius = <94500>;
+                       qcom,lmh-temp-high-millicelsius = <95000>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
+
+               lmh@18358800 {
+                       compatible = "qcom,sc8180x-lmh";
+                       reg = <0 0x18358800 0 0x400>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+                       cpus = <&CPU0>;
+                       qcom,lmh-temp-arm-millicelsius = <65000>;
+                       qcom,lmh-temp-low-millicelsius = <94500>;
+                       qcom,lmh-temp-high-millicelsius = <95000>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
+
+               cpufreq_hw: cpufreq@18323000 {
+                       compatible = "qcom,cpufreq-hw";
+                       reg = <0 0x18323000 0 0x1400>, <0 0x18325800 0 0x1400>;
+                       reg-names = "freq-domain0", "freq-domain1";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
+                       clock-names = "xo", "alternate";
+
+                       #freq-domain-cells = <1>;
+                       #clock-cells = <1>;
+               };
+
+               wifi: wifi@18800000 {
+                       compatible = "qcom,wcn3990-wifi";
+                       reg = <0 0x18800000 0 0x800000>;
+                       reg-names = "membase";
+                       clock-names = "cxo_ref_clk_pin";
+                       clocks = <&rpmhcc RPMH_RF_CLK2>;
+                       interrupts = <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
+                       iommus = <&apps_smmu 0x0640 0x1>;
+                       qcom,msa-fixed-perm;
+                       status = "disabled";
+               };
+       };
+
+       thermal-zones {
+               cpu0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 1>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 2>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 3>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu3-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 4>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu4-top-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 7>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu5-top-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 8>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu6-top-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 9>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu7-top-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 10>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu4-bottom-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 11>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu5-bottom-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 12>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu6-bottom-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 13>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu7-bottom-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 14>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               cluster0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 5>;
+
+                       trips {
+                               cluster-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cluster1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 6>;
+
+                       trips {
+                               cluster-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpu-thermal-top {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens0 15>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               aoss1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               wlan-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               video-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               mem-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               q6-hvx-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               camera-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               compute-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               mdm-dsp-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               npu-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               gpu-thermal-bottom {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens1 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
index 5b25d54b959115e3e18f19c90886e4d41bdafc5c..cd7e0097d8bc5aaf1430b172fad88db8af7b27f0 100644 (file)
@@ -64,7 +64,7 @@
                                        reg = <1>;
 
                                        pmic_glink_con0_ss: endpoint {
-                                               remote-endpoint = <&mdss0_dp0_out>;
+                                               remote-endpoint = <&usb_0_qmpphy_out>;
                                        };
                                };
 
@@ -99,7 +99,7 @@
                                        reg = <1>;
 
                                        pmic_glink_con1_ss: endpoint {
-                                               remote-endpoint = <&mdss0_dp1_out>;
+                                               remote-endpoint = <&usb_1_qmpphy_out>;
                                        };
                                };
 
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
+               vreg_l6c: ldo6 {
+                       regulator-name = "vreg_l6c";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l7c: ldo7 {
                        regulator-name = "vreg_l7c";
                        regulator-min-microvolt = <2504000>;
                                                   RPMH_REGULATOR_MODE_HPM>;
                };
 
+               vreg_l9c: ldo9 {
+                       regulator-name = "vreg_l9c";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l13c: ldo13 {
                        regulator-name = "vreg_l13c";
                        regulator-min-microvolt = <3072000>;
 
 &mdss0_dp0_out {
        data-lanes = <0 1>;
-       remote-endpoint = <&pmic_glink_con0_ss>;
+       remote-endpoint = <&usb_0_qmpphy_dp_in>;
 };
 
 &mdss0_dp1 {
 
 &mdss0_dp1_out {
        data-lanes = <0 1>;
-       remote-endpoint = <&pmic_glink_con1_ss>;
+       remote-endpoint = <&usb_1_qmpphy_dp_in>;
 };
 
 &mdss0_dp3 {
        status = "okay";
 };
 
+&sdc2 {
+       pinctrl-0 = <&sdc2_default_state>;
+       pinctrl-1 = <&sdc2_sleep_state>;
+       pinctrl-names = "default", "sleep";
+
+       vmmc-supply = <&vreg_l9c>;
+       vqmmc-supply = <&vreg_l6c>;
+
+       cd-gpios = <&tlmm 131 GPIO_ACTIVE_LOW>;
+
+       status = "okay";
+};
+
 &uart17 {
        compatible = "qcom,geni-debug-uart";
 
        vdda-phy-supply = <&vreg_l9d>;
        vdda-pll-supply = <&vreg_l4d>;
 
+       orientation-switch;
+
        status = "okay";
 };
 
+&usb_0_qmpphy_dp_in {
+       remote-endpoint = <&mdss0_dp0_out>;
+};
+
+&usb_0_qmpphy_out {
+       remote-endpoint = <&pmic_glink_con0_ss>;
+};
+
 &usb_0_role_switch {
        remote-endpoint = <&pmic_glink_con0_hs>;
 };
        vdda-phy-supply = <&vreg_l4b>;
        vdda-pll-supply = <&vreg_l3b>;
 
+       orientation-switch;
+
        status = "okay";
 };
 
+&usb_1_qmpphy_dp_in {
+       remote-endpoint = <&mdss0_dp1_out>;
+};
+
+&usb_1_qmpphy_out {
+       remote-endpoint = <&pmic_glink_con1_ss>;
+};
+
 &usb_1_role_switch {
        remote-endpoint = <&pmic_glink_con1_hs>;
 };
                };
        };
 
+       sdc2_default_state: sdc2-default-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd-pins {
+                       pins = "sdc2_cmd";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               data-pins {
+                       pins = "sdc2_data";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               card-detect-pins {
+                       pins = "gpio131";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
+       sdc2_sleep_state: sdc2-sleep-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               cmd-pins {
+                       pins = "sdc2_cmd";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               data-pins {
+                       pins = "sdc2_data";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               card-detect-pins {
+                       pins = "gpio131";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
        tpad_default: tpad-default-state {
                int-n-pins {
                        pins = "gpio182";
index bdcba719fc38523266dd86648aa5b5cf6c632971..5ae057ad643814f061a18eb876af029788b9e089 100644 (file)
                                        reg = <1>;
 
                                        pmic_glink_con0_ss: endpoint {
-                                               remote-endpoint = <&mdss0_dp0_out>;
+                                               remote-endpoint = <&usb_0_qmpphy_out>;
                                        };
                                };
 
                                        reg = <1>;
 
                                        pmic_glink_con1_ss: endpoint {
-                                               remote-endpoint = <&mdss0_dp1_out>;
+                                               remote-endpoint = <&usb_1_qmpphy_out>;
                                        };
                                };
 
 
 &mdss0_dp0_out {
        data-lanes = <0 1>;
-       remote-endpoint = <&pmic_glink_con0_ss>;
+       remote-endpoint = <&usb_0_qmpphy_dp_in>;
 };
 
 &mdss0_dp1 {
 
 &mdss0_dp1_out {
        data-lanes = <0 1>;
-       remote-endpoint = <&pmic_glink_con1_ss>;
+       remote-endpoint = <&usb_1_qmpphy_dp_in>;
 };
 
 &mdss0_dp3 {
        vdda-phy-supply = <&vreg_l9d>;
        vdda-pll-supply = <&vreg_l4d>;
 
+       orientation-switch;
+
        status = "okay";
 };
 
+&usb_0_qmpphy_dp_in {
+       remote-endpoint = <&mdss0_dp0_out>;
+};
+
+&usb_0_qmpphy_out {
+       remote-endpoint = <&pmic_glink_con0_ss>;
+};
+
 &usb_0_role_switch {
        remote-endpoint = <&pmic_glink_con0_hs>;
 };
        vdda-phy-supply = <&vreg_l4b>;
        vdda-pll-supply = <&vreg_l3b>;
 
+       orientation-switch;
+
        status = "okay";
 };
 
+&usb_1_qmpphy_dp_in {
+       remote-endpoint = <&mdss0_dp1_out>;
+};
+
+&usb_1_qmpphy_out {
+       remote-endpoint = <&pmic_glink_con1_ss>;
+};
+
 &usb_1_role_switch {
        remote-endpoint = <&pmic_glink_con1_hs>;
 };
index 8fa9fbfe5d0009b44b40e02f16e980dd848a8a2b..4f64adadcdb557146fb13d2cc340e6a05127e338 100644 (file)
                ranges = <0 0 0 0 0x10 0>;
                dma-ranges = <0 0 0 0 0x10 0>;
 
+               ethernet0: ethernet@20000 {
+                       compatible = "qcom,sc8280xp-ethqos";
+                       reg = <0x0 0x00020000 0x0 0x10000>,
+                             <0x0 0x00036000 0x0 0x100>;
+                       reg-names = "stmmaceth", "rgmii";
+
+                       clocks = <&gcc GCC_EMAC0_AXI_CLK>,
+                                <&gcc GCC_EMAC0_SLV_AHB_CLK>,
+                                <&gcc GCC_EMAC0_PTP_CLK>,
+                                <&gcc GCC_EMAC0_RGMII_CLK>;
+                       clock-names = "stmmaceth",
+                                     "pclk",
+                                     "ptp_ref",
+                                     "rgmii";
+
+                       interrupts = <GIC_SPI 946 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 936 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq", "eth_lpi";
+
+                       iommus = <&apps_smmu 0x4c0 0xf>;
+                       power-domains = <&gcc EMAC_0_GDSC>;
+
+                       snps,tso;
+                       snps,pbl = <32>;
+                       rx-fifo-depth = <4096>;
+                       tx-fifo-depth = <4096>;
+
+                       status = "disabled";
+               };
+
                gcc: clock-controller@100000 {
                        compatible = "qcom,gcc-sc8280xp";
                        reg = <0x0 0x00100000 0x0 0x1f0000>;
                        };
                };
 
+               sdc2: mmc@8804000 {
+                       compatible = "qcom,sc8280xp-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0 0x08804000 0 0x1000>;
+
+                       interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC2_AHB_CLK>,
+                                <&gcc GCC_SDCC2_APPS_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "iface", "core", "xo";
+                       resets = <&gcc GCC_SDCC2_BCR>;
+                       interconnects = <&aggre2_noc MASTER_SDCC_2 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDCC_2 0>;
+                       interconnect-names = "sdhc-ddr","cpu-sdhc";
+                       iommus = <&apps_smmu 0x4e0 0x0>;
+                       power-domains = <&rpmhpd SC8280XP_CX>;
+                       operating-points-v2 = <&sdc2_opp_table>;
+                       bus-width = <4>;
+                       dma-coherent;
+
+                       status = "disabled";
+
+                       sdc2_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                                       opp-peak-kBps = <1800000 400000>;
+                                       opp-avg-kBps = <100000 0>;
+                               };
+
+                               opp-202000000 {
+                                       opp-hz = /bits/ 64 <202000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <5400000 1600000>;
+                                       opp-avg-kBps = <200000 0>;
+                               };
+                       };
+               };
+
                usb_0_qmpphy: phy@88eb000 {
                        compatible = "qcom,sc8280xp-qmp-usb43dp-phy";
                        reg = <0 0x088eb000 0 0x4000>;
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_0_qmpphy_out: endpoint {};
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_0_qmpphy_dp_in: endpoint {};
+                               };
+                       };
                };
 
                usb_1_hsphy: phy@8902000 {
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_qmpphy_out: endpoint {};
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_qmpphy_dp_in: endpoint {};
+                               };
+                       };
                };
 
                mdss1_dp0_phy: phy@8909a00 {
                        #size-cells = <2>;
                        ranges;
 
-                       gic-its@17a40000 {
+                       msi-controller@17a40000 {
                                compatible = "arm,gic-v3-its";
                                reg = <0 0x17a40000 0 0x20000>;
                                msi-controller;
 
                        status = "disabled";
                };
+
+               ethernet1: ethernet@23000000 {
+                       compatible = "qcom,sc8280xp-ethqos";
+                       reg = <0x0 0x23000000 0x0 0x10000>,
+                             <0x0 0x23016000 0x0 0x100>;
+                       reg-names = "stmmaceth", "rgmii";
+
+                       clocks = <&gcc GCC_EMAC1_AXI_CLK>,
+                                <&gcc GCC_EMAC1_SLV_AHB_CLK>,
+                                <&gcc GCC_EMAC1_PTP_CLK>,
+                                <&gcc GCC_EMAC1_RGMII_CLK>;
+                       clock-names = "stmmaceth",
+                                     "pclk",
+                                     "ptp_ref",
+                                     "rgmii";
+
+                       interrupts = <GIC_SPI 929 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 919 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq", "eth_lpi";
+
+                       iommus = <&apps_smmu 0x40 0xf>;
+                       power-domains = <&gcc EMAC_1_GDSC>;
+
+                       snps,tso;
+                       snps,pbl = <32>;
+                       rx-fifo-depth = <4096>;
+                       tx-fifo-depth = <4096>;
+
+                       status = "disabled";
+               };
        };
 
        sound: sound {
index 2ca713a3902a9f2c8c9d19f4c33ab1022a963997..3033723fc6ff3d68fa37f0a4a003acf267314a9f 100644 (file)
                        no-map;
                };
 
-               reserved@85800000 {
-                       reg = <0x00 0x85800000 0x00 0x3700000>;
-                       no-map;
-               };
-
                cont_splash_mem: splash@9d400000 {
                        reg = <0 0x9d400000 0 (1920 * 1080 * 4)>;
                        no-map;
        linux,code = <KEY_VOLUMEUP>;
 };
 
+&qhee_code {
+       reg = <0x00 0x85800000 0x00 0x3700000>;
+};
+
 &qusb2phy0 {
        status = "okay";
 
index 37e72b1c56dce7430aeb63f481afb22a15e94f4b..a7d475f23beaf37e3c7af41a2cd1aa6581a403ad 100644 (file)
                };
        };
 
-       soc {
+       soc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
                        };
                };
 
-               camss: camss@ca00000 {
+               camss: camss@ca00020 {
                        compatible = "qcom,sdm660-camss";
                        reg = <0x0ca00020 0x10>,
                              <0x0ca30000 0x100>,
index 70e683b7e4fce3acf4acf949193116f5ac33b4b3..301eca9a4f313c7dbf24ce942adabbe6c0607ec3 100644 (file)
@@ -4,8 +4,10 @@
  */
 /dts-v1/;
 
+#include <dt-bindings/leds/common.h>
 #include "sdm632.dtsi"
 #include "pm8953.dtsi"
+#include "pmi632.dtsi"
 
 / {
        model = "Fairphone 3";
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pmi632_lpg {
+       status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+       };
+};
+
 &sdhc_1 {
        status = "okay";
        vmmc-supply = <&pm8953_l8>;
index e14fe9bbb386a0132e8c5bf8a68cb92ba709238d..4dea2c04b22fa32a96e9b0de1cf287eaaf94d889 100644 (file)
        status = "okay";
        vdda-supply = <&vreg_l26a_1p2>;
 
+       qcom,dual-dsi-mode;
+       qcom,master-dsi;
+
        ports {
                port@1 {
                        endpoint {
        vdds-supply = <&vreg_l1a_0p875>;
 };
 
+&dsi1 {
+       vdda-supply = <&vreg_l26a_1p2>;
+
+       qcom,dual-dsi-mode;
+
+       /* DSI1 is slave, so use DSI0 clocks */
+       assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
+
+       status = "okay";
+
+       ports {
+               port@1 {
+                       endpoint {
+                               remote-endpoint = <&lt9611_b>;
+                               data-lanes = <0 1 2 3>;
+                       };
+               };
+       };
+};
+
+&dsi1_phy {
+       vdds-supply = <&vreg_l1a_0p875>;
+       status = "okay";
+};
+
 &gcc {
        protected-clocks = <GCC_QSPI_CORE_CLK>,
                           <GCC_QSPI_CORE_CLK_SRC>,
                                };
                        };
 
+                       port@1 {
+                               reg = <1>;
+
+                               lt9611_b: endpoint {
+                                       remote-endpoint = <&dsi1_out>;
+                               };
+                       };
+
                        port@2 {
                                reg = <2>;
 
index 0ad891348e0c39edeb5a3bea6a5713044ac464b8..1eaff964b202a750360a3293848258d9da98252d 100644 (file)
        };
 };
 
+&pmi8998_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <1>;
+               led-max-microamp = <100000>;
+               flash-max-microamp = <1100000>;
+               flash-max-timeout-us = <1280000>;
+       };
+
+       led-1 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_YELLOW>;
+               led-sources = <2>;
+               led-max-microamp = <100000>;
+               flash-max-microamp = <1100000>;
+               flash-max-timeout-us = <1280000>;
+       };
+};
+
 &qup_uart9_rx {
        drive-strength = <2>;
        bias-pull-up;
index 8ae0ffccaab22ea18b664ed170103b55317a78ad..576f0421824f44380ec2efd87991f18cb75da829 100644 (file)
                };
 
                rmi4-f12@12 {
+                       reg = <0x12>;
                        syna,rezero-wait-ms = <0xc8>;
                        syna,clip-x-high = <0x438>;
                        syna,clip-y-high = <0x870>;
index 90424442bb4acab8149488c0f679032389361572..f1dfdd129eab3476500b3c6e18bb1767aa8d465a 100644 (file)
                qspi: spi@88df000 {
                        compatible = "qcom,sdm845-qspi", "qcom,qspi-v1";
                        reg = <0 0x088df000 0 0x600>;
+                       iommus = <&apps_smmu 0x160 0x0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                        #reset-cells = <1>;
                };
 
-               camss: camss@a00000 {
+               camss: camss@acb3000 {
                        compatible = "qcom,sdm845-camss";
 
                        reg = <0 0x0acb3000 0 0x1000>,
                };
 
                slimbam: dma-controller@17184000 {
-                       compatible = "qcom,bam-v1.7.0";
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
                        qcom,controlled-remotely;
                        reg = <0 0x17184000 0 0x2a000>;
                        num-channels = <31>;
index a1f0622db5a0a3783575172ba10906c152374e36..75951fd439dfb02ff4a4116b87cfd608eca3541d 100644 (file)
 &usb_dwc3 {
        maximum-speed = "high-speed";
        dr_mode = "peripheral";
+
+       phys = <&usb_hsphy>;
+       phy-names = "usb2-phy";
 };
 
 &usb_hsphy {
diff --git a/arch/arm64/boot/dts/qcom/sm6115-fxtec-pro1x.dts b/arch/arm64/boot/dts/qcom/sm6115-fxtec-pro1x.dts
new file mode 100644 (file)
index 0000000..3ce9875
--- /dev/null
@@ -0,0 +1,250 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2023, Dang Huynh <danct12@riseup.net>
+ */
+
+/dts-v1/;
+
+#include "sm6115.dtsi"
+#include "pm6125.dtsi"
+#include <dt-bindings/arm/qcom,ids.h>
+
+/ {
+       model = "F(x)tec Pro1X (QX1050)";
+       compatible = "fxtec,pro1x", "qcom,sm6115";
+       chassis-type = "handset";
+
+       qcom,msm-id = <QCOM_ID_SM6115 0x10000>;
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               framebuffer0: framebuffer@5c000000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x0 0x5c000000 0x0 (1080 * 2160 * 4)>;
+                       width = <1080>;
+                       height = <2160>;
+                       stride = <(1080 * 4)>;
+                       format = "a8r8g8b8";
+                       clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&vol_up_n>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       gpio-key,wakeup;
+               };
+       };
+};
+
+&dispcc {
+       /* HACK: disable until a panel driver is ready to retain simplefb */
+       status = "disabled";
+};
+
+&pm6125_gpios {
+       vol_up_n: vol-up-n-state {
+               pins = "gpio5";
+               function = "normal";
+               power-source = <0>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm6125-regulators";
+
+               pm6125_s6a: s6 {
+                       regulator-min-microvolt = <304000>;
+                       regulator-max-microvolt = <1456000>;
+               };
+
+               pm6125_s7a: s7 {
+                       regulator-min-microvolt = <1280000>;
+                       regulator-max-microvolt = <2040000>;
+               };
+
+               pm6125_s8a: s8 {
+                       regulator-min-microvolt = <1064000>;
+                       regulator-max-microvolt = <1304000>;
+               };
+
+               pm6125_l1a: l1 {
+                       regulator-min-microvolt = <952000>;
+                       regulator-max-microvolt = <1152000>;
+               };
+
+               pm6125_l4a: l4 {
+                       regulator-min-microvolt = <488000>;
+                       regulator-max-microvolt = <1000000>;
+               };
+
+               pm6125_l5a: l5 {
+                       regulator-min-microvolt = <1648000>;
+                       regulator-max-microvolt = <3056000>;
+               };
+
+               pm6125_l6a: l6 {
+                       regulator-min-microvolt = <576000>;
+                       regulator-max-microvolt = <656000>;
+               };
+
+               pm6125_l7a: l7 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1304000>;
+               };
+
+               pm6125_l8a: l8 {
+                       regulator-min-microvolt = <400000>;
+                       regulator-max-microvolt = <728000>;
+               };
+
+               pm6125_l9a: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+               };
+
+               pm6125_l10a: l10 {
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <1904000>;
+               };
+
+               pm6125_l11a: l11 {
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <1952000>;
+                       regulator-allow-set-load;
+               };
+
+               pm6125_l12a: l12 {
+                       regulator-min-microvolt = <1624000>;
+                       regulator-max-microvolt = <1984000>;
+               };
+
+               pm6125_l13a: l13 {
+                       regulator-min-microvolt = <1504000>;
+                       regulator-max-microvolt = <1952000>;
+               };
+
+               pm6125_l14a: l14 {
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <1904000>;
+               };
+
+               pm6125_l15a: l15 {
+                       regulator-min-microvolt = <2920000>;
+                       regulator-max-microvolt = <3232000>;
+               };
+
+               pm6125_l16a: l16 {
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <1904000>;
+               };
+
+               pm6125_l17a: l17 {
+                       regulator-min-microvolt = <1152000>;
+                       regulator-max-microvolt = <1384000>;
+               };
+
+               pm6125_l18a: l18 {
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1312000>;
+               };
+
+               pm6125_l19a: l19 {
+                       regulator-min-microvolt = <1624000>;
+                       regulator-max-microvolt = <3304000>;
+               };
+
+               pm6125_l20a: l20 {
+                       regulator-min-microvolt = <1624000>;
+                       regulator-max-microvolt = <3304000>;
+               };
+
+               pm6125_l21a: l21 {
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <3600000>;
+               };
+
+               pm6125_l22a: l22 {
+                       regulator-min-microvolt = <2952000>;
+                       regulator-max-microvolt = <3304000>;
+               };
+
+               pm6125_l23a: l23 {
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3400000>;
+               };
+
+               pm6125_l24a: l24 {
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <3600000>;
+                       regulator-allow-set-load;
+               };
+       };
+};
+
+&sleep_clk {
+       clock-frequency = <32764>;
+};
+
+&tlmm {
+       gpio-reserved-ranges = <0 4>, <14 4>;
+};
+
+&ufs_mem_hc {
+       vcc-supply = <&pm6125_l24a>;
+       vcc-max-microamp = <600000>;
+       vccq2-supply = <&pm6125_l11a>;
+       vccq2-max-microamp = <600000>;
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&pm6125_l4a>;
+       vdda-pll-supply = <&pm6125_l12a>;
+       vddp-ref-clk-supply = <&pm6125_l18a>;
+       status = "okay";
+};
+
+&usb {
+       status = "okay";
+};
+
+&usb_dwc3 {
+       maximum-speed = "high-speed";
+       dr_mode = "peripheral";
+};
+
+&usb_hsphy {
+       vdd-supply = <&pm6125_l4a>;
+       vdda-pll-supply = <&pm6125_l12a>;
+       vdda-phy-dpdm-supply = <&pm6125_l15a>;
+       status = "okay";
+};
+
+&xo_board {
+       clock-frequency = <19200000>;
+};
index 631ca327e064bc6c0a9269a2b3eaaf5170d43f34..ba889cc44cb781aba71aa8f3cc2044f5f04be950 100644 (file)
@@ -47,6 +47,8 @@
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       power-domains = <&CPU_PD0>;
+                       power-domain-names = "psci";
                        L2_0: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
@@ -63,6 +65,8 @@
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       power-domains = <&CPU_PD1>;
+                       power-domain-names = "psci";
                };
 
                CPU2: cpu@2 {
@@ -75,6 +79,8 @@
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       power-domains = <&CPU_PD2>;
+                       power-domain-names = "psci";
                };
 
                CPU3: cpu@3 {
@@ -87,6 +93,8 @@
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       power-domains = <&CPU_PD3>;
+                       power-domain-names = "psci";
                };
 
                CPU4: cpu@100 {
                        dynamic-power-coefficient = <282>;
                        next-level-cache = <&L2_1>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       power-domains = <&CPU_PD4>;
+                       power-domain-names = "psci";
                        L2_1: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
                        enable-method = "psci";
                        next-level-cache = <&L2_1>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       power-domains = <&CPU_PD5>;
+                       power-domain-names = "psci";
                };
 
                CPU6: cpu@102 {
                        enable-method = "psci";
                        next-level-cache = <&L2_1>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       power-domains = <&CPU_PD6>;
+                       power-domain-names = "psci";
                };
 
                CPU7: cpu@103 {
                        enable-method = "psci";
                        next-level-cache = <&L2_1>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       power-domains = <&CPU_PD7>;
+                       power-domain-names = "psci";
                };
 
                cpu-map {
                                };
                        };
                };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "silver-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <290>;
+                               exit-latency-us = <376>;
+                               min-residency-us = <1182>;
+                               local-timer-stop;
+                       };
+
+                       BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "gold-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <297>;
+                               exit-latency-us = <324>;
+                               min-residency-us = <1110>;
+                               local-timer-stop;
+                       };
+               };
+
+               domain-idle-states {
+                       CLUSTER_0_SLEEP_0: cluster-sleep-0-0 {
+                               /* GDHS */
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x40000022>;
+                               entry-latency-us = <360>;
+                               exit-latency-us = <421>;
+                               min-residency-us = <782>;
+                       };
+
+                       CLUSTER_0_SLEEP_1: cluster-sleep-0-1 {
+                               /* Power Collapse */
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41000044>;
+                               entry-latency-us = <800>;
+                               exit-latency-us = <2118>;
+                               min-residency-us = <7376>;
+                       };
+
+                       CLUSTER_1_SLEEP_0: cluster-sleep-1-0 {
+                               /* GDHS */
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x40000042>;
+                               entry-latency-us = <314>;
+                               exit-latency-us = <345>;
+                               min-residency-us = <660>;
+                       };
+
+                       CLUSTER_1_SLEEP_1: cluster-sleep-1-1 {
+                               /* Power Collapse */
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41000044>;
+                               entry-latency-us = <640>;
+                               exit-latency-us = <1654>;
+                               min-residency-us = <8094>;
+                       };
+               };
        };
 
        firmware {
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
+
+               CPU_PD0: power-domain-cpu0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_0_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_0_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD2: power-domain-cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_0_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD3: power-domain-cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_0_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD4: power-domain-cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_1_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD5: power-domain-cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_1_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD6: power-domain-cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_1_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD7: power-domain-cpu7 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_1_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CLUSTER_0_PD: power-domain-cpu-cluster0 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_0_SLEEP_0>, <&CLUSTER_0_SLEEP_1>;
+               };
+
+               CLUSTER_1_PD: power-domain-cpu-cluster1 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_1_SLEEP_0>, <&CLUSTER_1_SLEEP_1>;
+               };
        };
 
        reserved_memory: reserved-memory {
                        status = "disabled";
                };
 
+               cryptobam: dma-controller@1b04000 {
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+                       reg = <0x0 0x01b04000 0x0 0x24000>;
+                       interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rpmcc RPM_SMD_CE1_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+                       iommus = <&apps_smmu 0x92 0>,
+                                <&apps_smmu 0x94 0x11>,
+                                <&apps_smmu 0x96 0x11>,
+                                <&apps_smmu 0x98 0x1>,
+                                <&apps_smmu 0x9F 0>;
+               };
+
+               crypto: crypto@1b3a000 {
+                       compatible = "qcom,sm6115-qce", "qcom,ipq4019-qce", "qcom,qce";
+                       reg = <0x0 0x01b3a000 0x0 0x6000>;
+                       clocks = <&rpmcc RPM_SMD_CE1_CLK>;
+                       clock-names = "core";
+
+                       dmas = <&cryptobam 6>, <&cryptobam 7>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x92 0>,
+                                <&apps_smmu 0x94 0x11>,
+                                <&apps_smmu 0x96 0x11>,
+                                <&apps_smmu 0x98 0x1>,
+                                <&apps_smmu 0x9F 0>;
+               };
+
+               usb_qmpphy: phy@1615000 {
+                       compatible = "qcom,sm6115-qmp-usb3-phy";
+                       reg = <0x0 0x01615000 0x0 0x1000>;
+
+                       clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
+                                <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+                       clock-names = "cfg_ahb",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+
+                       resets = <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>;
+                       reset-names = "phy", "phy_phy";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb3_phy_pipe_clk_src";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
                qfprom@1b40000 {
                        compatible = "qcom,sm6115-qfprom", "qcom,qfprom";
                        reg = <0x0 0x01b40000 0x0 0x7000>;
                        #interrupt-cells = <4>;
                };
 
-               tsens0: thermal-sensor@4410000 {
+               tsens0: thermal-sensor@4411000 {
                        compatible = "qcom,sm6115-tsens", "qcom,tsens-v2";
                        reg = <0x0 0x04411000 0x0 0x1ff>, /* TM */
                              <0x0 0x04410000 0x0 0x8>; /* SROT */
                                compatible = "snps,dwc3";
                                reg = <0x0 0x04e00000 0x0 0xcd00>;
                                interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
-                               phys = <&usb_hsphy>;
-                               phy-names = "usb2-phy";
+                               phys = <&usb_hsphy>, <&usb_qmpphy>;
+                               phy-names = "usb2-phy", "usb3-phy";
                                iommus = <&apps_smmu 0x120 0x0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
index ea3340d31110c9cff3f48af49a68989073767592..81fdcaf489266af642b6d158ea946a884acd19c3 100644 (file)
 &usb_dwc3 {
        maximum-speed = "high-speed";
        dr_mode = "peripheral";
+
+       phys = <&usb_hsphy>;
+       phy-names = "usb2-phy";
 };
 
 &usb_hsphy {
index b1038eb8cebc29548ae127871d6967fe6c5fc985..a7f4aeae9c1a515f3c9cec826c4f4703fbc9cb29 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&camera_flash_therm &emmc_ufs_therm>;
 
-       adc-chan@4d {
+       channel@4d {
                reg = <ADC5_AMUX_THM1_100K_PU>;
                qcom,ratiometric;
                qcom,hw-settle-time = <200>;
                label = "rf_pa0_therm";
        };
 
-       adc-chan@4e {
+       channel@4e {
                reg = <ADC5_AMUX_THM2_100K_PU>;
                qcom,ratiometric;
                qcom,hw-settle-time = <200>;
                label = "quiet_therm";
        };
 
-       adc-chan@52 {
+       channel@52 {
                reg = <ADC5_GPIO1_100K_PU>;
                qcom,ratiometric;
                qcom,hw-settle-time = <200>;
                label = "camera_flash_therm";
        };
 
-       adc-chan@54 {
+       channel@54 {
                reg = <ADC5_GPIO3_100K_PU>;
                qcom,ratiometric;
                qcom,hw-settle-time = <200>;
index 9484752fb85066e373a86afea0c11ce3844ebe63..745874a82a49da2ea9605a3d844d4410108949a7 100644 (file)
                hwlocks = <&tcsr_mutex 3>;
        };
 
-       soc {
+       soc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x00 0x00 0x00 0xffffffff>;
index 18c4616848cefcb58ef8ab38fa0e2ee68e2294ef..4dffd7974fa3922e7c43611b90f3d9cecc2ac062 100644 (file)
                        };
                };
 
-               wifi: wifi@18800000 {
-                       compatible = "qcom,wcn3990-wifi";
-                       reg = <0 0x18800000 0 0x800000>;
-                       reg-names = "membase";
-                       memory-region = <&wlan_fw_mem>;
-                       interrupts = <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
-                       iommus = <&apps_smmu 0x20 0x1>;
-                       qcom,msa-fixed-perm;
-                       status = "disabled";
-               };
-
                apps_rsc: rsc@18200000 {
                        compatible = "qcom,rpmh-rsc";
                        label = "apps_rsc";
                        #freq-domain-cells = <1>;
                        #clock-cells = <1>;
                };
+
+               wifi: wifi@18800000 {
+                       compatible = "qcom,wcn3990-wifi";
+                       reg = <0 0x18800000 0 0x800000>;
+                       reg-names = "membase";
+                       memory-region = <&wlan_fw_mem>;
+                       interrupts = <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
+                       iommus = <&apps_smmu 0x20 0x1>;
+                       qcom,msa-fixed-perm;
+                       status = "disabled";
+               };
        };
 
        timer {
index 47e2430991ca0e6b64d56f31da777a2aa78a0c6b..baafea53770bff2dfceaaf4640ce71b054d8a469 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "sm8150.dtsi"
 #include "pm8150.dtsi"
                };
        };
 
+       cam0_vdig_vreg: cam0-vdig-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "camera0_vdig_vreg";
+               gpio = <&tlmm 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&main_cam_pwr_en>;
+               pinctrl-names = "default";
+       };
+
+       cam1_vdig_vreg: cam1-vdig-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "camera1_vdig_vreg";
+               gpio = <&tlmm 79 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&sub_cam_pwr_en>;
+               pinctrl-names = "default";
+       };
+
+       cam2_vdig_vreg: cam2-vdig-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "camera2_vdig_vreg";
+               gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&chat_cam_pwr_en>;
+               pinctrl-names = "default";
+       };
+
+       cam3_vdig_vreg: cam3-vdig-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "camera3_vdig_vreg";
+               gpio = <&pm8150_gpios 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&supwc_pwr_en>;
+               pinctrl-names = "default";
+       };
+
+       cam_vmdr_vreg: cam-vmdr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "camera_vmdr_vreg";
+               gpio = <&pm8150l_gpios 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&main_cam_pwr_vmdr_en>;
+               pinctrl-names = "default";
+       };
+
+       rgbcir_vreg: rgbcir-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "rgbcir_vreg";
+               gpio = <&tlmm 29 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&rgbc_ir_pwr_en>;
+               pinctrl-names = "default";
+       };
+
        vph_pwr: vph-pwr-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vph_pwr";
 };
 
 &pm8150_gpios {
+       gpio-line-names = "VOL_DOWN_N", /* GPIO_1 */
+                         "",
+                         "NC",
+                         "NC",
+                         "",
+                         "NC",
+                         "SUPWC_PWR_EN",
+                         "",
+                         "NC",
+                         "NC"; /* GPIO_10 */
+
        vol_down_n: vol-down-n-state {
                pins = "gpio1";
                function = "normal";
                bias-pull-up;
                input-enable;
        };
+
+       supwc_pwr_en: supwc-pwr-en-state {
+               pins = "gpio7";
+               function = "normal";
+               qcom,drive-strength = <1>;
+               power-source = <1>;
+               drive-push-pull;
+               output-low;
+       };
 };
 
 &pm8150b_gpios {
+       gpio-line-names = "SNAPSHOT_N", /* GPIO_1 */
+                         "FOCUS_N",
+                         "NC",
+                         "NC",
+                         "RF_LCD_ID_EN",
+                         "NC",
+                         "TS_VDDH_EN",
+                         "LCD_ID",
+                         "",
+                         "NC", /* GPIO_10 */
+                         "NC",
+                         "RF_ID";
+
        snapshot_n: snapshot-n-state {
                pins = "gpio1";
                function = "normal";
        };
 };
 
+&pm8150l_gpios {
+       gpio-line-names = "TS_VDDIO_EN", /* GPIO_1 */
+                         "NC",
+                         "MAIN_CAM_PWR_VMDR_EN",
+                         "NC",
+                         "",
+                         "NC",
+                         "NC",
+                         "FP_LDO_EN",
+                         "NC",
+                         "NC", /* GPIO_10 */
+                         "NC",
+                         "NC";
+
+       main_cam_pwr_vmdr_en: main-cam-pwr-vmdr-en-state {
+               pins = "gpio3";
+               function = "normal";
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+               power-source = <0>;
+               drive-push-pull;
+               output-low;
+       };
+};
+
 &pon_pwrkey {
        status = "okay";
 };
        status = "okay";
 };
 
+&sdhc_2 {
+       vmmc-supply = <&vreg_l9c_2p9>;
+       vqmmc-supply = <&vreg_l6c_2p9>;
+       cd-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+
+       status = "okay";
+};
+
 &tlmm {
        gpio-reserved-ranges = <126 4>;
+       gpio-line-names = "NFC_ESE_SPI_MISO", /* GPIO_0 */
+                         "NFC_ESE_SPI_MOSI",
+                         "NFC_ESE_SPI_SCLK",
+                         "NFC_ESE_SPI_CS_N",
+                         "NC",
+                         "NC",
+                         "DISP_RESET_N",
+                         "DEBUG_GPIO0",
+                         "MDP_VSYNC_P",
+                         "TS_I2C_SDA",
+                         "TS_I2C_SCL", /* GPIO_10 */
+                         "CAM_SOF",
+                         "CAM2_RST_N",
+                         "CAM_MCLK0",
+                         "CAM_MCLK1",
+                         "CAM_MCLK2",
+                         "CAM_MCLK3",
+                         "CCI_I2C_SDA0",
+                         "CCI_I2C_SCL0",
+                         "CCI_I2C_SDA1",
+                         "CCI_I2C_SCL1", /* GPIO_20 */
+                         "NC",
+                         "MAIN_CAM_PWR_EN",
+                         "CAM3_RST_N",
+                         "NC",
+                         "CHAT_CAM_PWR_EN",
+                         "NC",
+                         "NC",
+                         "CAM0_RST_N",
+                         "RGBC_IR_PWR_EN",
+                         "CAM1_RST_N", /* GPIO_30 */
+                         "CCI_I2C_SDA2",
+                         "CCI_I2C_SCL2",
+                         "CCI_I2C_SDA3",
+                         "CCI_I2C_SCL3",
+                         "NC",
+                         "DEBUG_GPIO1",
+                         "RGBC_IR_INT",
+                         "USB_CC_DIR",
+                         "NC",
+                         "NC", /* GPIO_40 */
+                         "NFC_EN",
+                         "NFC_ESE_PWR_REQ",
+                         "BT_HCI_UART_CTS_N",
+                         "BT_HCI_UART_RFR_N",
+                         "BT_HCI_UART_TXD",
+                         "BT_HCI_UART_RXD",
+                         "NFC_IRQ",
+                         "NFC_DWL_REQ",
+                         "UIM2_DETECT_EN",
+                         "WLAN_SW_CTRL", /* GPIO_50 */
+                         "APPS_I2C_SDA",
+                         "APPS_I2C_SCL",
+                         "NC",
+                         "TS_RESET_N",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "HW_ID_0",
+                         "NC", /* GPIO_60 */
+                         "QLINK_REQUEST",
+                         "QLINK_ENABLE",
+                         "WMSS_RESET_N",
+                         "SDM_GRFC_8",
+                         "WDOG_DISABLE",
+                         "NC",
+                         "NC",
+                         "PA_INDICATOR_OR",
+                         "MSS_LTE_COXM_TXD",
+                         "MSS_LTE_COXM_RXD", /* GPIO_70 */
+                         "SDM_RFFE0_DATA",
+                         "SDM_RFFE0_CLK",
+                         "SDM_RFFE1_DATA",
+                         "SDM_RFFE1_CLK",
+                         "SDM_RFFE2_DATA",
+                         "SDM_RFFE2_CLK",
+                         "SDM_RFFE3_DATA",
+                         "SDM_RFFE3_CLK",
+                         "SUB_CAM_PWR_EN",
+                         "FP_RESET_N", /* GPIO_80 */
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "DEBUG_UART_TX",
+                         "DEBUG_UART_RX",
+                         "DVDT_WRT_DET_AND",
+                         "NC",
+                         "NC",
+                         "NC", /* GPIO_90 */
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "UDON_SWITCH_SEL",
+                         "SD_CARD_DET_N",
+                         "NC",
+                         "CAMSENSOR_I2C_SDA",
+                         "CAMSENSOR_I2C_SCL",
+                         "USB_AUDIO_EN1", /* GPIO_100 */
+                         "DISP_ERR_FG",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "UIM2_DATA",
+                         "UIM2_CLK",
+                         "UIM2_RESET",
+                         "UIM2_DET",
+                         "UIM1_DATA",
+                         "UIM1_CLK", /* GPIO_110 */
+                         "UIM1_RESET",
+                         "UIM1_PRESENT",
+                         "NFC_CLK_REQ",
+                         "SW_SERVICE",
+                         "NC",
+                         "RF_ID_EXTENSION",
+                         "ALS_PROX_INT_N",
+                         "FP_INT",
+                         "DVDT_WRT_DET_OR",
+                         "BAROMETER_INT", /* GPIO_120 */
+                         "ACC_COVER_OPEN",
+                         "TS_INT_N",
+                         "CODEC_INT1_N",
+                         "CODEC_INT2_N",
+                         "TX_GTR_THRES_IN",
+                         "FP_SPI_MISO",
+                         "FP_SPI_MOSI",
+                         "FP_SPI_SCLK",
+                         "FP_SPI_CS_N",
+                         "NC", /* GPIO_130 */
+                         "DVDT_ENABLE",
+                         "ACCEL_INT",
+                         "NC",
+                         "MAG_INT_N",
+                         "NC",
+                         "FORCED_USB_BOOT",
+                         "NC",
+                         "NC",
+                         "HW_ID_1",
+                         "NC", /* GPIO_140 */
+                         "NC",
+                         "NC",
+                         "CODEC_RST_N",
+                         "CDC_SPI_MISO",
+                         "CDC_SPI_MOSI",
+                         "CDC_SPI_SCLK",
+                         "CDC_SPI_CS_N",
+                         "NC",
+                         "LPASS_SLIMBUS_CLK",
+                         "LPASS_SLIMBUS_DATA0", /* GPIO_150 */
+                         "LPASS_SLIMBUS_DATA1",
+                         "USB_AUDIO_EN2",
+                         "BT_FM_SLIMBUS_DATA",
+                         "BT_FM_SLIMBUS_CLK",
+                         "COMPASS_I2C_SDA",
+                         "COMPASS_I2C_SCL",
+                         "SSC_SPI_1_MISO",
+                         "SSC_SPI_1_MOSI",
+                         "SSC_SPI_1_CLK",
+                         "SSC_SPI_1_CS_N", /* GPIO_160 */
+                         "SSC_SENSOR_I2C_SDA",
+                         "SSC_SENSOR_I2C_SCL",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "SSC_UART_1_TX",
+                         "SSC_UART_1_RX",
+                         "WL_CMD_CLK_CHAIN0",
+                         "WL_CMD_DATA_CHAIN0", /* GPIO_170 */
+                         "WL_CMD_CLK_CHAIN1",
+                         "WL_CMD_DATA_CHAIN1",
+                         "WL_BT_COEX_CLK",
+                         "WL_BT_COEX_DATA";
+
+       main_cam_pwr_en: main-cam-pwr-en-state {
+               pins = "gpio22";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-low;
+       };
+
+       chat_cam_pwr_en: chat-cam-pwr-en-state {
+               pins = "gpio25";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-low;
+       };
+
+       rgbc_ir_pwr_en: rgbc-ir-pwr-en-state {
+               pins = "gpio29";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-low;
+       };
+
+       sub_cam_pwr_en: sub-cam-pwr-en-state {
+               pins = "gpio79";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
 };
 
 &uart2 {
index 2273fa57198842ef4c700ea464bd24ed9fbde9bb..2a5b2b99968a42aff4bca433d763e4863dff274e 100644 (file)
                        uart9: serial@a84000 {
                                compatible = "qcom,geni-uart";
                                reg = <0x0 0x00a84000 0x0 0x4000>;
-                               reg-names = "se";
                                clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
                                clock-names = "se";
                                pinctrl-0 = <&qup_uart9_default>;
                                pinctrl-names = "default";
                                interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
                                status = "disabled";
                        };
 
                };
 
                pcie0: pci@1c00000 {
-                       compatible = "qcom,pcie-sm8150", "snps,dw-pcie";
+                       compatible = "qcom,pcie-sm8150";
                        reg = <0 0x01c00000 0 0x3000>,
                              <0 0x60000000 0 0xf1d>,
                              <0 0x60000f20 0 0xa8>,
                };
 
                pcie1: pci@1c08000 {
-                       compatible = "qcom,pcie-sm8150", "snps,dw-pcie";
+                       compatible = "qcom,pcie-sm8150";
                        reg = <0 0x01c08000 0 0x3000>,
                              <0 0x40000000 0 0xf1d>,
                              <0 0x40000f20 0 0xa8>,
                        };
                };
 
+               cryptobam: dma-controller@1dc4000 {
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+                       reg = <0 0x01dc4000 0 0x24000>;
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+                       num-channels = <8>;
+                       qcom,num-ees = <2>;
+                       iommus = <&apps_smmu 0x502 0x0641>,
+                                <&apps_smmu 0x504 0x0011>,
+                                <&apps_smmu 0x506 0x0011>,
+                                <&apps_smmu 0x508 0x0011>,
+                                <&apps_smmu 0x512 0x0000>;
+               };
+
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0 0x01dfa000 0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x502 0x0641>,
+                                <&apps_smmu 0x504 0x0011>,
+                                <&apps_smmu 0x506 0x0011>,
+                                <&apps_smmu 0x508 0x0011>,
+                                <&apps_smmu 0x512 0x0000>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO_CORE_0 &mc_virt SLAVE_EBI_CH0>;
+                       interconnect-names = "memory";
+               };
+
                tcsr_mutex: hwlock@1f40000 {
                        compatible = "qcom,tcsr-mutex";
                        reg = <0x0 0x01f40000 0x0 0x20000>;
                };
 
                apps_smmu: iommu@15000000 {
-                       compatible = "qcom,sm8150-smmu-500", "arm,mmu-500";
+                       compatible = "qcom,sm8150-smmu-500", "qcom,smmu-500", "arm,mmu-500";
                        reg = <0 0x15000000 0 0x100000>;
                        #iommu-cells = <2>;
                        #global-interrupts = <1>;
index 2f22d348d45d74c7125b2714196eb6770bd18609..8d4352c8c543171212e8b96767c46ec4eefdb5ad 100644 (file)
        vdda-phy-supply = <&vreg_l9a_1p2>;
        vdda-pll-supply = <&vreg_l18a_0p9>;
 };
+
+&venus {
+       firmware-name = "qcom/sm8250/Sony/edo/venus.mbn";
+       status = "okay";
+};
index 8af6a0120a500a424305e1d64ebd9976704dcdce..eaac000858946fbbcd05cfeae1a9fab0f87aafc4 100644 (file)
                                        remote-endpoint = <&dsi1_out>;
                                };
                        };
-
                };
        };
 };
index 7bea916900e2997f6a1d04b62506aa68c2d37da4..e5c60a6e407476e526af13b575e7d73c113e5240 100644 (file)
                        };
                };
 
+               cryptobam: dma-controller@1dc4000 {
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+                       reg = <0 0x01dc4000 0 0x24000>;
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+                       num-channels = <8>;
+                       qcom,num-ees = <2>;
+                       iommus = <&apps_smmu 0x592 0x0000>,
+                                <&apps_smmu 0x598 0x0000>,
+                                <&apps_smmu 0x599 0x0000>,
+                                <&apps_smmu 0x59f 0x0000>,
+                                <&apps_smmu 0x586 0x0011>,
+                                <&apps_smmu 0x596 0x0011>;
+               };
+
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,sm8250-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0 0x01dfa000 0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x592 0x0000>,
+                                <&apps_smmu 0x598 0x0000>,
+                                <&apps_smmu 0x599 0x0000>,
+                                <&apps_smmu 0x59f 0x0000>,
+                                <&apps_smmu 0x586 0x0011>,
+                                <&apps_smmu 0x596 0x0011>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO_CORE_0 &mc_virt SLAVE_EBI_CH0>;
+                       interconnect-names = "memory";
+               };
+
                tcsr_mutex: hwlock@1f40000 {
                        compatible = "qcom,tcsr-mutex";
                        reg = <0x0 0x01f40000 0x0 0x40000>;
                };
 
                apps_smmu: iommu@15000000 {
-                       compatible = "qcom,sm8250-smmu-500", "arm,mmu-500";
+                       compatible = "qcom,sm8250-smmu-500", "qcom,smmu-500", "arm,mmu-500";
                        reg = <0 0x15000000 0 0x100000>;
                        #iommu-cells = <2>;
                        #global-interrupts = <2>;
index 2ee1b121686ae6fc101dc2d86a39a1d2eba35cef..d3788bd72ac33c6279b0c93fc08aec9f95d75a79 100644 (file)
                                        reg = <1>;
 
                                        pmic_glink_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_dwc3_ss>;
+                                               remote-endpoint = <&usb_1_qmpphy_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu: endpoint {
+                                               remote-endpoint = <&fsa4480_sbu_mux>;
                                        };
                                };
                        };
        };
 };
 
+&i2c13 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+
+       typec-mux@42 {
+               compatible = "fcs,fsa4480";
+               reg = <0x42>;
+
+               interrupts-extended = <&tlmm 2 IRQ_TYPE_LEVEL_LOW>;
+
+               vcc-supply = <&vreg_bob>;
+               mode-switch;
+               orientation-switch;
+               svid = /bits/ 16 <0xff01>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               fsa4480_sbu_mux: endpoint {
+                                       remote-endpoint = <&pmic_glink_sbu>;
+                               };
+                       };
+               };
+       };
+};
+
 &i2c15 {
        clock-frequency = <400000>;
        status = "okay";
        status = "okay";
 };
 
+&mdss_dp {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       mdss_dp0_out: endpoint {
+                               data-lanes = <0 1>;
+                               remote-endpoint = <&usb_1_qmpphy_dp_in>;
+                       };
+               };
+       };
+};
+
 &mdss_mdp {
        status = "okay";
 };
        status = "okay";
 };
 
+&qupv3_id_1 {
+       status = "okay";
+};
+
 &qupv3_id_2 {
        status = "okay";
 };
 };
 
 &usb_1_dwc3_ss {
-       remote-endpoint = <&pmic_glink_ss_in>;
+       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
 };
 
 &usb_1_hsphy {
 
        vdda-phy-supply = <&vreg_l6b_1p2>;
        vdda-pll-supply = <&vreg_l1b_0p88>;
+
+       orientation-switch;
+};
+
+&usb_1_qmpphy_dp_in {
+       remote-endpoint = <&mdss_dp0_out>;
+};
+
+&usb_1_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&usb_1_qmpphy_usb_ss_in {
+       remote-endpoint = <&usb_1_dwc3_ss>;
 };
 
 &usb_2 {
index ebcb481571c28267f0938b6b97394140fbf5a36f..d2024ba5a754f19986c71003f8237c2e5837864d 100644 (file)
                        };
                };
 
-               gpi_dma0: dma-controller@900000 {
+               gpi_dma0: dma-controller@9800000 {
                        compatible = "qcom,sm8350-gpi-dma", "qcom,sm6350-gpi-dma";
                        reg = <0 0x09800000 0 0x60000>;
                        interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
                        status = "disabled";
                };
 
-               pcie1_phy: phy@1c0f000 {
+               pcie1_phy: phy@1c0e000 {
                        compatible = "qcom,sm8350-qmp-gen3x2-pcie-phy";
                        reg = <0 0x01c0e000 0 0x2000>;
                        clocks = <&gcc GCC_PCIE_1_AUX_CLK>,
                        };
                };
 
+               cryptobam: dma-controller@1dc4000 {
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+                       reg = <0 0x01dc4000 0 0x24000>;
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+                       iommus = <&apps_smmu 0x594 0x0011>,
+                                <&apps_smmu 0x596 0x0011>;
+               };
+
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,sm8350-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0 0x01dfa000 0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x594 0x0011>,
+                                <&apps_smmu 0x596 0x0011>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
+                       interconnect-names = "memory";
+               };
+
                ipa: ipa@1e40000 {
                        compatible = "qcom,sm8350-ipa";
 
                        resets = <&gcc GCC_QUSB2PHY_SEC_BCR>;
                };
 
-               usb_1_qmpphy: phy@88e9000 {
+               usb_1_qmpphy: phy@88e8000 {
                        compatible = "qcom,sm8350-qmp-usb3-dp-phy";
                        reg = <0 0x088e8000 0 0x3000>;
 
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_qmpphy_usb_ss_in: endpoint {
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_qmpphy_dp_in: endpoint {
+                                       };
+                               };
+                       };
                };
 
                usb_2_qmpphy: phy-wrapper@88eb000 {
index e931545a2cac4dc16e5dd58150daecc826cf1c27..d5aeb7319776d8d5b68de361e4c49583b0407f15 100644 (file)
                                        reg = <1>;
 
                                        pmic_glink_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_dwc3_ss>;
+                                               remote-endpoint = <&usb_1_qmpphy_out>;
                                        };
                                };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu: endpoint {
+                                               remote-endpoint = <&fsa4480_sbu_mux>;
+                                       };
+                               };
+
                        };
                };
        };
        };
 };
 
+&i2c5 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+
+       typec-mux@42 {
+               compatible = "fcs,fsa4480";
+               reg = <0x42>;
+
+               interrupts-extended = <&tlmm 2 IRQ_TYPE_LEVEL_LOW>;
+
+               vcc-supply = <&vreg_bob>;
+               mode-switch;
+               orientation-switch;
+               svid = /bits/ 16 <0xff01>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               fsa4480_sbu_mux: endpoint {
+                                       remote-endpoint = <&pmic_glink_sbu>;
+                               };
+                       };
+               };
+       };
+};
+
 &mdss {
        status = "okay";
 };
        status = "okay";
 };
 
+&mdss_dp0 {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       mdss_dp0_out: endpoint {
+                               data-lanes = <0 1>;
+                               remote-endpoint = <&usb_1_qmpphy_dp_in>;
+                       };
+               };
+       };
+};
+
 &mdss_mdp {
        status = "okay";
 };
 };
 
 &usb_1_dwc3_ss {
-       remote-endpoint = <&pmic_glink_ss_in>;
+       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
 };
 
 &usb_1_hsphy {
 
        vdda-phy-supply = <&vreg_l6b_1p2>;
        vdda-pll-supply = <&vreg_l1b_0p91>;
+
+       orientation-switch;
+};
+
+&usb_1_qmpphy_dp_in {
+       remote-endpoint = <&mdss_dp0_out>;
+};
+
+&usb_1_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&usb_1_qmpphy_usb_ss_in {
+       remote-endpoint = <&usb_1_dwc3_ss>;
 };
 
 &vamacro {
index 595533aeafc406185ab470f3d740cdf6ccb263b2..ca147bad902b2d66f43ad253850c252051056e66 100644 (file)
@@ -8,6 +8,7 @@
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,sm8450-camcc.h>
 #include <dt-bindings/clock/qcom,sm8450-dispcc.h>
+#include <dt-bindings/clock/qcom,sm8450-videocc.h>
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_qmpphy_usb_ss_in: endpoint {
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_qmpphy_dp_in: endpoint {
+                                       };
+                               };
+                       };
                };
 
                remoteproc_slpi: remoteproc@2400000 {
                        };
                };
 
+               videocc: clock-controller@aaf0000 {
+                       compatible = "qcom,sm8450-videocc";
+                       reg = <0 0x0aaf0000 0 0x10000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_VIDEO_AHB_CLK>;
+                       power-domains = <&rpmhpd SM8450_MMCX>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                cci0: cci@ac15000 {
                        compatible = "qcom,sm8450-cci", "qcom,msm8996-cci";
                        reg = <0 0x0ac15000 0 0x1000>;
                                                opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
                                        };
 
-                                       rpmhpd_opp_svs: opp5 {
+                                       rpmhpd_opp_low_svs_l1: opp5 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp6 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
                                        };
 
-                                       rpmhpd_opp_svs_l1: opp6 {
+                                       rpmhpd_opp_svs_l0: opp7 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+                                       };
+
+                                       rpmhpd_opp_svs_l1: opp8 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
                                        };
 
-                                       rpmhpd_opp_nom: opp7 {
+                                       rpmhpd_opp_svs_l2: opp9 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+                                       };
+
+                                       rpmhpd_opp_nom: opp10 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
                                        };
 
-                                       rpmhpd_opp_nom_l1: opp8 {
+                                       rpmhpd_opp_nom_l1: opp11 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
                                        };
 
-                                       rpmhpd_opp_nom_l2: opp9 {
+                                       rpmhpd_opp_nom_l2: opp12 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
                                        };
 
-                                       rpmhpd_opp_turbo: opp10 {
+                                       rpmhpd_opp_turbo: opp13 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
                                        };
 
-                                       rpmhpd_opp_turbo_l1: opp11 {
+                                       rpmhpd_opp_turbo_l1: opp14 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
                                        };
                                };
                        };
                };
 
+               cryptobam: dma-controller@1dc4000 {
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+                       reg = <0 0x01dc4000 0 0x28000>;
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+                       iommus = <&apps_smmu 0x584 0x11>,
+                                <&apps_smmu 0x588 0x0>,
+                                <&apps_smmu 0x598 0x5>,
+                                <&apps_smmu 0x59a 0x0>,
+                                <&apps_smmu 0x59f 0x0>;
+               };
+
+               crypto: crypto@1de0000 {
+                       compatible = "qcom,sm8450-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0 0x01dfa000 0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x584 0x11>,
+                                <&apps_smmu 0x588 0x0>,
+                                <&apps_smmu 0x598 0x5>,
+                                <&apps_smmu 0x59a 0x0>,
+                                <&apps_smmu 0x59f 0x0>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
+                       interconnect-names = "memory";
+               };
+
                sdhc_2: mmc@8804000 {
                        compatible = "qcom,sm8450-sdhci", "qcom,sdhci-msm-v5";
                        reg = <0 0x08804000 0 0x1000>;
index e2b9bb6b1e27937bed773a0940e7aa311d5755f3..579f65f5237095301e76472f1b291adfdf484b87 100644 (file)
                serial0 = &uart7;
        };
 
+       wcd938x: audio-codec {
+               compatible = "qcom,wcd9385-codec";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wcd_default>;
+
+               qcom,micbias1-microvolt = <1800000>;
+               qcom,micbias2-microvolt = <1800000>;
+               qcom,micbias3-microvolt = <1800000>;
+               qcom,micbias4-microvolt = <1800000>;
+               qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+               qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+               qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+               qcom,rx-device = <&wcd_rx>;
+               qcom,tx-device = <&wcd_tx>;
+
+               reset-gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+
+               vdd-buck-supply = <&vreg_l15b_1p8>;
+               vdd-rxtx-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l15b_1p8>;
+               vdd-mic-bias-supply = <&vreg_bob1>;
+
+               #sound-dai-cells = <1>;
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
        };
 };
 
-&dispcc {
-       status = "okay";
-};
-
 &mdss {
        status = "okay";
 };
        status = "okay";
 };
 
-&mdss_mdp {
-       status = "okay";
-};
-
 &pcie_1_phy_aux_clk {
        clock-frequency = <1000>;
 };
        clock-frequency = <32000>;
 };
 
+&swr1 {
+       status = "okay";
+
+       /* WCD9385 RX */
+       wcd_rx: codec@0,4 {
+               compatible = "sdw20217010d00";
+               reg = <0 4>;
+               qcom,rx-port-mapping = <1 2 3 4 5>;
+       };
+};
+
+&swr2 {
+       status = "okay";
+
+       /* WCD9385 TX */
+       wcd_tx: codec@0,3 {
+               compatible = "sdw20217010d00";
+               reg = <0 3>;
+               qcom,tx-port-mapping = <1 1 2 3>;
+       };
+};
+
 &tlmm {
        gpio-reserved-ranges = <32 8>;
 
                drive-strength = <2>;
                bias-pull-down;
        };
+
+       wcd_default: wcd-reset-n-active-state {
+               pins = "gpio108";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
 };
 
 &uart7 {
index d5a645ee2a619f594524c58159a57096c86d5e42..8669d29144bb091d7040121d9e4c610fe6285b30 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "sm8550.dtsi"
 #include "pm8010.dtsi"
                serial0 = &uart7;
        };
 
+       wcd938x: audio-codec {
+               compatible = "qcom,wcd9385-codec";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wcd_default>;
+
+               qcom,micbias1-microvolt = <1800000>;
+               qcom,micbias2-microvolt = <1800000>;
+               qcom,micbias3-microvolt = <1800000>;
+               qcom,micbias4-microvolt = <1800000>;
+               qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+               qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+               qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+               qcom,rx-device = <&wcd_rx>;
+               qcom,tx-device = <&wcd_tx>;
+
+               reset-gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+
+               vdd-buck-supply = <&vreg_l15b_1p8>;
+               vdd-rxtx-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l15b_1p8>;
+               vdd-mic-bias-supply = <&vreg_bob1>;
+
+               #sound-dai-cells = <1>;
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
 
+       pmic-glink {
+               compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        vph_pwr: vph-pwr-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vph_pwr";
        };
 };
 
+&gcc {
+       clocks = <&bi_tcxo_div2>, <&sleep_clk>,
+                <&pcie0_phy>,
+                <&pcie1_phy>,
+                <0>,
+                <&ufs_mem_phy 0>,
+                <&ufs_mem_phy 1>,
+                <&ufs_mem_phy 2>,
+                <&usb_dp_qmpphy QMP_USB43DP_USB3_PIPE_CLK>;
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vreg_l3e_1p2>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "visionox,vtdr6130";
+               reg = <0>;
+
+               pinctrl-0 = <&sde_dsi_active>, <&sde_te_active>;
+               pinctrl-1 = <&sde_dsi_suspend>, <&sde_te_suspend>;
+               pinctrl-names = "default", "sleep";
+
+               vci-supply = <&vreg_l13b_3p0>;
+               vdd-supply = <&vreg_l11b_1p2>;
+               vddio-supply = <&vreg_l12b_1p8>;
+
+               reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+               port {
+                       panel0_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel0_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       vdds-supply = <&vreg_l1e_0p88>;
+       status = "okay";
+};
+
+&pcie_1_phy_aux_clk {
+       status = "disabled";
+};
+
+&pcie0 {
+       wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l1e_0p88>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+
+       status = "okay";
+};
+
+&pm8550_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_YELLOW>;
+               led-sources = <1>, <4>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <2000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <0>;
+       };
+
+       led-1 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <2>, <3>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <2000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <1>;
+       };
+};
+
+&pm8550b_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_1p8>;
+       vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&pcie_1_phy_aux_clk {
+       clock-frequency = <1000>;
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
        clock-frequency = <32000>;
 };
 
+&swr1 {
+       status = "okay";
+
+       /* WCD9385 RX */
+       wcd_rx: codec@0,4 {
+               compatible = "sdw20217010d00";
+               reg = <0 4>;
+               qcom,rx-port-mapping = <1 2 3 4 5>;
+       };
+};
+
+&swr2 {
+       status = "okay";
+
+       /* WCD9385 TX */
+       wcd_tx: codec@0,3 {
+               compatible = "sdw20217010d00";
+               reg = <0 3>;
+               qcom,tx-port-mapping = <1 1 2 3>;
+       };
+};
+
 &tlmm {
        gpio-reserved-ranges = <32 8>;
+
+       sde_dsi_active: sde-dsi-active-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       sde_dsi_suspend: sde-dsi-suspend-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       sde_te_active: sde-te-active-state {
+               pins = "gpio86";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       sde_te_suspend: sde-te-suspend-state {
+               pins = "gpio86";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       wcd_default: wcd-reset-n-active-state {
+               pins = "gpio108";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
 };
 
 &uart7 {
 };
 
 &usb_1_dwc3 {
-       dr_mode = "peripheral";
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_dwc3_ss {
+       remote-endpoint = <&pmic_glink_ss_in>;
 };
 
 &usb_1_hsphy {
        vdd-supply = <&vreg_l1e_0p88>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&pm8550b_eusb2_repeater>;
+
        status = "okay";
 };
 
index 6e9bad8f6f33ebe74cfab95e457b18bd9af45fc2..20924d570c07e8b42b1e0e82585154f791e6915b 100644 (file)
@@ -4,7 +4,9 @@
  */
 
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sm8450-videocc.h>
 #include <dt-bindings/clock/qcom,sm8550-gcc.h>
+#include <dt-bindings/clock/qcom,sm8550-gpucc.h>
 #include <dt-bindings/clock/qcom,sm8550-tcsr.h>
 #include <dt-bindings/clock/qcom,sm8550-dispcc.h>
 #include <dt-bindings/dma/qcom-gpi.h>
                };
 
                cryptobam: dma-controller@1dc4000 {
-                       compatible = "qcom,bam-v1.7.0";
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
                        reg = <0x0 0x01dc4000 0x0 0x28000>;
                        interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
                                 <&apps_smmu 0x481 0x0>;
                };
 
-               crypto: crypto@1de0000 {
+               crypto: crypto@1dfa000 {
                        compatible = "qcom,sm8550-qce", "qcom,sm8150-qce", "qcom,qce";
                        reg = <0x0 0x01dfa000 0x0 0x6000>;
                        dmas = <&cryptobam 4>, <&cryptobam 5>;
                        #reset-cells = <1>;
                };
 
+               gpucc: clock-controller@3d90000 {
+                       compatible = "qcom,sm8550-gpucc";
+                       reg = <0 0x03d90000 0 0xa000>;
+                       clocks = <&bi_tcxo_div2>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                remoteproc_mpss: remoteproc@4080000 {
                        compatible = "qcom,sm8550-mpss-pas";
                        reg = <0x0 0x04080000 0x0 0x4040>;
                        };
                };
 
+               videocc: clock-controller@aaf0000 {
+                       compatible = "qcom,sm8550-videocc";
+                       reg = <0 0x0aaf0000 0 0x10000>;
+                       clocks = <&bi_tcxo_div2>,
+                                <&gcc GCC_VIDEO_AHB_CLK>;
+                       power-domains = <&rpmhpd SM8550_MMCX>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                mdss: display-subsystem@ae00000 {
                        compatible = "qcom,sm8550-mdss";
                        reg = <0 0x0ae00000 0 0x1000>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
-                       status = "disabled";
                };
 
                usb_1_hsphy: phy@88e3000 {
                        #interrupt-cells = <4>;
                };
 
-               tlmm: pinctrl@f000000 {
+               tlmm: pinctrl@f100000 {
                        compatible = "qcom,sm8550-tlmm";
                        reg = <0 0x0f100000 0 0x300000>;
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                                rpmhpd_opp_table: opp-table {
                                        compatible = "operating-points-v2";
 
-                                       rpmhpd_opp_ret: opp1 {
+                                       rpmhpd_opp_ret: opp-16 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
                                        };
 
-                                       rpmhpd_opp_min_svs: opp2 {
+                                       rpmhpd_opp_min_svs: opp-48 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
                                        };
 
-                                       rpmhpd_opp_low_svs: opp3 {
+                                       rpmhpd_opp_lov_svs_d2: opp-52 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D2>;
+                                       };
+
+                                       rpmhpd_opp_lov_svs_d1: opp-56 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                                       };
+
+                                       rpmhpd_opp_lov_svs_d0: opp-60 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D0>;
+                                       };
+
+                                       rpmhpd_opp_low_svs: opp-64 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
                                        };
 
-                                       rpmhpd_opp_svs: opp4 {
+                                       rpmhpd_opp_low_svs_l1: opp-80 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp-128 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
                                        };
 
-                                       rpmhpd_opp_svs_l1: opp5 {
+                                       rpmhpd_opp_svs_l0: opp-144 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+                                       };
+
+                                       rpmhpd_opp_svs_l1: opp-192 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
                                        };
 
-                                       rpmhpd_opp_nom: opp6 {
+                                       rpmhpd_opp_nom: opp-256 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
                                        };
 
-                                       rpmhpd_opp_nom_l1: opp7 {
+                                       rpmhpd_opp_nom_l1: opp-320 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
                                        };
 
-                                       rpmhpd_opp_nom_l2: opp8 {
+                                       rpmhpd_opp_nom_l2: opp-336 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
                                        };
 
-                                       rpmhpd_opp_turbo: opp9 {
+                                       rpmhpd_opp_turbo: opp-384 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
                                        };
 
-                                       rpmhpd_opp_turbo_l1: opp10 {
+                                       rpmhpd_opp_turbo_l1: opp-416 {
                                                opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
                                        };
                                };
diff --git a/include/dt-bindings/clock/qcom,sm8450-gpucc.h b/include/dt-bindings/clock/qcom,sm8450-gpucc.h
new file mode 100644 (file)
index 0000000..712b171
--- /dev/null
@@ -0,0 +1,48 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8450_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8450_H
+
+/* Clocks */
+#define GPU_CC_AHB_CLK                         0
+#define GPU_CC_CRC_AHB_CLK                     1
+#define GPU_CC_CX_APB_CLK                      2
+#define GPU_CC_CX_FF_CLK                       3
+#define GPU_CC_CX_GMU_CLK                      4
+#define GPU_CC_CX_SNOC_DVM_CLK                 5
+#define GPU_CC_CXO_AON_CLK                     6
+#define GPU_CC_CXO_CLK                         7
+#define GPU_CC_DEMET_CLK                       8
+#define GPU_CC_DEMET_DIV_CLK_SRC               9
+#define GPU_CC_FF_CLK_SRC                      10
+#define GPU_CC_FREQ_MEASURE_CLK                        11
+#define GPU_CC_GMU_CLK_SRC                     12
+#define GPU_CC_GX_FF_CLK                       13
+#define GPU_CC_GX_GFX3D_CLK                    14
+#define GPU_CC_GX_GFX3D_RDVM_CLK               15
+#define GPU_CC_GX_GMU_CLK                      16
+#define GPU_CC_GX_VSENSE_CLK                   17
+#define GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK         18
+#define GPU_CC_HUB_AHB_DIV_CLK_SRC             19
+#define GPU_CC_HUB_AON_CLK                     20
+#define GPU_CC_HUB_CLK_SRC                     21
+#define GPU_CC_HUB_CX_INT_CLK                  22
+#define GPU_CC_HUB_CX_INT_DIV_CLK_SRC          23
+#define GPU_CC_MEMNOC_GFX_CLK                  24
+#define GPU_CC_MND1X_0_GFX3D_CLK               25
+#define GPU_CC_MND1X_1_GFX3D_CLK               26
+#define GPU_CC_PLL0                            27
+#define GPU_CC_PLL1                            28
+#define GPU_CC_SLEEP_CLK                       29
+#define GPU_CC_XO_CLK_SRC                      30
+#define GPU_CC_XO_DIV_CLK_SRC                  31
+
+/* GDSCs */
+#define GPU_GX_GDSC                            0
+#define GPU_CX_GDSC                            1
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8450-videocc.h b/include/dt-bindings/clock/qcom,sm8450-videocc.h
new file mode 100644 (file)
index 0000000..9d795ad
--- /dev/null
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_VIDEO_CC_SM8450_H
+#define _DT_BINDINGS_CLK_QCOM_VIDEO_CC_SM8450_H
+
+/* VIDEO_CC clocks */
+#define VIDEO_CC_MVS0_CLK                                      0
+#define VIDEO_CC_MVS0_CLK_SRC                                  1
+#define VIDEO_CC_MVS0_DIV_CLK_SRC                              2
+#define VIDEO_CC_MVS0C_CLK                                     3
+#define VIDEO_CC_MVS0C_DIV2_DIV_CLK_SRC                                4
+#define VIDEO_CC_MVS1_CLK                                      5
+#define VIDEO_CC_MVS1_CLK_SRC                                  6
+#define VIDEO_CC_MVS1_DIV_CLK_SRC                              7
+#define VIDEO_CC_MVS1C_CLK                                     8
+#define VIDEO_CC_MVS1C_DIV2_DIV_CLK_SRC                                9
+#define VIDEO_CC_PLL0                                          10
+#define VIDEO_CC_PLL1                                          11
+
+/* VIDEO_CC power domains */
+#define VIDEO_CC_MVS0C_GDSC                                    0
+#define VIDEO_CC_MVS0_GDSC                                     1
+#define VIDEO_CC_MVS1C_GDSC                                    2
+#define VIDEO_CC_MVS1_GDSC                                     3
+
+/* VIDEO_CC resets */
+#define CVP_VIDEO_CC_INTERFACE_BCR                             0
+#define CVP_VIDEO_CC_MVS0_BCR                                  1
+#define CVP_VIDEO_CC_MVS0C_BCR                                 2
+#define CVP_VIDEO_CC_MVS1_BCR                                  3
+#define CVP_VIDEO_CC_MVS1C_BCR                                 4
+#define VIDEO_CC_MVS0C_CLK_ARES                                        5
+#define VIDEO_CC_MVS1C_CLK_ARES                                        6
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8550-gpucc.h b/include/dt-bindings/clock/qcom,sm8550-gpucc.h
new file mode 100644 (file)
index 0000000..a676054
--- /dev/null
@@ -0,0 +1,48 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8550_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8550_H
+
+/* GPU_CC clocks */
+#define GPU_CC_AHB_CLK                                         0
+#define GPU_CC_CRC_AHB_CLK                                     1
+#define GPU_CC_CX_FF_CLK                                       2
+#define GPU_CC_CX_GMU_CLK                                      3
+#define GPU_CC_CXO_AON_CLK                                     4
+#define GPU_CC_CXO_CLK                                         5
+#define GPU_CC_DEMET_CLK                                       6
+#define GPU_CC_DEMET_DIV_CLK_SRC                               7
+#define GPU_CC_FF_CLK_SRC                                      8
+#define GPU_CC_FREQ_MEASURE_CLK                                        9
+#define GPU_CC_GMU_CLK_SRC                                     10
+#define GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK                         11
+#define GPU_CC_HUB_AON_CLK                                     12
+#define GPU_CC_HUB_CLK_SRC                                     13
+#define GPU_CC_HUB_CX_INT_CLK                                  14
+#define GPU_CC_MEMNOC_GFX_CLK                                  15
+#define GPU_CC_MND1X_0_GFX3D_CLK                               16
+#define GPU_CC_MND1X_1_GFX3D_CLK                               17
+#define GPU_CC_PLL0                                            18
+#define GPU_CC_PLL1                                            19
+#define GPU_CC_SLEEP_CLK                                       20
+#define GPU_CC_XO_CLK_SRC                                      21
+#define GPU_CC_XO_DIV_CLK_SRC                                  22
+
+/* GPU_CC power domains */
+#define GPU_CC_CX_GDSC                                         0
+#define GPU_CC_GX_GDSC                                         1
+
+/* GPU_CC resets */
+#define GPUCC_GPU_CC_ACD_BCR                                   0
+#define GPUCC_GPU_CC_CX_BCR                                    1
+#define GPUCC_GPU_CC_FAST_HUB_BCR                              2
+#define GPUCC_GPU_CC_FF_BCR                                    3
+#define GPUCC_GPU_CC_GFX3D_AON_BCR                             4
+#define GPUCC_GPU_CC_GMU_BCR                                   5
+#define GPUCC_GPU_CC_GX_BCR                                    6
+#define GPUCC_GPU_CC_XO_BCR                                    7
+
+#endif
index 1bf8e87ecd7ee2bb3b7b9c4a12f1671c0e376d1f..4ede277d20e1410d07ad47c31da22d341a94220e 100644 (file)
 #define SC8280XP_XO            15
 
 /* SDM845 Power Domain performance levels */
-#define RPMH_REGULATOR_LEVEL_RETENTION 16
-#define RPMH_REGULATOR_LEVEL_MIN_SVS   48
-#define RPMH_REGULATOR_LEVEL_LOW_SVS_D1        56
-#define RPMH_REGULATOR_LEVEL_LOW_SVS   64
-#define RPMH_REGULATOR_LEVEL_LOW_SVS_L1        80
-#define RPMH_REGULATOR_LEVEL_SVS       128
-#define RPMH_REGULATOR_LEVEL_SVS_L0    144
-#define RPMH_REGULATOR_LEVEL_SVS_L1    192
-#define RPMH_REGULATOR_LEVEL_SVS_L2    224
-#define RPMH_REGULATOR_LEVEL_NOM       256
-#define RPMH_REGULATOR_LEVEL_NOM_L1    320
-#define RPMH_REGULATOR_LEVEL_NOM_L2    336
-#define RPMH_REGULATOR_LEVEL_TURBO     384
-#define RPMH_REGULATOR_LEVEL_TURBO_L1  416
+#define RPMH_REGULATOR_LEVEL_RETENTION         16
+#define RPMH_REGULATOR_LEVEL_MIN_SVS           48
+#define RPMH_REGULATOR_LEVEL_LOW_SVS_D2                52
+#define RPMH_REGULATOR_LEVEL_LOW_SVS_D1                56
+#define RPMH_REGULATOR_LEVEL_LOW_SVS_D0                60
+#define RPMH_REGULATOR_LEVEL_LOW_SVS           64
+#define RPMH_REGULATOR_LEVEL_LOW_SVS_P1                72
+#define RPMH_REGULATOR_LEVEL_LOW_SVS_L1                80
+#define RPMH_REGULATOR_LEVEL_LOW_SVS_L2                96
+#define RPMH_REGULATOR_LEVEL_SVS               128
+#define RPMH_REGULATOR_LEVEL_SVS_L0            144
+#define RPMH_REGULATOR_LEVEL_SVS_L1            192
+#define RPMH_REGULATOR_LEVEL_SVS_L2            224
+#define RPMH_REGULATOR_LEVEL_NOM               256
+#define RPMH_REGULATOR_LEVEL_NOM_L0            288
+#define RPMH_REGULATOR_LEVEL_NOM_L1            320
+#define RPMH_REGULATOR_LEVEL_NOM_L2            336
+#define RPMH_REGULATOR_LEVEL_TURBO             384
+#define RPMH_REGULATOR_LEVEL_TURBO_L0          400
+#define RPMH_REGULATOR_LEVEL_TURBO_L1          416
+#define RPMH_REGULATOR_LEVEL_TURBO_L2          432
+#define RPMH_REGULATOR_LEVEL_TURBO_L3          448
+#define RPMH_REGULATOR_LEVEL_SUPER_TURBO       464
+#define RPMH_REGULATOR_LEVEL_SUPER_TURBO_NO_CPR        480
 
 /* MDM9607 Power Domains */
 #define MDM9607_VDDCX          0
diff --git a/include/dt-bindings/reset/qcom,sm8450-gpucc.h b/include/dt-bindings/reset/qcom,sm8450-gpucc.h
new file mode 100644 (file)
index 0000000..58ba8f9
--- /dev/null
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef _DT_BINDINGS_RESET_QCOM_GPU_CC_SM8450_H
+#define _DT_BINDINGS_RESET_QCOM_GPU_CC_SM8450_H
+
+#define GPUCC_GPU_CC_ACD_BCR                   0
+#define GPUCC_GPU_CC_CX_BCR                    1
+#define GPUCC_GPU_CC_FAST_HUB_BCR              2
+#define GPUCC_GPU_CC_FF_BCR                    3
+#define GPUCC_GPU_CC_GFX3D_AON_BCR             4
+#define GPUCC_GPU_CC_GMU_BCR                   5
+#define GPUCC_GPU_CC_GX_BCR                    6
+#define GPUCC_GPU_CC_XO_BCR                    7
+#define GPUCC_GPU_CC_GX_ACD_IROOT_BCR          8
+
+#endif