diff options
author | Tony Lindgren <tony@atomide.com> | 2012-05-09 09:59:25 -0700 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2012-05-09 14:33:18 -0700 |
commit | 49b1a616a77d02b2b0034e0a5ad4bc2e565f2c58 (patch) | |
tree | 9c50704373f5c24d166220a23329b3d5bbe4ebf1 /arch/arm/mach-omap1/devices.c | |
parent | fcc76a85061d4dbc0accabe252c8f3496e72efe1 (diff) |
ARM: OMAP1: Move omap_init_uwire to mach-omap1
This hardware exists on omap1 only and there's no need to keep it
in plat-omap/devices.c. No functional changes.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap1/devices.c')
-rw-r--r-- | arch/arm/mach-omap1/devices.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index 51387a447cce..b853f6110a44 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c @@ -258,6 +258,49 @@ void __init omap1_camera_init(void *info) static inline void omap_init_sti(void) {} +/* Numbering for the SPI-capable controllers when used for SPI: + * spi = 1 + * uwire = 2 + * mmc1..2 = 3..4 + * mcbsp1..3 = 5..7 + */ + +#if defined(CONFIG_SPI_OMAP_UWIRE) || defined(CONFIG_SPI_OMAP_UWIRE_MODULE) + +#define OMAP_UWIRE_BASE 0xfffb3000 + +static struct resource uwire_resources[] = { + { + .start = OMAP_UWIRE_BASE, + .end = OMAP_UWIRE_BASE + 0x20, + .flags = IORESOURCE_MEM, + }, +}; + +static struct platform_device omap_uwire_device = { + .name = "omap_uwire", + .id = -1, + .num_resources = ARRAY_SIZE(uwire_resources), + .resource = uwire_resources, +}; + +static void omap_init_uwire(void) +{ + /* FIXME define and use a boot tag; not all boards will be hooking + * up devices to the microwire controller, and multi-board configs + * mean that CONFIG_SPI_OMAP_UWIRE may be configured anyway... + */ + + /* board-specific code must configure chipselects (only a few + * are normally used) and SCLK/SDI/SDO (each has two choices). + */ + (void) platform_device_register(&omap_uwire_device); +} +#else +static inline void omap_init_uwire(void) {} +#endif + + /* * This gets called after board-specific INIT_MACHINE, and initializes most * on-chip peripherals accessible on this board (except for few like USB): @@ -295,6 +338,7 @@ static int __init omap1_init_devices(void) omap_init_rtc(); omap_init_spi100k(); omap_init_sti(); + omap_init_uwire(); return 0; } |