ARM: dts: Configure am3 and am4 sgx for genpd and drop platform data
authorTony Lindgren <tony@atomide.com>
Thu, 2 Jul 2020 15:45:12 +0000 (08:45 -0700)
committerTony Lindgren <tony@atomide.com>
Tue, 18 Aug 2020 07:40:03 +0000 (10:40 +0300)
We can power off the SGX power domain when not in use when we configure
it for genpd. And with that change, we can now also drop the old unused
legacy platform data.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/am33xx.dtsi
arch/arm/boot/dts/am4372.dtsi
arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c
arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
arch/arm/mach-omap2/omap_hwmod_33xx_data.c
arch/arm/mach-omap2/omap_hwmod_43xx_data.c

index 5cb4cc37cb6d0c8bc57ebce23b8cb6ea3f826cbc..0fab080d61ef12ae2571dd85c76f478f76bca87d 100644 (file)
                                        <SYSC_IDLE_SMART>;
                        clocks = <&gfx_l3_clkctrl AM3_GFX_L3_GFX_CLKCTRL 0>;
                        clock-names = "fck";
+                       power-domains = <&prm_gfx>;
                        resets = <&prm_gfx 0>;
                        reset-names = "rstctrl";
                        #address-cells = <1>;
        prm_gfx: prm@1100 {
                compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
                reg = <0x1100 0x100>;
+               #power-domain-cells = <0>;
                #reset-cells = <1>;
        };
 };
index 14314046256ca934bc2d3f4704d3eda1fee8b014..8d47913e212985d7d58e9c52bc68b6de7b6ef7a3 100644 (file)
                                        <SYSC_IDLE_SMART>;
                        clocks = <&gfx_l3_clkctrl AM4_GFX_L3_GFX_CLKCTRL 0>;
                        clock-names = "fck";
+                       power-domains = <&prm_gfx>;
                        resets = <&prm_gfx 0>;
                        reset-names = "rstctrl";
                        #address-cells = <1>;
        prm_gfx: prm@400 {
                compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
                reg = <0x400 0x100>;
+               #power-domain-cells = <0>;
                #reset-cells = <1>;
        };
 
index b389d6589c32f53ffc584938b27b21920c2c86dd..1be30c36f057631fdde41889ccd96756d0f3d188 100644 (file)
@@ -74,22 +74,6 @@ struct omap_hwmod_ocp_if am33xx_l3_s__l3_main = {
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
 };
 
