Message ID | 1243514587-5323-2-git-send-email-rnayak@ti.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Kevin Hilman |
Headers | show |
ext Rajendra Nayak <rnayak@ti.com> writes: > This patch adds a Wakeup dependency of PER domain on WKUP > domain as a Workaround for a OMAP3430 limitation which causes > PER domain GPIO's to drive random values while coming back > from OFF mode. This limitation applies to all silicon rev's > of OMAP3430. I think this errata is already taken care in gpio code. We are configuring gpio output pads into safe mode and using pull up/down according to gpio state. > > Signed-off-by: Rajendra Nayak <rnayak@ti.com> > --- > arch/arm/mach-omap2/pm34xx.c | 9 +++++++++ > 1 files changed, 9 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c > index 80992c5..231b33e 100644 > --- a/arch/arm/mach-omap2/pm34xx.c > +++ b/arch/arm/mach-omap2/pm34xx.c > @@ -86,6 +86,7 @@ static int (*_omap_save_secure_sram)(u32 *addr); > static struct powerdomain *mpu_pwrdm, *neon_pwrdm; > static struct powerdomain *core_pwrdm, *per_pwrdm; > static struct powerdomain *cam_pwrdm; > +static struct powerdomain *wkup_pwrdm; > > static struct prm_setup_times prm_setup = { > .clksetup = 0xff, > @@ -1042,6 +1043,7 @@ int __init omap3_pm_init(void) > per_pwrdm = pwrdm_lookup("per_pwrdm"); > core_pwrdm = pwrdm_lookup("core_pwrdm"); > cam_pwrdm = pwrdm_lookup("cam_pwrdm"); > + wkup_pwrdm = pwrdm_lookup("wkup_pwrdm"); > > omap_push_sram_idle(); > > @@ -1063,6 +1065,13 @@ int __init omap3_pm_init(void) > */ > pwrdm_add_wkdep(per_pwrdm, core_pwrdm); > > + /* > + * This is a WA for an OMAP limitation (Listed in the omap errata doc > + * Section 2.23) which causes GPIO modules in PER domain to drive random > + * values while coming back from OFF mode. > + */ > + pwrdm_add_wkdep(per_pwrdm, wkup_pwrdm); > + > if (omap_type() != OMAP2_DEVICE_TYPE_GP) { > omap3_secure_ram_storage = > kmalloc(0x803F, GFP_KERNEL); > -- > 1.5.4.7 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
>-----Original Message----- >From: Högander Jouni [mailto:jouni.hogander@nokia.com] >Sent: Friday, May 29, 2009 11:21 AM >To: Nayak, Rajendra >Cc: linux-omap@vger.kernel.org >Subject: Re: [PATCH 02/06] OMAP3: PM: Add PER wakeup >dependency on WKUP domain > >ext Rajendra Nayak <rnayak@ti.com> writes: > >> This patch adds a Wakeup dependency of PER domain on WKUP >> domain as a Workaround for a OMAP3430 limitation which causes >> PER domain GPIO's to drive random values while coming back >> from OFF mode. This limitation applies to all silicon rev's >> of OMAP3430. > >I think this errata is already taken care in gpio code. We are >configuring gpio output pads into safe mode and using pull >up/down according >to gpio state. Ok.. this might not be needed in that case. Thanks > >> >> Signed-off-by: Rajendra Nayak <rnayak@ti.com> >> --- >> arch/arm/mach-omap2/pm34xx.c | 9 +++++++++ >> 1 files changed, 9 insertions(+), 0 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/pm34xx.c >b/arch/arm/mach-omap2/pm34xx.c >> index 80992c5..231b33e 100644 >> --- a/arch/arm/mach-omap2/pm34xx.c >> +++ b/arch/arm/mach-omap2/pm34xx.c >> @@ -86,6 +86,7 @@ static int (*_omap_save_secure_sram)(u32 *addr); >> static struct powerdomain *mpu_pwrdm, *neon_pwrdm; >> static struct powerdomain *core_pwrdm, *per_pwrdm; >> static struct powerdomain *cam_pwrdm; >> +static struct powerdomain *wkup_pwrdm; >> >> static struct prm_setup_times prm_setup = { >> .clksetup = 0xff, >> @@ -1042,6 +1043,7 @@ int __init omap3_pm_init(void) >> per_pwrdm = pwrdm_lookup("per_pwrdm"); >> core_pwrdm = pwrdm_lookup("core_pwrdm"); >> cam_pwrdm = pwrdm_lookup("cam_pwrdm"); >> + wkup_pwrdm = pwrdm_lookup("wkup_pwrdm"); >> >> omap_push_sram_idle(); >> >> @@ -1063,6 +1065,13 @@ int __init omap3_pm_init(void) >> */ >> pwrdm_add_wkdep(per_pwrdm, core_pwrdm); >> >> + /* >> + * This is a WA for an OMAP limitation (Listed in the >omap errata doc >> + * Section 2.23) which causes GPIO modules in PER >domain to drive random >> + * values while coming back from OFF mode. >> + */ >> + pwrdm_add_wkdep(per_pwrdm, wkup_pwrdm); >> + >> if (omap_type() != OMAP2_DEVICE_TYPE_GP) { >> omap3_secure_ram_storage = >> kmalloc(0x803F, GFP_KERNEL); >> -- >> 1.5.4.7 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe >linux-omap" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > >-- >Jouni Högander > >
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 80992c5..231b33e 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -86,6 +86,7 @@ static int (*_omap_save_secure_sram)(u32 *addr); static struct powerdomain *mpu_pwrdm, *neon_pwrdm; static struct powerdomain *core_pwrdm, *per_pwrdm; static struct powerdomain *cam_pwrdm; +static struct powerdomain *wkup_pwrdm; static struct prm_setup_times prm_setup = { .clksetup = 0xff, @@ -1042,6 +1043,7 @@ int __init omap3_pm_init(void) per_pwrdm = pwrdm_lookup("per_pwrdm"); core_pwrdm = pwrdm_lookup("core_pwrdm"); cam_pwrdm = pwrdm_lookup("cam_pwrdm"); + wkup_pwrdm = pwrdm_lookup("wkup_pwrdm"); omap_push_sram_idle(); @@ -1063,6 +1065,13 @@ int __init omap3_pm_init(void) */ pwrdm_add_wkdep(per_pwrdm, core_pwrdm); + /* + * This is a WA for an OMAP limitation (Listed in the omap errata doc + * Section 2.23) which causes GPIO modules in PER domain to drive random + * values while coming back from OFF mode. + */ + pwrdm_add_wkdep(per_pwrdm, wkup_pwrdm); + if (omap_type() != OMAP2_DEVICE_TYPE_GP) { omap3_secure_ram_storage = kmalloc(0x803F, GFP_KERNEL);
This patch adds a Wakeup dependency of PER domain on WKUP domain as a Workaround for a OMAP3430 limitation which causes PER domain GPIO's to drive random values while coming back from OFF mode. This limitation applies to all silicon rev's of OMAP3430. Signed-off-by: Rajendra Nayak <rnayak@ti.com> --- arch/arm/mach-omap2/pm34xx.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)