Add OPP tables for Tegra20 SoC devices.

Signed-off-by: Dmitry Osipenko <dig...@gmail.com>
---
 .../arm/boot/dts/tegra20-peripherals-opp.dtsi | 386 ++++++++++++++++++
 arch/arm/boot/dts/tegra20.dtsi                |  14 +
 2 files changed, 400 insertions(+)

diff --git a/arch/arm/boot/dts/tegra20-peripherals-opp.dtsi 
b/arch/arm/boot/dts/tegra20-peripherals-opp.dtsi
index 25b1ba73951e..792dc79d32c5 100644
--- a/arch/arm/boot/dts/tegra20-peripherals-opp.dtsi
+++ b/arch/arm/boot/dts/tegra20-peripherals-opp.dtsi
@@ -89,4 +89,390 @@ opp@760000000 {
                        opp-hz = /bits/ 64 <760000000>;
                };
        };
+
+       vde_dvfs_opp_table: vde-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@95000000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <95000000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@123500000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <123500000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@123500000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <123500000>;
+                       opp-supported-hw = <0x0002>;
+               };
+
+               opp@152000000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <152000000>;
+                       opp-supported-hw = <0x0002>;
+               };
+
+               opp@152000000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <152000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp@171000000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <171000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp@209000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <209000000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@209000000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <209000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp@218500000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <218500000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp@237500000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <237500000>;
+                       opp-supported-hw = <0x0002>;
+               };
+
+               opp@275500000,1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <275500000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@285000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp@300000000,1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@300000000,1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0006>;
+               };
+
+               opp@300000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+       };
+
+       gr2d_dvfs_opp_table: gr2d-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@133000000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <133000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+
+               opp@171000000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <171000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+
+               opp@247000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+
+               opp@300000000,1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+       };
+
+       gr3d_dvfs_opp_table: gr3d-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@114000000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <114000000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@161500000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <161500000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@161500000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <161500000>;
+                       opp-supported-hw = <0x0002>;
+               };
+
+               opp@209000000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <209000000>;
+                       opp-supported-hw = <0x0002>;
+               };
+
+               opp@218500000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <218500000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp@247000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@247000000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp@256500000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <256500000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp@285000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0002>;
+               };
+
+               opp@285000000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp@304000000,1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <304000000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@323000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <323000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp@333500000,1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <333500000>;
+                       opp-supported-hw = <0x0001>;
+               };
+
+               opp@333500000,1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <333500000>;
+                       opp-supported-hw = <0x0002>;
+               };
+
+               opp@351500000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <351500000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp@361000000,1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <361000000>;
+                       opp-supported-hw = <0x0002>;
+               };
+
+               opp@380000000,1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <380000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp@400000000,1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp@400000000,1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+       };
+
+       host1x_dvfs_opp_table: host1x-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@104500000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <104500000>;
+                       opp-supported-hw = <0x000F>;
+               };
+
+               opp@133000000,1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <133000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+
+               opp@166000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <166000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+       };
+
+       usbd_dvfs_opp_table: usbd-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@480000000 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <480000000>;
+               };
+       };
+
+       usb2_dvfs_opp_table: usb2-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@480000000 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <480000000>;
+               };
+       };
+
+       usb3_dvfs_opp_table: usb3-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@480000000 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <480000000>;
+               };
+       };
+
+       sdmmc1_dvfs_opp_table: sdmmc1-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@44000000 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <44000000>;
+               };
+
+               opp@52000000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <52000000>;
+               };
+       };
+
+       sdmmc2_dvfs_opp_table: sdmmc2-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@44000000 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <44000000>;
+               };
+
+               opp@52000000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <52000000>;
+               };
+       };
+
+       sdmmc3_dvfs_opp_table: sdmmc3-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@44000000 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <44000000>;
+               };
+
+               opp@52000000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <52000000>;
+               };
+       };
+
+       sdmmc4_dvfs_opp_table: sdmmc4-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@44000000 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <44000000>;
+               };
+
+               opp@52000000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <52000000>;
+               };
+       };
+
+       hdmi_dvfs_opp_table: hdmi-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@148500000 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <148500000>;
+               };
+       };
+
+       dc0_dvfs_opp_table: dc0-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@158000000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <158000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+
+               opp@190000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+       };
+
+       dc1_dvfs_opp_table: dc1-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@158000000,950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <158000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+
+               opp@190000000,1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x000F>;
+               };
+       };
 };
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi
index 6ce498178105..317bdf75ff6c 100644
--- a/arch/arm/boot/dts/tegra20.dtsi
+++ b/arch/arm/boot/dts/tegra20.dtsi
@@ -42,6 +42,7 @@ host1x@50000000 {
                clock-names = "host1x";
                resets = <&tegra_car 28>;
                reset-names = "host1x";
+               operating-points-v2 = <&host1x_dvfs_opp_table>;
 
                #address-cells = <1>;
                #size-cells = <1>;
@@ -91,6 +92,7 @@ gr2d@54140000 {
                        clocks = <&tegra_car TEGRA20_CLK_GR2D>;
                        resets = <&tegra_car 21>;
                        reset-names = "2d";
+                       operating-points-v2 = <&gr2d_dvfs_opp_table>;
                };
 
                gr3d@54180000 {
@@ -99,6 +101,7 @@ gr3d@54180000 {
                        clocks = <&tegra_car TEGRA20_CLK_GR3D>;
                        resets = <&tegra_car 24>;
                        reset-names = "3d";
+                       operating-points-v2 = <&gr3d_dvfs_opp_table>;
                };
 
                dc@54200000 {
@@ -110,6 +113,7 @@ dc@54200000 {
                        clock-names = "dc", "parent";
                        resets = <&tegra_car 27>;
                        reset-names = "dc";
+                       operating-points-v2 = <&dc0_dvfs_opp_table>;
 
                        nvidia,head = <0>;
 
@@ -138,6 +142,7 @@ dc@54240000 {
                        clock-names = "dc", "parent";
                        resets = <&tegra_car 26>;
                        reset-names = "dc";
+                       operating-points-v2 = <&dc1_dvfs_opp_table>;
 
                        nvidia,head = <1>;
 
@@ -167,6 +172,7 @@ hdmi@54280000 {
                        resets = <&tegra_car 51>;
                        reset-names = "hdmi";
                        status = "disabled";
+                       operating-points-v2 = <&hdmi_dvfs_opp_table>;
                };
 
                tvo@542c0000 {
@@ -319,6 +325,7 @@ vde@6001a000 {
                clocks = <&tegra_car TEGRA20_CLK_VDE>;
                reset-names = "vde", "mc";
                resets = <&tegra_car 61>, <&mc TEGRA20_MC_RESET_VDE>;
+               operating-points-v2 = <&vde_dvfs_opp_table>;
        };
 
        apbmisc@70000800 {
@@ -755,6 +762,7 @@ usb@c5000000 {
                nvidia,needs-double-reset;
                nvidia,phy = <&phy1>;
                status = "disabled";
+               operating-points-v2 = <&usbd_dvfs_opp_table>;
        };
 
        phy1: usb-phy@c5000000 {
@@ -792,6 +800,7 @@ usb@c5004000 {
                reset-names = "usb";
                nvidia,phy = <&phy2>;
                status = "disabled";
+               operating-points-v2 = <&usb2_dvfs_opp_table>;
        };
 
        phy2: usb-phy@c5004000 {
@@ -818,6 +827,7 @@ usb@c5008000 {
                reset-names = "usb";
                nvidia,phy = <&phy3>;
                status = "disabled";
+               operating-points-v2 = <&usb3_dvfs_opp_table>;
        };
 
        phy3: usb-phy@c5008000 {
@@ -852,6 +862,7 @@ mmc@c8000000 {
                resets = <&tegra_car 14>;
                reset-names = "sdhci";
                status = "disabled";
+               operating-points-v2 = <&sdmmc1_dvfs_opp_table>;
        };
 
        mmc@c8000200 {
@@ -863,6 +874,7 @@ mmc@c8000200 {
                resets = <&tegra_car 9>;
                reset-names = "sdhci";
                status = "disabled";
+               operating-points-v2 = <&sdmmc2_dvfs_opp_table>;
        };
 
        mmc@c8000400 {
@@ -874,6 +886,7 @@ mmc@c8000400 {
                resets = <&tegra_car 69>;
                reset-names = "sdhci";
                status = "disabled";
+               operating-points-v2 = <&sdmmc3_dvfs_opp_table>;
        };
 
        mmc@c8000600 {
@@ -885,6 +898,7 @@ mmc@c8000600 {
                resets = <&tegra_car 15>;
                reset-names = "sdhci";
                status = "disabled";
+               operating-points-v2 = <&sdmmc4_dvfs_opp_table>;
        };
 
        cpus {
-- 
2.27.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to