Merge tag 'soc-dt-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[platform/kernel/linux-rpi.git] / arch / arm64 / boot / dts / qcom / sm6350.dtsi
index ad34301..30e7701 100644 (file)
@@ -56,6 +56,8 @@
                        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
                                         &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
                                        <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD0>;
+                       power-domain-names = "psci";
                        #cooling-cells = <2>;
                        L2_0: l2-cache {
                                compatible = "cache";
@@ -84,6 +86,8 @@
                        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
                                         &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
                                        <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD1>;
+                       power-domain-names = "psci";
                        #cooling-cells = <2>;
                        L2_100: l2-cache {
                                compatible = "cache";
                        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
                                         &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
                                        <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD2>;
+                       power-domain-names = "psci";
                        #cooling-cells = <2>;
                        L2_200: l2-cache {
                                compatible = "cache";
                        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
                                         &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
                                        <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD3>;
+                       power-domain-names = "psci";
                        #cooling-cells = <2>;
                        L2_300: l2-cache {
                                compatible = "cache";
                        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
                                         &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
                                        <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD4>;
+                       power-domain-names = "psci";
                        #cooling-cells = <2>;
                        L2_400: l2-cache {
                                compatible = "cache";
                        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
                                         &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
                                        <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD5>;
+                       power-domain-names = "psci";
                        #cooling-cells = <2>;
                        L2_500: l2-cache {
                                compatible = "cache";
                        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
                                         &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
                                        <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD6>;
+                       power-domain-names = "psci";
                        #cooling-cells = <2>;
                        L2_600: l2-cache {
                                compatible = "cache";
                        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
                                         &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
                                        <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
+                       power-domains = <&CPU_PD7>;
+                       power-domain-names = "psci";
                        #cooling-cells = <2>;
                        L2_700: l2-cache {
                                compatible = "cache";
                                };
                        };
                };
+
+               domain-idle-states {
+                       CLUSTER_SLEEP_PC: cluster-sleep-0 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41000044>;
+                               entry-latency-us = <2752>;
+                               exit-latency-us = <3048>;
+                               min-residency-us = <6118>;
+                       };
+
+                       CLUSTER_SLEEP_CX_RET: cluster-sleep-1 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41001244>;
+                               entry-latency-us = <3638>;
+                               exit-latency-us = <4562>;
+                               min-residency-us = <8467>;
+                       };
+
+                       CLUSTER_AOSS_SLEEP: cluster-sleep-2 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x4100b244>;
+                               entry-latency-us = <3263>;
+                               exit-latency-us = <6562>;
+                               min-residency-us = <9987>;
+                       };
+               };
+
+               cpu_idle_states: idle-states {
+                       entry-method = "psci";
+
+                       LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "little-power-collapse";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <549>;
+                               exit-latency-us = <901>;
+                               min-residency-us = <1774>;
+                               local-timer-stop;
+                       };
+
+                       LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "little-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <702>;
+                               exit-latency-us = <915>;
+                               min-residency-us = <4001>;
+                               local-timer-stop;
+                       };
+
+                       BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "big-power-collapse";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <523>;
+                               exit-latency-us = <1244>;
+                               min-residency-us = <2207>;
+                               local-timer-stop;
+                       };
+
+                       BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "big-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <526>;
+                               exit-latency-us = <1854>;
+                               min-residency-us = <5555>;
+                               local-timer-stop;
+                       };
+               };
        };
 
        firmware {
                };
        };
 
+       qup_opp_table: opp-table-qup {
+               compatible = "operating-points-v2";
+
+               opp-75000000 {
+                       opp-hz = /bits/ 64 <75000000>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+               };
+
+               opp-100000000 {
+                       opp-hz = /bits/ 64 <100000000>;
+                       required-opps = <&rpmhpd_opp_svs>;
+               };
+
+               opp-128000000 {
+                       opp-hz = /bits/ 64 <128000000>;
+                       required-opps = <&rpmhpd_opp_nom>;
+               };
+       };
+
        pmu {
                compatible = "arm,armv8-pmuv3";
                interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_LOW>;
        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 &LITTLE_CPU_SLEEP_1>;
+               };
+
+               CPU_PD1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
+               };
+
+               CPU_PD2: power-domain-cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
+               };
+
+               CPU_PD3: power-domain-cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
+               };
+
+               CPU_PD4: power-domain-cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
+               };
+
+               CPU_PD5: power-domain-cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
+               };
+
+               CPU_PD6: power-domain-cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
+               };
+
+               CPU_PD7: power-domain-cpu7 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
+               };
+
+               CLUSTER_PD: power-domain-cpu-cluster0 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_SLEEP_PC
+                                             &CLUSTER_SLEEP_CX_RET
+                                             &CLUSTER_AOSS_SLEEP>;
+               };
        };
 
        reserved_memory: reserved-memory {
                                status = "disabled";
                        };
 
+                       uart1: serial@884000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00884000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_uart1_cts>, <&qup_uart1_rts>, <&qup_uart1_tx>, <&qup_uart1_rx>;
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM6350_CX>;
+                               operating-points-v2 = <&qup_opp_table>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&aggre1_noc MASTER_QUP_0 0 &clk_virt SLAVE_EBI_CH0 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
                        i2c2: i2c@888000 {
                                compatible = "qcom,geni-i2c";
                                reg = <0 0x00888000 0 0x4000>;
                                drive-strength = <2>;
                                bias-pull-up;
                        };
+
+                       qup_uart1_cts: qup-uart1-cts-default-state {
+                               pins = "gpio61";
+                               function = "qup01";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_uart1_rts: qup-uart1-rts-default-state {
+                               pins = "gpio62";
+                               function = "qup01";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       qup_uart1_rx: qup-uart1-rx-default-state {
+                               pins = "gpio64";
+                               function = "qup01";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_uart1_tx: qup-uart1-tx-default-state {
+                               pins = "gpio63";
+                               function = "qup01";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
                };
 
                apps_smmu: iommu@15000000 {
                        };
                };
 
-               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";
                        qcom,drv-id = <2>;
                        qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
                                          <WAKE_TCS 3>, <CONTROL_TCS 1>;
+                       power-domains = <&CLUSTER_PD>;
 
                        rpmhcc: clock-controller {
                                compatible = "qcom,sm6350-rpmh-clk";
                        #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 {