Skip to content

Instantly share code, notes, and snippets.

@digetx
Last active November 13, 2020 16:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save digetx/dfd92c7f7e0aa6cef20403c4298088d7 to your computer and use it in GitHub Desktop.
Save digetx/dfd92c7f7e0aa6cef20403c4298088d7 to your computer and use it in GitHub Desktop.
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi
index 57b29eb8b2cf..379bdbf46d66 100644
--- a/arch/arm/boot/dts/tegra30.dtsi
+++ b/arch/arm/boot/dts/tegra30.dtsi
@@ -124,6 +124,7 @@ host1x@50000000 {
reset-names = "host1x";
iommus = <&mc TEGRA_SWGROUP_HC>;
operating-points-v2 = <&host1x_dvfs_opp_table>;
+ power-domains = <&pd_core>;
#address-cells = <1>;
#size-cells = <1>;
@@ -182,6 +183,7 @@ gr2d@54140000 {
resets = <&tegra_car 21>, <&mc TEGRA30_MC_RESET_2D>;
reset-names = "2d", "mc";
operating-points-v2 = <&gr2d_dvfs_opp_table>;
+ power-domains = <&pd_core>;
iommus = <&mc TEGRA_SWGROUP_G2>;
};
@@ -198,6 +200,8 @@ gr3d@54180000 {
<&mc TEGRA30_MC_RESET_3D2>;
reset-names = "3d", "3d2", "mc", "mc2";
operating-points-v2 = <&gr3d_dvfs_opp_table>;
+ power-domains = <&pd_3d0>, <&pd_3d1>;
+ power-domain-names = "3d0", "3d1";
iommus = <&mc TEGRA_SWGROUP_NV>,
<&mc TEGRA_SWGROUP_NV2>;
@@ -213,6 +217,7 @@ dc@54200000 {
resets = <&tegra_car 27>;
reset-names = "dc";
operating-points-v2 = <&dc0_dvfs_opp_table>;
+ power-domains = <&pd_core>;
iommus = <&mc TEGRA_SWGROUP_DC>;
@@ -244,6 +249,7 @@ dc@54240000 {
resets = <&tegra_car 26>;
reset-names = "dc";
operating-points-v2 = <&dc1_dvfs_opp_table>;
+ power-domains = <&pd_core>;
iommus = <&mc TEGRA_SWGROUP_DCB>;
@@ -275,6 +281,7 @@ hdmi@54280000 {
resets = <&tegra_car 51>;
reset-names = "hdmi";
operating-points-v2 = <&hdmi_dvfs_opp_table>;
+ power-domains = <&pd_core>;
status = "disabled";
};
@@ -475,6 +482,7 @@ vde@6001a000 {
resets = <&tegra_car 61>, <&mc TEGRA30_MC_RESET_VDE>;
iommus = <&mc TEGRA_SWGROUP_VDE>;
operating-points-v2 = <&vde_dvfs_opp_table>;
+ power-domains = <&pd_vde>;
};
apbmisc@70000800 {
@@ -583,6 +591,7 @@ pwm: pwm@7000a000 {
resets = <&tegra_car 17>;
reset-names = "pwm";
operating-points-v2 = <&pwm_dvfs_opp_table>;
+ power-domains = <&pd_core>;
status = "disabled";
};
@@ -773,6 +782,32 @@ tegra_pmc: pmc@7000e400 {
clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>;
clock-names = "pclk", "clk32k_in";
#clock-cells = <1>;
+
+ powergates {
+ pd_3d0: 3d0 {
+ clocks = <&tegra_car TEGRA30_CLK_GR3D>;
+ resets = <&tegra_car TEGRA30_CLK_GR3D>;
+ operating-points-v2 = <&core_opp_table>;
+ power-domains = <&pd_core>;
+ #power-domain-cells = <0>;
+ };
+
+ pd_3d1: 3d1 {
+ clocks = <&tegra_car TEGRA30_CLK_GR3D2>;
+ resets = <&tegra_car TEGRA30_CLK_GR3D2>;
+ operating-points-v2 = <&core_opp_table>;
+ power-domains = <&pd_core>;
+ #power-domain-cells = <0>;
+ };
+
+ pd_vde: vdec {
+ clocks = <&tegra_car TEGRA30_CLK_VDE>;
+ resets = <&tegra_car TEGRA30_CLK_VDE>;
+ operating-points-v2 = <&core_opp_table>;
+ power-domains = <&pd_core>;
+ #power-domain-cells = <0>;
+ };
+ };
};
mc: memory-controller@7000f000 {
@@ -793,6 +828,7 @@ emc: memory-controller@7000f400 {
reg = <0x7000f400 0x400>;
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&tegra_car TEGRA30_CLK_EMC>;
+ power-domains = <&pd_core>;
nvidia,memory-controller = <&mc>;
operating-points-v2 = <&emc_icc_dvfs_opp_table>;
@@ -916,6 +952,7 @@ sdmmc1: mmc@78000000 {
resets = <&tegra_car 14>;
reset-names = "sdhci";
operating-points-v2 = <&sdmmc1_dvfs_opp_table>;
+ power-domains = <&pd_core>;
status = "disabled";
};
@@ -928,6 +965,7 @@ sdmmc2: mmc@78000200 {
resets = <&tegra_car 9>;
reset-names = "sdhci";
status = "disabled";
+ power-domains = <&pd_core>;
};
sdmmc3: mmc@78000400 {
@@ -939,6 +977,7 @@ sdmmc3: mmc@78000400 {
resets = <&tegra_car 69>;
reset-names = "sdhci";
operating-points-v2 = <&sdmmc3_dvfs_opp_table>;
+ power-domains = <&pd_core>;
status = "disabled";
};
@@ -951,6 +990,7 @@ sdmmc4: mmc@78000600 {
resets = <&tegra_car 15>;
reset-names = "sdhci";
status = "disabled";
+ power-domains = <&pd_core>;
};
usb1: usb@7d000000 {
@@ -964,6 +1004,7 @@ usb1: usb@7d000000 {
nvidia,needs-double-reset;
nvidia,phy = <&phy1>;
operating-points-v2 = <&usbd_dvfs_opp_table>;
+ power-domains = <&pd_core>;
status = "disabled";
};
@@ -1004,6 +1045,7 @@ usb2: usb@7d004000 {
reset-names = "usb";
nvidia,phy = <&phy2>;
operating-points-v2 = <&usb2_dvfs_opp_table>;
+ power-domains = <&pd_core>;
status = "disabled";
};
@@ -1043,6 +1085,7 @@ usb3: usb@7d008000 {
reset-names = "usb";
nvidia,phy = <&phy3>;
operating-points-v2 = <&usb3_dvfs_opp_table>;
+ power-domains = <&pd_core>;
status = "disabled";
};
@@ -1116,4 +1159,10 @@ pmu {
<&{/cpus/cpu@2}>,
<&{/cpus/cpu@3}>;
};
+
+ pd_core: tegra-power-domain {
+ compatible = "nvidia,tegra30-core-domain";
+ operating-points-v2 = <&core_opp_table>;
+ #power-domain-cells = <0>;
+ };
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment