From: Sukrut Bellary Date: Tue, 18 Mar 2025 23:00:40 +0000 (-0700) Subject: pmdomain: ti: Fix STANDBY handling of PER power domain X-Git-Tag: v5.15.186~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a317e436265e2c652514a00b475749d2d613d0f;p=thirdparty%2Fkernel%2Fstable.git pmdomain: ti: Fix STANDBY handling of PER power domain [ Upstream commit 36795548dcc841c73f03793ed6cf741a88130922 ] Per AM335x TRM[1](section 8.1.4.3 Power mode), in case of STANDBY, PER domain should be ON. So, fix the PER power domain handling on standby. [1] https://www.ti.com/lit/ug/spruh73q/spruh73q.pdf Signed-off-by: Sukrut Bellary Reviewed-by: Kevin Hilman Tested-by: Judith Mendez Link: https://lore.kernel.org/r/20250318230042.3138542-3-sbellary@baylibre.com Signed-off-by: Ulf Hansson Signed-off-by: Sasha Levin --- diff --git a/drivers/soc/ti/omap_prm.c b/drivers/soc/ti/omap_prm.c index 1248d5d56c8d4..544e57fff96ca 100644 --- a/drivers/soc/ti/omap_prm.c +++ b/drivers/soc/ti/omap_prm.c @@ -19,7 +19,9 @@ #include #include #include - +#if IS_ENABLED(CONFIG_SUSPEND) +#include +#endif #include enum omap_prm_domain_mode { @@ -89,6 +91,7 @@ struct omap_reset_data { #define OMAP_PRM_HAS_RSTST BIT(1) #define OMAP_PRM_HAS_NO_CLKDM BIT(2) #define OMAP_PRM_RET_WHEN_IDLE BIT(3) +#define OMAP_PRM_ON_WHEN_STANDBY BIT(4) #define OMAP_PRM_HAS_RESETS (OMAP_PRM_HAS_RSTCTRL | OMAP_PRM_HAS_RSTST) @@ -405,7 +408,8 @@ static const struct omap_prm_data am3_prm_data[] = { .name = "per", .base = 0x44e00c00, .pwrstctrl = 0xc, .pwrstst = 0x8, .dmap = &omap_prm_noinact, .rstctrl = 0x0, .rstmap = am3_per_rst_map, - .flags = OMAP_PRM_HAS_RSTCTRL, .clkdm_name = "pruss_ocp" + .flags = OMAP_PRM_HAS_RSTCTRL | OMAP_PRM_ON_WHEN_STANDBY, + .clkdm_name = "pruss_ocp", }, { .name = "wkup", .base = 0x44e00d00,