diff options
author | Guennadi Liakhovetski <lg@denx.de> | 2008-06-13 04:17:31 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-07-09 16:31:52 -0400 |
commit | e172274ccc55d20536fbdceb6131f38e288541e0 (patch) | |
tree | e3b0424d9c6d7e74608c29c91d94d94f6ab36706 /arch/arm/mach-pxa/devices.c | |
parent | cabb352a6455c3550f157909196845f533b0f374 (diff) |
[ARM] 5088/3: pxa2xx: add pxa2xx_set_spi_info to register pxa2xx-spi platform devices
Add a function to dynamically allocate and register pxa2xx-spi platform
devices, to be used by PXA2xx and PXA3xx based systems. Switch pcm027 and
lubbock to use it.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de>
Acked-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa/devices.c')
-rw-r--r-- | arch/arm/mach-pxa/devices.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c index a6f2390ce662..abc161dd083a 100644 --- a/arch/arm/mach-pxa/devices.c +++ b/arch/arm/mach-pxa/devices.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <asm/arch/mfp-pxa27x.h> | 13 | #include <asm/arch/mfp-pxa27x.h> |
14 | #include <asm/arch/ohci.h> | 14 | #include <asm/arch/ohci.h> |
15 | #include <asm/arch/pxa27x_keypad.h> | 15 | #include <asm/arch/pxa27x_keypad.h> |
16 | #include <asm/arch/pxa2xx_spi.h> | ||
16 | #include <asm/arch/camera.h> | 17 | #include <asm/arch/camera.h> |
17 | #include <asm/arch/audio.h> | 18 | #include <asm/arch/audio.h> |
18 | 19 | ||
@@ -831,3 +832,20 @@ void __init pxa3xx_set_mci3_info(struct pxamci_platform_data *info) | |||
831 | } | 832 | } |
832 | 833 | ||
833 | #endif /* CONFIG_PXA3xx */ | 834 | #endif /* CONFIG_PXA3xx */ |
835 | |||
836 | /* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1. | ||
837 | * See comment in arch/arm/mach-pxa/ssp.c::ssp_probe() */ | ||
838 | void __init pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_master *info) | ||
839 | { | ||
840 | struct platform_device *pd; | ||
841 | |||
842 | pd = platform_device_alloc("pxa2xx-spi", id); | ||
843 | if (pd == NULL) { | ||
844 | printk(KERN_ERR "pxa2xx-spi: failed to allocate device id %d\n", | ||
845 | id); | ||
846 | return; | ||
847 | } | ||
848 | |||
849 | pd->dev.platform_data = info; | ||
850 | platform_device_add(pd); | ||
851 | } | ||