diff options
author | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-06 03:45:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-06 03:45:34 -0400 |
commit | 1e231efe50ffe4d291be24d2fe393188de9c4b08 (patch) | |
tree | 5a7b92970eedd27c74bdf29c2cbe23e9b6a6a849 /arch | |
parent | ef88b7dba2b47c70037a34a599d383462bb74bd3 (diff) | |
parent | 0ce7625f3c1e3f921f6b83f7e944e00031a39dfa (diff) |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
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 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-n30.c | 30 |
4 files changed, 40 insertions, 20 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"); |
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c index 79044d9bce38..66bf5bb2b3db 100644 --- a/arch/arm/mach-s3c2410/mach-n30.c +++ b/arch/arm/mach-s3c2410/mach-n30.c | |||
@@ -110,34 +110,24 @@ void __init n30_init_irq(void) | |||
110 | s3c24xx_init_irq(); | 110 | s3c24xx_init_irq(); |
111 | } | 111 | } |
112 | 112 | ||
113 | 113 | /* GPB3 is the line that controls the pull-up for the USB D+ line */ | |
114 | static int n30_usbstart_thread(void *unused) | ||
115 | { | ||
116 | /* Turn off suspend on both USB ports, and switch the | ||
117 | * selectable USB port to USB device mode. */ | ||
118 | writel(readl(S3C2410_MISCCR) & ~0x00003008, S3C2410_MISCCR); | ||
119 | |||
120 | /* Turn off the D+ pull up for 3 seconds so that the USB host | ||
121 | * at the other end will do a rescan of the USB bus. */ | ||
122 | s3c2410_gpio_setpin(S3C2410_GPB3, 0); | ||
123 | |||
124 | msleep_interruptible(3*HZ); | ||
125 | |||
126 | s3c2410_gpio_setpin(S3C2410_GPB3, 1); | ||
127 | |||
128 | return 0; | ||
129 | } | ||
130 | |||
131 | 114 | ||
132 | void __init n30_init(void) | 115 | void __init n30_init(void) |
133 | { | 116 | { |
134 | s3c_device_i2c.dev.platform_data = &n30_i2ccfg; | 117 | s3c_device_i2c.dev.platform_data = &n30_i2ccfg; |
135 | 118 | ||
136 | kthread_run(n30_usbstart_thread, NULL, "n30_usbstart"); | 119 | /* Turn off suspend on both USB ports, and switch the |
120 | * selectable USB port to USB device mode. */ | ||
121 | |||
122 | s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST | | ||
123 | S3C2410_MISCCR_USBSUSPND0 | | ||
124 | S3C2410_MISCCR_USBSUSPND1, 0x0); | ||
137 | } | 125 | } |
138 | 126 | ||
139 | MACHINE_START(N30, "Acer-N30") | 127 | MACHINE_START(N30, "Acer-N30") |
140 | /* Maintainer: Christer Weinigel <christer@weinigel.se>, Ben Dooks <ben-linux@fluff.org> */ | 128 | /* Maintainer: Christer Weinigel <christer@weinigel.se>, |
129 | Ben Dooks <ben-linux@fluff.org> | ||
130 | */ | ||
141 | .phys_ram = S3C2410_SDRAM_PA, | 131 | .phys_ram = S3C2410_SDRAM_PA, |
142 | .phys_io = S3C2410_PA_UART, | 132 | .phys_io = S3C2410_PA_UART, |
143 | .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc, | 133 | .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc, |