diff options
Diffstat (limited to 'arch/arm/mach-pxa/tosa.c')
-rw-r--r-- | arch/arm/mach-pxa/tosa.c | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c index f3e01891e851..c312054dfb88 100644 --- a/arch/arm/mach-pxa/tosa.c +++ b/arch/arm/mach-pxa/tosa.c | |||
@@ -98,6 +98,9 @@ struct platform_device tosascoop_jc_device = { | |||
98 | .resource = tosa_scoop_jc_resources, | 98 | .resource = tosa_scoop_jc_resources, |
99 | }; | 99 | }; |
100 | 100 | ||
101 | /* | ||
102 | * PCMCIA | ||
103 | */ | ||
101 | static struct scoop_pcmcia_dev tosa_pcmcia_scoop[] = { | 104 | static struct scoop_pcmcia_dev tosa_pcmcia_scoop[] = { |
102 | { | 105 | { |
103 | .dev = &tosascoop_device.dev, | 106 | .dev = &tosascoop_device.dev, |
@@ -111,6 +114,33 @@ static struct scoop_pcmcia_dev tosa_pcmcia_scoop[] = { | |||
111 | }, | 114 | }, |
112 | }; | 115 | }; |
113 | 116 | ||
117 | static void tosa_pcmcia_init(void) | ||
118 | { | ||
119 | /* Setup default state of GPIO outputs | ||
120 | before we enable them as outputs. */ | ||
121 | GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) | | ||
122 | GPIO_bit(GPIO49_nPWE) | GPIO_bit(GPIO50_nPIOR) | | ||
123 | GPIO_bit(GPIO51_nPIOW) | GPIO_bit(GPIO52_nPCE_1) | | ||
124 | GPIO_bit(GPIO53_nPCE_2); | ||
125 | |||
126 | pxa_gpio_mode(GPIO48_nPOE_MD); | ||
127 | pxa_gpio_mode(GPIO49_nPWE_MD); | ||
128 | pxa_gpio_mode(GPIO50_nPIOR_MD); | ||
129 | pxa_gpio_mode(GPIO51_nPIOW_MD); | ||
130 | pxa_gpio_mode(GPIO55_nPREG_MD); | ||
131 | pxa_gpio_mode(GPIO56_nPWAIT_MD); | ||
132 | pxa_gpio_mode(GPIO57_nIOIS16_MD); | ||
133 | pxa_gpio_mode(GPIO52_nPCE_1_MD); | ||
134 | pxa_gpio_mode(GPIO53_nPCE_2_MD); | ||
135 | pxa_gpio_mode(GPIO54_pSKTSEL_MD); | ||
136 | } | ||
137 | |||
138 | static struct scoop_pcmcia_config tosa_pcmcia_config = { | ||
139 | .devs = &tosa_pcmcia_scoop[0], | ||
140 | .num_devs = 2, | ||
141 | .pcmcia_init = tosa_pcmcia_init, | ||
142 | }; | ||
143 | |||
114 | /* | 144 | /* |
115 | * USB Device Controller | 145 | * USB Device Controller |
116 | */ | 146 | */ |
@@ -249,10 +279,9 @@ static void __init tosa_init(void) | |||
249 | pxa_set_mci_info(&tosa_mci_platform_data); | 279 | pxa_set_mci_info(&tosa_mci_platform_data); |
250 | pxa_set_udc_info(&udc_info); | 280 | pxa_set_udc_info(&udc_info); |
251 | pxa_set_ficp_info(&tosa_ficp_platform_data); | 281 | pxa_set_ficp_info(&tosa_ficp_platform_data); |
252 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 282 | platform_scoop_config = &tosa_pcmcia_config; |
253 | 283 | ||
254 | scoop_num = 2; | 284 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
255 | scoop_devs = &tosa_pcmcia_scoop[0]; | ||
256 | } | 285 | } |
257 | 286 | ||
258 | static void __init fixup_tosa(struct machine_desc *desc, | 287 | static void __init fixup_tosa(struct machine_desc *desc, |