----- Original Message ----- From: "Kevin Hilman" <khilman@xxxxxxxxxxxxxxxxxxx> To: <linux-omap@xxxxxxxxxxxxxxx> Cc: "Kevin Hilman" <khilman@xxxxxxxxxxxxxxxxxxx> Sent: Thursday, September 18, 2008 5:52 PM Subject: [PATCH PM-0] ARM: OMAP3: HSMMC: Ensure HSMMC is fully reset on boot > This ensures that an unused HSMMC block will not interfere with sleep. > > Signed-off-by: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> > --- > arch/arm/mach-omap2/hsmmc.c | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c > index 7334d86..03fe820 100644 > --- a/arch/arm/mach-omap2/hsmmc.c > +++ b/arch/arm/mach-omap2/hsmmc.c > @@ -280,8 +280,16 @@ static struct omap_mmc_platform_data hsmmc_data = { > }, > }; > > +static void __init hsmmc_reset(void) > +{ > + omap_writel(MMCHS_SYSCONFIG_SWRESET, MMCHS1_SYSCONFIG); > + omap_writel(MMCHS_SYSCONFIG_SWRESET, MMCHS2_SYSCONFIG); > + omap_writel(MMCHS_SYSCONFIG_SWRESET, MMCHS3_SYSCONFIG); > +} > + Where is MMCHS1_SYSCONFIG defined? After seting the softreset bit in SYSCONFIG, you might want to poll on the RESETDONE bit in SYSSTATUS to wait for the reset to complete. The interface and functional clocks should be provided before the reset is issued for reset to complete. At this point, I guess the clocks are not enabled yet. Regards, Madhu > void __init hsmmc_init(void) > { > + hsmmc_reset(); > omap2_init_mmc(&hsmmc_data); > } > > -- > 1.5.4.3 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html