diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2006-01-05 15:44:57 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-01-05 15:44:57 -0500 |
commit | 945b957972844881002ab4f68534581f4427a30b (patch) | |
tree | 0b9a1deb5094b847ce943b8f101386f373f472c6 /arch/arm/mach-pxa/spitz.c | |
parent | 53b7c2b243bd31f857dddabd9339f2dd6ae3fb67 (diff) |
[ARM] 3230/1: Sharp Scoop: Fix Shared Power Control Issues
Patch from Richard Purdie
The SL-Cxx00 devices have a power control register in SCOOP that is
shared by both CF and MMC/SD card slots. The CF reset code was resetting
this register leading to various lockups as the MMC power was suddenly
lost. This patch handles the CPR register in a more sensitive manner.
It also removes some unneeded collie specific calls as the reset code
handles this.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa/spitz.c')
-rw-r--r-- | arch/arm/mach-pxa/spitz.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 5d34abc64af7..f2007db0cda5 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -127,10 +127,12 @@ static void spitz_card_pwr_ctrl(int device, unsigned short new_cpr) | |||
127 | cpr &= ~0x0002; | 127 | cpr &= ~0x0002; |
128 | if (device == SPITZ_PWR_SD) | 128 | if (device == SPITZ_PWR_SD) |
129 | cpr &= ~0x0004; | 129 | cpr &= ~0x0004; |
130 | write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, cpr | new_cpr); | ||
131 | if (!(cpr & 0x0002) && !(cpr & 0x0004)) { | 130 | if (!(cpr & 0x0002) && !(cpr & 0x0004)) { |
131 | write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, 0x0000); | ||
132 | mdelay(1); | 132 | mdelay(1); |
133 | reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CF_POWER); | 133 | reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CF_POWER); |
134 | } else { | ||
135 | write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, cpr | new_cpr); | ||
134 | } | 136 | } |
135 | } | 137 | } |
136 | } | 138 | } |