diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/common/scoop.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/corgi.c | 12 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/poodle.c | 12 |
3 files changed, 30 insertions, 0 deletions
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c index cfd0d3e550d9..688a595598c8 100644 --- a/arch/arm/common/scoop.c +++ b/arch/arm/common/scoop.c | |||
| @@ -17,6 +17,12 @@ | |||
| 17 | 17 | ||
| 18 | #define SCOOP_REG(d,adr) (*(volatile unsigned short*)(d +(adr))) | 18 | #define SCOOP_REG(d,adr) (*(volatile unsigned short*)(d +(adr))) |
| 19 | 19 | ||
| 20 | /* PCMCIA to Scoop linkage structures for pxa2xx_sharpsl.c | ||
| 21 | There is no easy way to link multiple scoop devices into one | ||
| 22 | single entity for the pxa2xx_pcmcia device */ | ||
| 23 | int scoop_num; | ||
| 24 | struct scoop_pcmcia_dev *scoop_devs; | ||
| 25 | |||
| 20 | struct scoop_dev { | 26 | struct scoop_dev { |
| 21 | void *base; | 27 | void *base; |
| 22 | spinlock_t scoop_lock; | 28 | spinlock_t scoop_lock; |
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index 86b862f56e7e..06ea730e8675 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
| @@ -60,6 +60,15 @@ static struct scoop_config corgi_scoop_setup = { | |||
| 60 | .io_out = CORGI_SCOOP_IO_OUT, | 60 | .io_out = CORGI_SCOOP_IO_OUT, |
| 61 | }; | 61 | }; |
| 62 | 62 | ||
| 63 | static struct scoop_pcmcia_dev corgi_pcmcia_scoop[] = { | ||
| 64 | { | ||
| 65 | .dev = &corgiscoop_device.dev, | ||
| 66 | .irq = CORGI_IRQ_GPIO_CF_IRQ, | ||
| 67 | .cd_irq = CORGI_IRQ_GPIO_CF_CD, | ||
| 68 | .cd_irq_str = "PCMCIA0 CD", | ||
| 69 | }, | ||
| 70 | }; | ||
| 71 | |||
| 63 | struct platform_device corgiscoop_device = { | 72 | struct platform_device corgiscoop_device = { |
| 64 | .name = "sharp-scoop", | 73 | .name = "sharp-scoop", |
| 65 | .id = -1, | 74 | .id = -1, |
| @@ -241,6 +250,9 @@ static void __init corgi_init(void) | |||
| 241 | pxa_set_udc_info(&udc_info); | 250 | pxa_set_udc_info(&udc_info); |
| 242 | pxa_set_mci_info(&corgi_mci_platform_data); | 251 | pxa_set_mci_info(&corgi_mci_platform_data); |
| 243 | 252 | ||
| 253 | scoop_num = 1; | ||
| 254 | scoop_devs = &corgi_pcmcia_scoop[0]; | ||
| 255 | |||
| 244 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 256 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 245 | } | 257 | } |
| 246 | 258 | ||
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 0e4f6fab100a..47cfb8bb8318 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
| @@ -62,6 +62,15 @@ struct platform_device poodle_scoop_device = { | |||
| 62 | .resource = poodle_scoop_resources, | 62 | .resource = poodle_scoop_resources, |
| 63 | }; | 63 | }; |
| 64 | 64 | ||
| 65 | static struct scoop_pcmcia_dev poodle_pcmcia_scoop[] = { | ||
| 66 | { | ||
| 67 | .dev = &poodle_scoop_device.dev, | ||
| 68 | .irq = POODLE_IRQ_GPIO_CF_IRQ, | ||
| 69 | .cd_irq = POODLE_IRQ_GPIO_CF_CD, | ||
| 70 | .cd_irq_str = "PCMCIA0 CD", | ||
| 71 | }, | ||
| 72 | }; | ||
| 73 | |||
| 65 | 74 | ||
| 66 | /* LoCoMo device */ | 75 | /* LoCoMo device */ |
| 67 | static struct resource locomo_resources[] = { | 76 | static struct resource locomo_resources[] = { |
| @@ -147,6 +156,9 @@ static void __init poodle_init(void) | |||
| 147 | 156 | ||
| 148 | set_pxa_fb_info(&poodle_fb_info); | 157 | set_pxa_fb_info(&poodle_fb_info); |
| 149 | 158 | ||
| 159 | scoop_num = 1; | ||
| 160 | scoop_devs = &poodle_pcmcia_scoop[0]; | ||
| 161 | |||
| 150 | ret = platform_add_devices(devices, ARRAY_SIZE(devices)); | 162 | ret = platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 151 | if (ret) { | 163 | if (ret) { |
| 152 | printk(KERN_WARNING "poodle: Unable to register LoCoMo device\n"); | 164 | printk(KERN_WARNING "poodle: Unable to register LoCoMo device\n"); |