-/* gfx -> l3 main */
-struct omap_hwmod_ocp_if am33xx_gfx__l3_main = {
-       .master         = &am33xx_gfx_hwmod,
-       .slave          = &am33xx_l3_main_hwmod,
-       .clk            = "dpll_core_m4_ck",
-       .user           = OCP_USER_MPU | OCP_USER_SDMA,
-};
-
-/* l3 main -> gfx */
-struct omap_hwmod_ocp_if am33xx_l3_main__gfx = {
-       .master         = &am33xx_l3_main_hwmod,
-       .slave          = &am33xx_gfx_hwmod,
-       .clk            = "dpll_core_m4_ck",
-       .user           = OCP_USER_MPU | OCP_USER_SDMA,
-};
-
 /* l4 wkup -> rtc */
 struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc = {
        .master         = &am33xx_l4_wkup_hwmod,
index 4b3cd590fb5225b46fcf8edb26b5ab722c105c5c..8d248df2778eb567c73803c572d6d5b4e950a714 100644 (file)
@@ -133,30 +133,6 @@ struct omap_hwmod_class am33xx_wkup_m3_hwmod_class = {
        .name           = "wkup_m3",
 };
 
-/* gfx */
-/* Pseudo hwmod for reset control purpose only */
-static struct omap_hwmod_class am33xx_gfx_hwmod_class = {
-       .name   = "gfx",
-};
-
-static struct omap_hwmod_rst_info am33xx_gfx_resets[] = {
-       { .name = "gfx", .rst_shift = 0, .st_shift = 0},
-};
-
-struct omap_hwmod am33xx_gfx_hwmod = {
-       .name           = "gfx",
-       .class          = &am33xx_gfx_hwmod_class,
-       .clkdm_name     = "gfx_l3_clkdm",
-       .main_clk       = "gfx_fck_div_ck",
-       .prcm           = {
-               .omap4  = {
-                       .modulemode     = MODULEMODE_SWCTRL,
-               },
-       },
-       .rst_lines      = am33xx_gfx_resets,
-       .rst_lines_cnt  = ARRAY_SIZE(am33xx_gfx_resets),
-};
-
 /*
  * 'prcm' class
  * power and reset manager (whole prcm infrastructure)
@@ -319,22 +295,14 @@ static void omap_hwmod_am33xx_clkctrl(void)
        CLKCTRL(am33xx_l4_ls_hwmod, AM33XX_CM_PER_L4LS_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_l4_wkup_hwmod, AM33XX_CM_WKUP_L4WKUP_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_l3_main_hwmod, AM33XX_CM_PER_L3_CLKCTRL_OFFSET);
-       CLKCTRL(am33xx_gfx_hwmod, AM33XX_CM_GFX_GFX_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_mpu_hwmod , AM33XX_CM_MPU_MPU_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_l3_instr_hwmod , AM33XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_ocmcram_hwmod , AM33XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET);
 }
 
-static void omap_hwmod_am33xx_rst(void)
-{
-       RSTCTRL(am33xx_gfx_hwmod, AM33XX_RM_GFX_RSTCTRL_OFFSET);
-       RSTST(am33xx_gfx_hwmod, AM33XX_RM_GFX_RSTST_OFFSET);
-}
-
 void omap_hwmod_am33xx_reg(void)
 {
        omap_hwmod_am33xx_clkctrl();
-       omap_hwmod_am33xx_rst();
 }
 
 static void omap_hwmod_am43xx_clkctrl(void)
@@ -348,20 +316,12 @@ static void omap_hwmod_am43xx_clkctrl(void)
        CLKCTRL(am33xx_l4_ls_hwmod, AM43XX_CM_PER_L4LS_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_l4_wkup_hwmod, AM43XX_CM_WKUP_L4WKUP_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_l3_main_hwmod, AM43XX_CM_PER_L3_CLKCTRL_OFFSET);
-       CLKCTRL(am33xx_gfx_hwmod, AM43XX_CM_GFX_GFX_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_mpu_hwmod , AM43XX_CM_MPU_MPU_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_l3_instr_hwmod , AM43XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET);
        CLKCTRL(am33xx_ocmcram_hwmod , AM43XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET);
 }
 
-static void omap_hwmod_am43xx_rst(void)
-{
-       RSTCTRL(am33xx_gfx_hwmod, AM43XX_RM_GFX_RSTCTRL_OFFSET);
-       RSTST(am33xx_gfx_hwmod, AM43XX_RM_GFX_RSTST_OFFSET);
-}
-
 void omap_hwmod_am43xx_reg(void)
 {
        omap_hwmod_am43xx_clkctrl();
-       omap_hwmod_am43xx_rst();
 }
index 3cf9c4c90b18654f7ee14966682af2fcfa30768d..08ed730dc439faca7b595e75271a76fd21590ca5 100644 (file)
@@ -274,10 +274,8 @@ static struct omap_hwmod_ocp_if *am33xx_hwmod_ocp_ifs[] __initdata = {
        &am33xx_l3_main__l4_hs,
        &am33xx_l3_main__l3_s,
        &am33xx_l3_main__l3_instr,
-       &am33xx_l3_main__gfx,
        &am33xx_l3_s__l3_main,
        &am33xx_wkup_m3__l4_wkup,
-       &am33xx_gfx__l3_main,
        &am33xx_l3_main__debugss,
        &am33xx_l4_wkup__wkup_m3,
        &am33xx_l4_wkup__control,
index b88d12de68a23434329a0d8a173999c840f03333..c6987208cc282e1c3754d0e8f7ab62016f87c2e9 100644 (file)
@@ -143,11 +143,9 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = {
        &am43xx_l3_main__l4_hs,
        &am33xx_l3_main__l3_s,
        &am33xx_l3_main__l3_instr,
-       &am33xx_l3_main__gfx,
        &am33xx_l3_s__l3_main,
        &am43xx_l3_main__emif,
        &am43xx_wkup_m3__l4_wkup,
-       &am33xx_gfx__l3_main,
        &am43xx_l4_wkup__wkup_m3,
        &am43xx_l4_wkup__control,
        &am43xx_l4_wkup__smartreflex0,