aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2005-09-06 18:19:07 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-07 19:57:54 -0400
commit3870ee8c63d5e55aea990654dfeb231264e13134 (patch)
treed8efa858fd922054af0cf1ef10d7a8c938d401e0 /arch/arm/mach-pxa
parentf7ceff348bbd2ef35b5bc2ab47541dcac4b0b8ea (diff)
[PATCH] Corgi: Add MMC/SD write protection switch handling
Add MMC/SD write protection switch handling for the Corgi platform Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r--arch/arm/mach-pxa/corgi.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index 47da9fe57aa6..29185acdd9e1 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -190,6 +190,11 @@ static void corgi_mci_setpower(struct device *dev, unsigned int vdd)
190 } 190 }
191} 191}
192 192
193static int corgi_mci_get_ro(struct device *dev)
194{
195 return GPLR(CORGI_GPIO_nSD_WP) & GPIO_bit(CORGI_GPIO_nSD_WP);
196}
197
193static void corgi_mci_exit(struct device *dev, void *data) 198static void corgi_mci_exit(struct device *dev, void *data)
194{ 199{
195 free_irq(CORGI_IRQ_GPIO_nSD_DETECT, data); 200 free_irq(CORGI_IRQ_GPIO_nSD_DETECT, data);
@@ -199,6 +204,7 @@ static void corgi_mci_exit(struct device *dev, void *data)
199static struct pxamci_platform_data corgi_mci_platform_data = { 204static struct pxamci_platform_data corgi_mci_platform_data = {
200 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, 205 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
201 .init = corgi_mci_init, 206 .init = corgi_mci_init,
207 .get_ro = corgi_mci_get_ro,
202 .setpower = corgi_mci_setpower, 208 .setpower = corgi_mci_setpower,
203 .exit = corgi_mci_exit, 209 .exit = corgi_mci_exit,
204}; 210};