Message ID | 20250318230042.3138542-3-sbellary@baylibre.com |
---|---|
State | New |
Headers | show |
Series | PM: TI: AM335x: PM STANDBY fixes | expand |
Sukrut Bellary <sbellary@baylibre.com> writes: > 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 <sbellary@baylibre.com> Reviewed-by: Kevin Hilman <khilman@baylibre.com> Ulf, this series has been tested now. Go ahead and take this patch. Thanks, Kevin > --- > drivers/pmdomain/ti/omap_prm.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/pmdomain/ti/omap_prm.c b/drivers/pmdomain/ti/omap_prm.c > index b8ceb3c2b81c..7e36e675a8c6 100644 > --- a/drivers/pmdomain/ti/omap_prm.c > +++ b/drivers/pmdomain/ti/omap_prm.c > @@ -18,7 +18,9 @@ > #include <linux/pm_domain.h> > #include <linux/reset-controller.h> > #include <linux/delay.h> > - > +#if IS_ENABLED(CONFIG_SUSPEND) > +#include <linux/suspend.h> > +#endif > #include <linux/platform_data/ti-prm.h> > > enum omap_prm_domain_mode { > @@ -88,6 +90,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) > > @@ -404,7 +407,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, > -- > 2.34.1
diff --git a/drivers/pmdomain/ti/omap_prm.c b/drivers/pmdomain/ti/omap_prm.c index b8ceb3c2b81c..7e36e675a8c6 100644 --- a/drivers/pmdomain/ti/omap_prm.c +++ b/drivers/pmdomain/ti/omap_prm.c @@ -18,7 +18,9 @@ #include <linux/pm_domain.h> #include <linux/reset-controller.h> #include <linux/delay.h> - +#if IS_ENABLED(CONFIG_SUSPEND) +#include <linux/suspend.h> +#endif #include <linux/platform_data/ti-prm.h> enum omap_prm_domain_mode { @@ -88,6 +90,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) @@ -404,7 +407,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,
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 <sbellary@baylibre.com> --- drivers/pmdomain/ti/omap_prm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)