diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2005-11-08 14:15:43 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-11-08 14:15:43 -0500 |
commit | a63ae4427c6af66d6eda26e5da8fed53f8fbede3 (patch) | |
tree | cb30bd5993c07bae7f66564713292d8b224d591f /arch/arm/mach-pxa/poodle.c | |
parent | 1d23b65de54c35844e82bdb08bc85d8142e310ea (diff) |
[ARM] 3093/1: SharpSL PCMCIA Updates for Cxx00 models
Patch from Richard Purdie
The Sharp SL-Cxx00 models have a combined power control for the SD
and CF slot 0. This patch adds hooks to the scoop driver to allow
machines to provide a custom control function for this and such a
function is added for spitz/akita/borzoi.
It also moves the gpio init code into the machine files as this
is machine dependent and differs between some models. A couple of
warnings when compiling for collie are also fixed.
Signed-off-by: Richard Purdie
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa/poodle.c')
-rw-r--r-- | arch/arm/mach-pxa/poodle.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index ad6a13f95a62..eef3de26ad37 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
@@ -65,6 +65,27 @@ struct platform_device poodle_scoop_device = { | |||
65 | .resource = poodle_scoop_resources, | 65 | .resource = poodle_scoop_resources, |
66 | }; | 66 | }; |
67 | 67 | ||
68 | static void poodle_pcmcia_init(void) | ||
69 | { | ||
70 | /* Setup default state of GPIO outputs | ||
71 | before we enable them as outputs. */ | ||
72 | GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) | | ||
73 | GPIO_bit(GPIO49_nPWE) | GPIO_bit(GPIO50_nPIOR) | | ||
74 | GPIO_bit(GPIO51_nPIOW) | GPIO_bit(GPIO52_nPCE_1) | | ||
75 | GPIO_bit(GPIO53_nPCE_2); | ||
76 | |||
77 | pxa_gpio_mode(GPIO48_nPOE_MD); | ||
78 | pxa_gpio_mode(GPIO49_nPWE_MD); | ||
79 | pxa_gpio_mode(GPIO50_nPIOR_MD); | ||
80 | pxa_gpio_mode(GPIO51_nPIOW_MD); | ||
81 | pxa_gpio_mode(GPIO55_nPREG_MD); | ||
82 | pxa_gpio_mode(GPIO56_nPWAIT_MD); | ||
83 | pxa_gpio_mode(GPIO57_nIOIS16_MD); | ||
84 | pxa_gpio_mode(GPIO52_nPCE_1_MD); | ||
85 | pxa_gpio_mode(GPIO53_nPCE_2_MD); | ||
86 | pxa_gpio_mode(GPIO54_pSKTSEL_MD); | ||
87 | } | ||
88 | |||
68 | static struct scoop_pcmcia_dev poodle_pcmcia_scoop[] = { | 89 | static struct scoop_pcmcia_dev poodle_pcmcia_scoop[] = { |
69 | { | 90 | { |
70 | .dev = &poodle_scoop_device.dev, | 91 | .dev = &poodle_scoop_device.dev, |
@@ -74,6 +95,14 @@ static struct scoop_pcmcia_dev poodle_pcmcia_scoop[] = { | |||
74 | }, | 95 | }, |
75 | }; | 96 | }; |
76 | 97 | ||
98 | static struct scoop_pcmcia_config poodle_pcmcia_config = { | ||
99 | .devs = &poodle_pcmcia_scoop[0], | ||
100 | .num_devs = 1, | ||
101 | .pcmcia_init = poodle_pcmcia_init, | ||
102 | }; | ||
103 | |||
104 | EXPORT_SYMBOL(poodle_scoop_device); | ||
105 | |||
77 | 106 | ||
78 | /* LoCoMo device */ | 107 | /* LoCoMo device */ |
79 | static struct resource locomo_resources[] = { | 108 | static struct resource locomo_resources[] = { |
@@ -268,8 +297,7 @@ static void __init poodle_init(void) | |||
268 | pxa_set_mci_info(&poodle_mci_platform_data); | 297 | pxa_set_mci_info(&poodle_mci_platform_data); |
269 | pxa_set_ficp_info(&poodle_ficp_platform_data); | 298 | pxa_set_ficp_info(&poodle_ficp_platform_data); |
270 | 299 | ||
271 | scoop_num = 1; | 300 | platform_scoop_config = &poodle_pcmcia_config; |
272 | scoop_devs = &poodle_pcmcia_scoop[0]; | ||
273 | 301 | ||
274 | ret = platform_add_devices(devices, ARRAY_SIZE(devices)); | 302 | ret = platform_add_devices(devices, ARRAY_SIZE(devices)); |
275 | if (ret) { | 303 | if (ret) { |