Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / qcom / msm8998.dtsi
index 574be78a936e223f13bb6329b6699ad7a0623b53..c6f81431983eea7480f450658630e90a084a82ba 100644 (file)
@@ -4,6 +4,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-msm8998.h>
 #include <dt-bindings/clock/qcom,rpmcc.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/gpio/gpio.h>
 
 / {
@@ -78,6 +79,7 @@
                        compatible = "arm,armv8";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
+                       cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
                        next-level-cache = <&L2_0>;
                        L2_0: l2-cache {
                                compatible = "arm,arch-cache";
@@ -96,6 +98,7 @@
                        compatible = "arm,armv8";
                        reg = <0x0 0x1>;
                        enable-method = "psci";
+                       cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
                        next-level-cache = <&L2_0>;
                        L1_I_1: l1-icache {
                                compatible = "arm,arch-cache";
                        compatible = "arm,armv8";
                        reg = <0x0 0x2>;
                        enable-method = "psci";
+                       cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
                        next-level-cache = <&L2_0>;
                        L1_I_2: l1-icache {
                                compatible = "arm,arch-cache";
                        compatible = "arm,armv8";
                        reg = <0x0 0x3>;
                        enable-method = "psci";
+                       cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
                        next-level-cache = <&L2_0>;
                        L1_I_3: l1-icache {
                                compatible = "arm,arch-cache";
                        compatible = "arm,armv8";
                        reg = <0x0 0x100>;
                        enable-method = "psci";
+                       cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
                        next-level-cache = <&L2_1>;
                        L2_1: l2-cache {
                                compatible = "arm,arch-cache";
                        compatible = "arm,armv8";
                        reg = <0x0 0x101>;
                        enable-method = "psci";
+                       cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
                        next-level-cache = <&L2_1>;
                        L1_I_101: l1-icache {
                                compatible = "arm,arch-cache";
                        compatible = "arm,armv8";
                        reg = <0x0 0x102>;
                        enable-method = "psci";
+                       cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
                        next-level-cache = <&L2_1>;
                        L1_I_102: l1-icache {
                                compatible = "arm,arch-cache";
                        compatible = "arm,armv8";
                        reg = <0x0 0x103>;
                        enable-method = "psci";
+                       cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
                        next-level-cache = <&L2_1>;
                        L1_I_103: l1-icache {
                                compatible = "arm,arch-cache";
                                };
                        };
                };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "little-retention";
+                               arm,psci-suspend-param = <0x00000002>;
+                               entry-latency-us = <81>;
+                               exit-latency-us = <86>;
+                               min-residency-us = <200>;
+                       };
+
+                       LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "little-power-collapse";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <273>;
+                               exit-latency-us = <612>;
+                               min-residency-us = <1000>;
+                               local-timer-stop;
+                       };
+
+                       BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "big-retention";
+                               arm,psci-suspend-param = <0x00000002>;
+                               entry-latency-us = <79>;
+                               exit-latency-us = <82>;
+                               min-residency-us = <200>;
+                       };
+
+                       BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "big-power-collapse";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <336>;
+                               exit-latency-us = <525>;
+                               min-residency-us = <1000>;
+                               local-timer-stop;
+                       };
+               };
        };
 
        firmware {
                                compatible = "qcom,rpmcc-msm8998", "qcom,rpmcc";
                                #clock-cells = <1>;
                        };
+
+                       rpmpd: power-controller {
+                               compatible = "qcom,msm8998-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 = <16>;
+                                       };
+
+                                       rpmpd_opp_ret_plus: opp2 {
+                                               opp-level = <32>;
+                                       };
+
+                                       rpmpd_opp_min_svs: opp3 {
+                                               opp-level = <48>;
+                                       };
+
+                                       rpmpd_opp_low_svs: opp4 {
+                                               opp-level = <64>;
+                                       };
+
+                                       rpmpd_opp_svs: opp5 {
+                                               opp-level = <128>;
+                                       };
+
+                                       rpmpd_opp_svs_plus: opp6 {
+                                               opp-level = <192>;
+                                       };
+
+                                       rpmpd_opp_nom: opp7 {
+                                               opp-level = <256>;
+                                       };
+
+                                       rpmpd_opp_nom_plus: opp8 {
+                                               opp-level = <320>;
+                                       };
+
+                                       rpmpd_opp_turbo: opp9 {
+                                               opp-level = <384>;
+                                       };
+
+                                       rpmpd_opp_turbo_plus: opp10 {
+                                               opp-level = <512>;
+                                       };
+                               };
+                       };
                };
        };
 
                ranges = <0 0 0 0xffffffff>;
                compatible = "simple-bus";
 
