diff options
Diffstat (limited to 'arch/arm/mach-pxa/lubbock.c')
-rw-r--r-- | arch/arm/mach-pxa/lubbock.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c index 7b9bdd0c6665..ac26423cd20c 100644 --- a/arch/arm/mach-pxa/lubbock.c +++ b/arch/arm/mach-pxa/lubbock.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <linux/mtd/mtd.h> | 22 | #include <linux/mtd/mtd.h> |
23 | #include <linux/mtd/partitions.h> | 23 | #include <linux/mtd/partitions.h> |
24 | #include <linux/smc91x.h> | ||
24 | 25 | ||
25 | #include <linux/spi/spi.h> | 26 | #include <linux/spi/spi.h> |
26 | #include <linux/spi/ads7846.h> | 27 | #include <linux/spi/ads7846.h> |
@@ -43,6 +44,7 @@ | |||
43 | #include <asm/arch/pxa-regs.h> | 44 | #include <asm/arch/pxa-regs.h> |
44 | #include <asm/arch/pxa2xx-regs.h> | 45 | #include <asm/arch/pxa2xx-regs.h> |
45 | #include <asm/arch/mfp-pxa25x.h> | 46 | #include <asm/arch/mfp-pxa25x.h> |
47 | #include <asm/arch/audio.h> | ||
46 | #include <asm/arch/lubbock.h> | 48 | #include <asm/arch/lubbock.h> |
47 | #include <asm/arch/udc.h> | 49 | #include <asm/arch/udc.h> |
48 | #include <asm/arch/irda.h> | 50 | #include <asm/arch/irda.h> |
@@ -196,11 +198,6 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = { | |||
196 | // no D+ pullup; lubbock can't connect/disconnect in software | 198 | // no D+ pullup; lubbock can't connect/disconnect in software |
197 | }; | 199 | }; |
198 | 200 | ||
199 | static struct platform_device lub_audio_device = { | ||
200 | .name = "pxa2xx-ac97", | ||
201 | .id = -1, | ||
202 | }; | ||
203 | |||
204 | static struct resource sa1111_resources[] = { | 201 | static struct resource sa1111_resources[] = { |
205 | [0] = { | 202 | [0] = { |
206 | .start = 0x10000000, | 203 | .start = 0x10000000, |
@@ -230,14 +227,6 @@ static struct pxa2xx_spi_master pxa_ssp_master_info = { | |||
230 | .num_chipselect = 0, | 227 | .num_chipselect = 0, |
231 | }; | 228 | }; |
232 | 229 | ||
233 | static struct platform_device pxa_ssp = { | ||
234 | .name = "pxa2xx-spi", | ||
235 | .id = 1, | ||
236 | .dev = { | ||
237 | .platform_data = &pxa_ssp_master_info, | ||
238 | }, | ||
239 | }; | ||
240 | |||
241 | static int lubbock_ads7846_pendown_state(void) | 230 | static int lubbock_ads7846_pendown_state(void) |
242 | { | 231 | { |
243 | /* TS_BUSY is bit 8 in LUB_MISC_RD, but pendown is irq-only */ | 232 | /* TS_BUSY is bit 8 in LUB_MISC_RD, but pendown is irq-only */ |
@@ -296,11 +285,18 @@ static struct resource smc91x_resources[] = { | |||
296 | }, | 285 | }, |
297 | }; | 286 | }; |
298 | 287 | ||
288 | static struct smc91x_platdata lubbock_smc91x_info = { | ||
289 | .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT | SMC91X_IO_SHIFT_2, | ||
290 | }; | ||
291 | |||
299 | static struct platform_device smc91x_device = { | 292 | static struct platform_device smc91x_device = { |
300 | .name = "smc91x", | 293 | .name = "smc91x", |
301 | .id = -1, | 294 | .id = -1, |
302 | .num_resources = ARRAY_SIZE(smc91x_resources), | 295 | .num_resources = ARRAY_SIZE(smc91x_resources), |
303 | .resource = smc91x_resources, | 296 | .resource = smc91x_resources, |
297 | .dev = { | ||
298 | .platform_data = &lubbock_smc91x_info, | ||
299 | }, | ||
304 | }; | 300 | }; |
305 | 301 | ||
306 | static struct resource flash_resources[] = { | 302 | static struct resource flash_resources[] = { |
@@ -368,11 +364,9 @@ static struct platform_device lubbock_flash_device[2] = { | |||
368 | 364 | ||
369 | static struct platform_device *devices[] __initdata = { | 365 | static struct platform_device *devices[] __initdata = { |
370 | &sa1111_device, | 366 | &sa1111_device, |
371 | &lub_audio_device, | ||
372 | &smc91x_device, | 367 | &smc91x_device, |
373 | &lubbock_flash_device[0], | 368 | &lubbock_flash_device[0], |
374 | &lubbock_flash_device[1], | 369 | &lubbock_flash_device[1], |
375 | &pxa_ssp, | ||
376 | }; | 370 | }; |
377 | 371 | ||
378 | static struct pxafb_mode_info sharp_lm8v31_mode = { | 372 | static struct pxafb_mode_info sharp_lm8v31_mode = { |
@@ -476,6 +470,7 @@ static void lubbock_irda_transceiver_mode(struct device *dev, int mode) | |||
476 | } else if (mode & IR_FIRMODE) { | 470 | } else if (mode & IR_FIRMODE) { |
477 | LUB_MISC_WR |= 1 << 4; | 471 | LUB_MISC_WR |= 1 << 4; |
478 | } | 472 | } |
473 | pxa2xx_transceiver_mode(dev, mode); | ||
479 | local_irq_restore(flags); | 474 | local_irq_restore(flags); |
480 | } | 475 | } |
481 | 476 | ||
@@ -494,6 +489,7 @@ static void __init lubbock_init(void) | |||
494 | set_pxa_fb_info(&sharp_lm8v31); | 489 | set_pxa_fb_info(&sharp_lm8v31); |
495 | pxa_set_mci_info(&lubbock_mci_platform_data); | 490 | pxa_set_mci_info(&lubbock_mci_platform_data); |
496 | pxa_set_ficp_info(&lubbock_ficp_platform_data); | 491 | pxa_set_ficp_info(&lubbock_ficp_platform_data); |
492 | pxa_set_ac97_info(NULL); | ||
497 | 493 | ||
498 | lubbock_flash_data[0].width = lubbock_flash_data[1].width = | 494 | lubbock_flash_data[0].width = lubbock_flash_data[1].width = |
499 | (BOOT_DEF & 1) ? 2 : 4; | 495 | (BOOT_DEF & 1) ? 2 : 4; |
@@ -505,6 +501,7 @@ static void __init lubbock_init(void) | |||
505 | lubbock_flash_data[flashboot].name = "boot-rom"; | 501 | lubbock_flash_data[flashboot].name = "boot-rom"; |
506 | (void) platform_add_devices(devices, ARRAY_SIZE(devices)); | 502 | (void) platform_add_devices(devices, ARRAY_SIZE(devices)); |
507 | 503 | ||
504 | pxa2xx_set_spi_info(1, &pxa_ssp_master_info); | ||
508 | spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); | 505 | spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); |
509 | } | 506 | } |
510 | 507 | ||