soc: ti: omap-prm: Configure omap4 and 5 l4_abe power domain
authorTony Lindgren <tony@atomide.com>
Thu, 2 Jul 2020 15:45:11 +0000 (08:45 -0700)
committerTony Lindgren <tony@atomide.com>
Tue, 18 Aug 2020 07:40:03 +0000 (10:40 +0300)
Let's add omap4 and 5 l4_abe interconnect instance for the power
domain.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/soc/ti/omap_prm.c

index 4a5e5c6a31c411d960b70a311f3541c3e4039ef6..980b04c38fd940f1a3bf773b7576d6cc2b3cc6b7 100644 (file)
@@ -95,6 +95,13 @@ struct omap_reset_data {
 
 #define PRM_ST_INTRANSITION    BIT(20)
 
+static const struct omap_prm_domain_map omap_prm_all = {
+       .usable_modes = BIT(OMAP_PRMD_ON_ACTIVE) | BIT(OMAP_PRMD_ON_INACTIVE) |
+                       BIT(OMAP_PRMD_RETENTION) | BIT(OMAP_PRMD_OFF),
+       .statechange = 1,
+       .logicretstate = 1,
+};
+
 static const struct omap_prm_domain_map omap_prm_noinact = {
        .usable_modes = BIT(OMAP_PRMD_ON_ACTIVE) | BIT(OMAP_PRMD_RETENTION) |
                        BIT(OMAP_PRMD_OFF),
@@ -102,6 +109,13 @@ static const struct omap_prm_domain_map omap_prm_noinact = {
        .logicretstate = 1,
 };
 
+static const struct omap_prm_domain_map omap_prm_nooff = {
+       .usable_modes = BIT(OMAP_PRMD_ON_ACTIVE) | BIT(OMAP_PRMD_ON_INACTIVE) |
+                       BIT(OMAP_PRMD_RETENTION),
+       .statechange = 1,
+       .logicretstate = 1,
+};
+
 static const struct omap_prm_domain_map omap_prm_onoff_noauto = {
        .usable_modes = BIT(OMAP_PRMD_ON_ACTIVE) | BIT(OMAP_PRMD_OFF),
        .statechange = 1,
@@ -127,6 +141,10 @@ static const struct omap_rst_map rst_map_012[] = {
 
 static const struct omap_prm_data omap4_prm_data[] = {
        { .name = "tesla", .base = 0x4a306400, .rstctrl = 0x10, .rstst = 0x14, .rstmap = rst_map_01 },
+       {
+               .name = "abe", .base = 0x4a306500,
+               .pwrstctrl = 0, .pwrstst = 0x4, .dmap = &omap_prm_all,
+       },
        { .name = "core", .base = 0x4a306700, .rstctrl = 0x210, .rstst = 0x214, .clkdm_name = "ducati", .rstmap = rst_map_012 },
        { .name = "ivahd", .base = 0x4a306f00, .rstctrl = 0x10, .rstst = 0x14, .rstmap = rst_map_012 },
        { .name = "device", .base = 0x4a307b00, .rstctrl = 0x0, .rstst = 0x4, .rstmap = rst_map_01, .flags = OMAP_PRM_HAS_RSTCTRL | OMAP_PRM_HAS_NO_CLKDM },
@@ -135,6 +153,10 @@ static const struct omap_prm_data omap4_prm_data[] = {
 
 static const struct omap_prm_data omap5_prm_data[] = {
        { .name = "dsp", .base = 0x4ae06400, .rstctrl = 0x10, .rstst = 0x14, .rstmap = rst_map_01 },
+       {
+               .name = "abe", .base = 0x4ae06500,
+               .pwrstctrl = 0, .pwrstst = 0x4, .dmap = &omap_prm_nooff,
+       },
        { .name = "core", .base = 0x4ae06700, .rstctrl = 0x210, .rstst = 0x214, .clkdm_name = "ipu", .rstmap = rst_map_012 },
        { .name = "iva", .base = 0x4ae07200, .rstctrl = 0x10, .rstst = 0x14, .rstmap = rst_map_012 },
        { .name = "device", .base = 0x4ae07c00, .rstctrl = 0x0, .rstst = 0x4, .rstmap = rst_map_01, .flags = OMAP_PRM_HAS_RSTCTRL | OMAP_PRM_HAS_NO_CLKDM },