]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: qcom: sm8550: add QUP serial engines OPP tables
authorNeil Armstrong <neil.armstrong@linaro.org>
Wed, 15 Jan 2025 13:43:56 +0000 (14:43 +0100)
committerBjorn Andersson <andersson@kernel.org>
Wed, 26 Feb 2025 03:54:23 +0000 (21:54 -0600)
The QUP Serial Engines requires different power domain level
depending on their working frequency, add the required OPP
table with the level associated with all possible frequencies.

For the "I2C Hub" serial engines, sinse they only support a
single Operating Point, only add a single power domain level
property.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20250115-topic-sm8x50-upstream-dt-icc-update-v1-4-eaa8b10e2af7@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/sm8550.dtsi

index 4b3c51fad9f19a1ec1e5d563a18fec9633a4e4ae..d02d80d731b9a8746655af6da236307760a8f662 100644 (file)
                qcom,bcm-voters = <&apps_bcm_voter>;
        };
 
+       qup_opp_table_100mhz: opp-table-qup100mhz {
+               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>;
+               };
+       };
+
+       qup_opp_table_120mhz: opp-table-qup120mhz {
+               compatible = "operating-points-v2";
+
+               opp-75000000 {
+                       opp-hz = /bits/ 64 <75000000>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+               };
+
+               opp-120000000 {
+                       opp-hz = /bits/ 64 <120000000>;
+                       required-opps = <&rpmhpd_opp_svs>;
+               };
+       };
+
+       qup_opp_table_125mhz: opp-table-qup125mhz {
+               compatible = "operating-points-v2";
+
+               opp-75000000 {
+                       opp-hz = /bits/ 64 <75000000>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+               };
+
+               opp-125000000 {
+                       opp-hz = /bits/ 64 <125000000>;
+                       required-opps = <&rpmhpd_opp_svs>;
+               };
+       };
+
        memory@a0000000 {
                device_type = "memory";
                /* We expect the bootloader to fill in the size */
                                dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 0 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>,
                                       <&gpi_dma2 1 0 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 1 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>,
                                       <&gpi_dma2 1 1 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 2 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>,
                                       <&gpi_dma2 1 2 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 3 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 3 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 4 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 4 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 5 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>,
                                       <&gpi_dma2 1 5 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_125mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma2 0 7 QCOM_GPI_I2C>,
                                       <&gpi_dma2 1 7 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma2 0 7 QCOM_GPI_SPI>,
                                       <&gpi_dma2 1 7 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
 
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_I2C QCOM_ICC_TAG_ACTIVE_ONLY>;
                                interconnect-names = "qup-core", "qup-config";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
                                status = "disabled";
                        };
                };
                                dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
                                       <&gpi_dma1 1 0 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>,
                                       <&gpi_dma1 1 0 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
                                       <&gpi_dma1 1 1 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>,
                                       <&gpi_dma1 1 1 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
                                       <&gpi_dma1 1 2 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>,
                                       <&gpi_dma1 1 2 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
                                       <&gpi_dma1 1 3 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>,
                                       <&gpi_dma1 1 3 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
                                       <&gpi_dma1 1 4 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>,
                                       <&gpi_dma1 1 4 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
                                       <&gpi_dma1 1 5 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>,
                                       <&gpi_dma1 1 5 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>,
                                       <&gpi_dma1 1 6 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma1 0 6 QCOM_GPI_SPI>,
                                       <&gpi_dma1 1 6 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                                 &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                                 &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                status = "disabled";
                        };
                };