-               rpm_msg_ram: memory@68000 {
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,gcc-msm8998";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       reg = <0x00100000 0xb0000>;
+               };
+
+               rpm_msg_ram: memory@778000 {
                        compatible = "qcom,rpm-msg-ram";
-                       reg = <0x778000 0x7000>;
+                       reg = <0x00778000 0x7000>;
                };
 
                qfprom: qfprom@780000 {
                        compatible = "qcom,qfprom";
-                       reg = <0x780000 0x621c>;
+                       reg = <0x00780000 0x621c>;
                        #address-cells = <1>;
                        #size-cells = <1>;
 
                        };
                };
 
-               gcc: clock-controller@100000 {
-                       compatible = "qcom,gcc-msm8998";
-                       #clock-cells = <1>;
+               tsens0: thermal@10ab000 {
+                       compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
+                       reg = <0x010ab000 0x1000>, /* TM */
+                             <0x010aa000 0x1000>; /* SROT */
+
+                       #qcom,sensors = <14>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens1: thermal@10ae000 {
+                       compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
+                       reg = <0x010ae000 0x1000>, /* TM */
+                             <0x010ad000 0x1000>; /* SROT */
+
+                       #qcom,sensors = <8>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               anoc1_smmu: iommu@1680000 {
+                       compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
+                       reg = <0x01680000 0x10000>;
+                       #iommu-cells = <1>;
+
+                       #global-interrupts = <0>;
+                       interrupts =
+                               <GIC_SPI 364 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 365 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 366 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 367 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 368 IRQ_TYPE_EDGE_RISING>,
+                               <GIC_SPI 369 IRQ_TYPE_EDGE_RISING>;
+               };
+
+               pcie0: pci@1c00000 {
+                       compatible = "qcom,pcie-msm8996";
+                       reg =   <0x01c00000 0x2000>,
+                               <0x1b000000 0xf1d>,
+                               <0x1b000f20 0xa8>,
+                               <0x1b100000 0x100000>;
+                       reg-names = "parf", "dbi", "elbi", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       num-lanes = <1>;
+                       phys = <&pciephy>;
+                       phy-names = "pciephy";
+
+                       ranges = <0x01000000 0x0 0x1b200000 0x1b200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x1b300000 0x1b300000 0x0 0xd00000>;
+
+                       #interrupt-cells = <1>;
+                       interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 135 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc 0 136 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc 0 138 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc 0 139 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
+                                <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_AUX_CLK>;
+                       clock-names = "pipe", "bus_master", "bus_slave", "cfg", "aux";
+
+                       power-domains = <&gcc PCIE_0_GDSC>;
+                       iommu-map = <0x100 &anoc1_smmu 0x1480 1>;
+                       perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
+               };
+
+               phy@1c06000 {
+                       compatible = "qcom,msm8998-qmp-pcie-phy";
+                       reg = <0x01c06000 0x18c>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_CLKREF_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref";
+
+                       resets = <&gcc GCC_PCIE_0_PHY_BCR>, <&gcc GCC_PCIE_PHY_BCR>;
+                       reset-names = "phy", "common";
+
+                       vdda-phy-supply = <&vreg_l1a_0p875>;
+                       vdda-pll-supply = <&vreg_l2a_1p2>;
+
+                       pciephy: lane@1c06800 {
+                               reg = <0x01c06200 0x128>, <0x01c06400 0x1fc>, <0x01c06800 0x20c>;
+                               #phy-cells = <0>;
+
+                               clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
+                               clock-names = "pipe0";
+                               clock-output-names = "pcie_0_pipe_clk_src";
+                               #clock-cells = <0>;
+                       };
+               };
+
+               ufshc: ufshc@1da4000 {
+                       compatible = "qcom,msm8998-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
+                       reg = <0x01da4000 0x2500>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&ufsphy_lanes>;
+                       phy-names = "ufsphy";
+                       lanes-per-direction = <2>;
+                       power-domains = <&gcc UFS_GDSC>;
                        #reset-cells = <1>;
-                       #power-domain-cells = <1>;
-                       reg = <0x100000 0xb0000>;
+
+                       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";
+                       clocks =
+                               <&gcc GCC_UFS_AXI_CLK>,
+                               <&gcc GCC_AGGRE1_UFS_AXI_CLK>,
+                               <&gcc GCC_UFS_AHB_CLK>,
+                               <&gcc GCC_UFS_UNIPRO_CORE_CLK>,
+                               <&rpmcc RPM_SMD_LN_BB_CLK1>,
+                               <&gcc GCC_UFS_TX_SYMBOL_0_CLK>,
+                               <&gcc GCC_UFS_RX_SYMBOL_0_CLK>,
+                               <&gcc GCC_UFS_RX_SYMBOL_1_CLK>;
+                       freq-table-hz =
+                               <50000000 200000000>,
+                               <0 0>,
+                               <0 0>,
+                               <37500000 150000000>,
+                               <0 0>,
+                               <0 0>,
+                               <0 0>,
+                               <0 0>;
+
+                       resets = <&gcc GCC_UFS_BCR>;
+                       reset-names = "rst";
+               };
+
+               ufsphy: phy@1da7000 {
+                       compatible = "qcom,msm8998-qmp-ufs-phy";
+                       reg = <0x01da7000 0x18c>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       clock-names =
+                               "ref",
+                               "ref_aux";
+                       clocks =
+                               <&gcc GCC_UFS_CLKREF_CLK>,
+                               <&gcc GCC_UFS_PHY_AUX_CLK>;
+
+                       reset-names = "ufsphy";
+                       resets = <&ufshc 0>;
+
+                       ufsphy_lanes: lanes@1da7400 {
+                               reg = <0x01da7400 0x128>,
+                                     <0x01da7600 0x1fc>,
+                                     <0x01da7c00 0x1dc>,
+                                     <0x01da7800 0x128>,
+                                     <0x01da7a00 0x1fc>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               tcsr_mutex_regs: syscon@1f40000 {
+                       compatible = "syscon";
+                       reg = <0x01f40000 0x20000>;
                };
 
                tlmm: pinctrl@3400000 {
                        compatible = "qcom,msm8998-pinctrl";
-                       reg = <0x3400000 0xc00000>;
+                       reg = <0x03400000 0xc00000>;
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        #gpio-cells = <0x2>;
                        #interrupt-cells = <0x2>;
                };
 
+               stm@6002000 {
+                       compatible = "arm,coresight-stm", "arm,primecell";
+                       reg = <0x06002000 0x1000>,
+                             <0x16280000 0x180000>;
+                       reg-names = "stm-base", "stm-data-base";
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       out-ports {
+                               port {
+                                       stm_out: endpoint {
+                                               remote-endpoint = <&funnel0_in7>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@6041000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x06041000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       out-ports {
+                               port {
+                                       funnel0_out: endpoint {
+                                               remote-endpoint =
+                                                 <&merge_funnel_in0>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@7 {
+                                       reg = <7>;
+                                       funnel0_in7: endpoint {
+                                               remote-endpoint = <&stm_out>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@6042000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x06042000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       out-ports {
+                               port {
+                                       funnel1_out: endpoint {
+                                               remote-endpoint =
+                                                 <&merge_funnel_in1>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@6 {
+                                       reg = <6>;
+                                       funnel1_in6: endpoint {
+                                               remote-endpoint =
+                                                 <&apss_merge_funnel_out>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@6045000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x06045000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       out-ports {
+                               port {
+                                       merge_funnel_out: endpoint {
+                                               remote-endpoint =
+                                                 <&etf_in>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       merge_funnel_in0: endpoint {
+                                               remote-endpoint =
+                                                 <&funnel0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       merge_funnel_in1: endpoint {
+                                               remote-endpoint =
+                                                 <&funnel1_out>;
+                                       };
+                               };
+                       };
+               };
+
+               replicator@6046000 {
+                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
+                       reg = <0x06046000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       out-ports {
+                               port {
+                                       replicator_out: endpoint {
+                                               remote-endpoint = <&etr_in>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               port {
+                                       replicator_in: endpoint {
+                                               remote-endpoint = <&etf_out>;
+                                       };
+                               };
+                       };
+               };
+
+               etf@6047000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0x06047000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       out-ports {
+                               port {
+                                       etf_out: endpoint {
+                                               remote-endpoint =
+                                                 <&replicator_in>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               port {
+                                       etf_in: endpoint {
+                                               remote-endpoint =
+                                                 <&merge_funnel_out>;
+                                       };
+                               };
+                       };
+               };
+
+               etr@6048000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0x06048000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       arm,scatter-gather;
+
+                       in-ports {
+                               port {
+                                       etr_in: endpoint {
+                                               remote-endpoint =
+                                                 <&replicator_out>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@7840000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07840000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       cpu = <&CPU0>;
+
+                       out-ports {
+                               port {
+                                       etm0_out: endpoint {
+                                               remote-endpoint =
+                                                 <&apss_funnel_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@7940000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07940000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       cpu = <&CPU1>;
+
+                       out-ports {
+                               port {
+                                       etm1_out: endpoint {
+                                               remote-endpoint =
+                                                 <&apss_funnel_in1>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@7a40000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07a40000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       cpu = <&CPU2>;
+
+                       out-ports {
+                               port {
+                                       etm2_out: endpoint {
+                                               remote-endpoint =
+                                                 <&apss_funnel_in2>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@7b40000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07b40000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       cpu = <&CPU3>;
+
+                       out-ports {
+                               port {
+                                       etm3_out: endpoint {
+                                               remote-endpoint =
+                                                 <&apss_funnel_in3>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@7b60000 { /* APSS Funnel */
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07b60000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       out-ports {
+                               port {
+                                       apss_funnel_out: endpoint {
+                                               remote-endpoint =
+                                                 <&apss_merge_funnel_in>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       apss_funnel_in0: endpoint {
+                                               remote-endpoint =
+                                                 <&etm0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       apss_funnel_in1: endpoint {
+                                               remote-endpoint =
+                                                 <&etm1_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       apss_funnel_in2: endpoint {
+                                               remote-endpoint =
+                                                 <&etm2_out>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       apss_funnel_in3: endpoint {
+                                               remote-endpoint =
+                                                 <&etm3_out>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                                       apss_funnel_in4: endpoint {
+                                               remote-endpoint =
+                                                 <&etm4_out>;
+                                       };
+                               };
+
+                               port@5 {
+                                       reg = <5>;
+                                       apss_funnel_in5: endpoint {
+                                               remote-endpoint =
+                                                 <&etm5_out>;
+                                       };
+                               };
+
+                               port@6 {
+                                       reg = <6>;
+                                       apss_funnel_in6: endpoint {
+                                               remote-endpoint =
+                                                 <&etm6_out>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <7>;
+                                       apss_funnel_in7: endpoint {
+                                               remote-endpoint =
+                                                 <&etm7_out>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@7b70000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x07b70000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       out-ports {
+                               port {
+                                       apss_merge_funnel_out: endpoint {
+                                               remote-endpoint =
+                                                 <&funnel1_in6>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               port {
+                                       apss_merge_funnel_in: endpoint {
+                                               remote-endpoint =
+                                                 <&apss_funnel_out>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@7c40000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07c40000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       cpu = <&CPU4>;
+
+                       port{
+                               etm4_out: endpoint {
+                                       remote-endpoint = <&apss_funnel_in4>;
+                               };
+                       };
+               };
+
+               etm@7d40000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07d40000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       cpu = <&CPU5>;
+
+                       port{
+                               etm5_out: endpoint {
+                                       remote-endpoint = <&apss_funnel_in5>;
+                               };
+                       };
+               };
+
+               etm@7e40000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07e40000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       cpu = <&CPU6>;
+
+                       port{
+                               etm6_out: endpoint {
+                                       remote-endpoint = <&apss_funnel_in6>;
+                               };
+                       };
+               };
+
+               etm@7f40000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0x07f40000 0x1000>;
+
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+
+                       cpu = <&CPU7>;
+
+                       port{
+                               etm7_out: endpoint {
+                                       remote-endpoint = <&apss_funnel_in7>;
+                               };
+                       };
+               };
+
                spmi_bus: spmi@800f000 {
                        compatible = "qcom,spmi-pmic-arb";
-                       reg =   <0x800f000 0x1000>,
-                               <0x8400000 0x1000000>,
-                               <0x9400000 0x1000000>,
-                               <0xa400000 0x220000>,
-                               <0x800a000 0x3000>;
+                       reg =   <0x0800f000 0x1000>,
+                               <0x08400000 0x1000000>,
+                               <0x09400000 0x1000000>,
+                               <0x0a400000 0x220000>,
+                               <0x0800a000 0x3000>;
                        reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
                        interrupt-names = "periph_irq";
                        interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
                        cell-index = <0>;
                };
 
-               tsens0: thermal@10ab000 {
-                       compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
-                       reg = <0x10ab000 0x1000>, /* TM */
-                             <0x10aa000 0x1000>; /* SROT */
-
-                       #qcom,sensors = <14>;
-                       #thermal-sensor-cells = <1>;
-               };
-
-               tsens1: thermal@10ae000 {
-                       compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
-                       reg = <0x10ae000 0x1000>, /* TM */
-                             <0x10ad000 0x1000>; /* SROT */
-
-                       #qcom,sensors = <8>;
-                       #thermal-sensor-cells = <1>;
-               };
-
-               tcsr_mutex_regs: syscon@1f40000 {
-                       compatible = "syscon";
-                       reg = <0x1f40000 0x20000>;
-               };
-
-               apcs_glb: mailbox@9820000 {
-                       compatible = "qcom,msm8998-apcs-hmss-global";
-                       reg = <0x17911000 0x1000>;
-
-                       #mbox-cells = <1>;
-               };
-
                usb3: usb@a8f8800 {
                        compatible = "qcom,msm8998-dwc3", "qcom,dwc3";
                        reg = <0x0a8f8800 0x400>;
 
                sdhc2: sdhci@c0a4900 {
                        compatible = "qcom,sdhci-msm-v4";
-                       reg = <0xc0a4900 0x314>, <0xc0a4000 0x800>;
+                       reg = <0x0c0a4900 0x314>, <0x0c0a4000 0x800>;
                        reg-names = "hc_mem", "core_mem";
 
                        interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
                        #size-cells = <0>;
                };
 
+               blsp2_uart1: serial@c1b0000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x0c1b0000 0x1000>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
                blsp2_i2c0: i2c@c1b5000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x0c1b5000 0x600>;
                        #size-cells = <0>;
                };
 
-               blsp2_uart1: serial@c1b0000 {
-                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
-                       reg = <0xc1b0000 0x1000>;
-                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
-                                <&gcc GCC_BLSP2_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       status = "disabled";
+               apcs_glb: mailbox@17911000 {
+                       compatible = "qcom,msm8998-apcs-hmss-global";
+                       reg = <0x17911000 0x1000>;
+
+                       #mbox-cells = <1>;
                };
 
                timer@17920000 {
                        redistributor-stride = <0x0 0x20000>;
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
                };
-
-               ufshc: ufshc@1da4000 {
-                       compatible = "qcom,msm8998-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
-                       reg = <0x01da4000 0x2500>;
-                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufsphy_lanes>;
-                       phy-names = "ufsphy";
-                       lanes-per-direction = <2>;
-                       power-domains = <&gcc UFS_GDSC>;
-                       #reset-cells = <1>;
-
-                       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";
-                       clocks =
-                               <&gcc GCC_UFS_AXI_CLK>,
-                               <&gcc GCC_AGGRE1_UFS_AXI_CLK>,
-                               <&gcc GCC_UFS_AHB_CLK>,
-                               <&gcc GCC_UFS_UNIPRO_CORE_CLK>,
-                               <&rpmcc RPM_SMD_LN_BB_CLK1>,
-                               <&gcc GCC_UFS_TX_SYMBOL_0_CLK>,
-                               <&gcc GCC_UFS_RX_SYMBOL_0_CLK>,
-                               <&gcc GCC_UFS_RX_SYMBOL_1_CLK>;
-                       freq-table-hz =
-                               <50000000 200000000>,
-                               <0 0>,
-                               <0 0>,
-                               <37500000 150000000>,
-                               <0 0>,
-                               <0 0>,
-                               <0 0>,
-                               <0 0>;
-
-                       resets = <&gcc GCC_UFS_BCR>;
-                       reset-names = "rst";
-               };
-
-               ufsphy: phy@1da7000 {
-                       compatible = "qcom,msm8998-qmp-ufs-phy";
-                       reg = <0x01da7000 0x18c>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
-
-                       clock-names =
-                               "ref",
-                               "ref_aux";
-                       clocks =
-                               <&gcc GCC_UFS_CLKREF_CLK>,
-                               <&gcc GCC_UFS_PHY_AUX_CLK>;
-
-                       reset-names = "ufsphy";
-                       resets = <&ufshc 0>;
-
-                       ufsphy_lanes: lanes@1da7400 {
-                               reg = <0x01da7400 0x128>,
-                                     <0x01da7600 0x1fc>,
-                                     <0x01da7c00 0x1dc>,
-                                     <0x01da7800 0x128>,
-                                     <0x01da7a00 0x1fc>;
-                               #phy-cells = <0>;
-                       };
-               };
        };
 };