diff options
Diffstat (limited to 'arch/arm/mach-pxa/devices.c')
-rw-r--r-- | arch/arm/mach-pxa/devices.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c index bfccb80ac8ef..d6c05b6eab35 100644 --- a/arch/arm/mach-pxa/devices.c +++ b/arch/arm/mach-pxa/devices.c | |||
@@ -11,6 +11,8 @@ | |||
11 | #include <asm/arch/irda.h> | 11 | #include <asm/arch/irda.h> |
12 | #include <asm/arch/i2c.h> | 12 | #include <asm/arch/i2c.h> |
13 | #include <asm/arch/ohci.h> | 13 | #include <asm/arch/ohci.h> |
14 | #include <asm/arch/pxa27x_keypad.h> | ||
15 | #include <asm/arch/camera.h> | ||
14 | 16 | ||
15 | #include "devices.h" | 17 | #include "devices.h" |
16 | 18 | ||
@@ -396,6 +398,31 @@ struct platform_device pxa25x_device_assp = { | |||
396 | 398 | ||
397 | #if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) | 399 | #if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) |
398 | 400 | ||
401 | static struct resource pxa27x_resource_keypad[] = { | ||
402 | [0] = { | ||
403 | .start = 0x41500000, | ||
404 | .end = 0x4150004c, | ||
405 | .flags = IORESOURCE_MEM, | ||
406 | }, | ||
407 | [1] = { | ||
408 | .start = IRQ_KEYPAD, | ||
409 | .end = IRQ_KEYPAD, | ||
410 | .flags = IORESOURCE_IRQ, | ||
411 | }, | ||
412 | }; | ||
413 | |||
414 | struct platform_device pxa27x_device_keypad = { | ||
415 | .name = "pxa27x-keypad", | ||
416 | .id = -1, | ||
417 | .resource = pxa27x_resource_keypad, | ||
418 | .num_resources = ARRAY_SIZE(pxa27x_resource_keypad), | ||
419 | }; | ||
420 | |||
421 | void __init pxa_set_keypad_info(struct pxa27x_keypad_platform_data *info) | ||
422 | { | ||
423 | pxa_register_device(&pxa27x_device_keypad, info); | ||
424 | } | ||
425 | |||
399 | static u64 pxa27x_ohci_dma_mask = DMA_BIT_MASK(32); | 426 | static u64 pxa27x_ohci_dma_mask = DMA_BIT_MASK(32); |
400 | 427 | ||
401 | static struct resource pxa27x_resource_ohci[] = { | 428 | static struct resource pxa27x_resource_ohci[] = { |
@@ -540,6 +567,37 @@ struct platform_device pxa27x_device_ssp3 = { | |||
540 | .resource = pxa27x_resource_ssp3, | 567 | .resource = pxa27x_resource_ssp3, |
541 | .num_resources = ARRAY_SIZE(pxa27x_resource_ssp3), | 568 | .num_resources = ARRAY_SIZE(pxa27x_resource_ssp3), |
542 | }; | 569 | }; |
570 | |||
571 | static struct resource pxa27x_resource_camera[] = { | ||
572 | [0] = { | ||
573 | .start = 0x50000000, | ||
574 | .end = 0x50000fff, | ||
575 | .flags = IORESOURCE_MEM, | ||
576 | }, | ||
577 | [1] = { | ||
578 | .start = IRQ_CAMERA, | ||
579 | .end = IRQ_CAMERA, | ||
580 | .flags = IORESOURCE_IRQ, | ||
581 | }, | ||
582 | }; | ||
583 | |||
584 | static u64 pxa27x_dma_mask_camera = DMA_BIT_MASK(32); | ||
585 | |||
586 | static struct platform_device pxa27x_device_camera = { | ||
587 | .name = "pxa27x-camera", | ||
588 | .id = 0, /* This is used to put cameras on this interface */ | ||
589 | .dev = { | ||
590 | .dma_mask = &pxa27x_dma_mask_camera, | ||
591 | .coherent_dma_mask = 0xffffffff, | ||
592 | }, | ||
593 | .num_resources = ARRAY_SIZE(pxa27x_resource_camera), | ||
594 | .resource = pxa27x_resource_camera, | ||
595 | }; | ||
596 | |||
597 | void __init pxa_set_camera_info(struct pxacamera_platform_data *info) | ||
598 | { | ||
599 | pxa_register_device(&pxa27x_device_camera, info); | ||
600 | } | ||
543 | #endif /* CONFIG_PXA27x || CONFIG_PXA3xx */ | 601 | #endif /* CONFIG_PXA27x || CONFIG_PXA3xx */ |
544 | 602 | ||
545 | #ifdef CONFIG_PXA3xx | 603 | #ifdef CONFIG_PXA3xx |