aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-orion5x/db88f5281-setup.c
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2008-04-21 23:37:12 -0400
committerLennert Buytenhek <buytenh@marvell.com>2008-06-22 16:44:45 -0400
commit044f6c7c449ae8ba0353b032706b098a7ad5e304 (patch)
tree527bebfce6634c7d24a9521272142c67be182679 /arch/arm/mach-orion5x/db88f5281-setup.c
parent6eef84a5496c678ab27b72bec0fc785c9cee063b (diff)
[ARM] Orion: move EHCI/I2C/UART peripheral init into board code
This patch moves initialisation of EHCI/I2C/UART platform devices from the common orion5x_init() into the board support code. The rationale behind this is that only the board support code knows whether certain peripherals have been brought out on the board, and not initialising peripherals that haven't been brought out is desirable for example: - to reduce user confusion (e.g. seeing both 'eth0' and 'eth1' appear while there is only one ethernet port on the board); and - to allow for future power savings (peripherals that have not been brought out can be clock gated off entirely). Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Acked-by: Russell King <linux@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-orion5x/db88f5281-setup.c')
-rw-r--r--arch/arm/mach-orion5x/db88f5281-setup.c39
1 files changed, 21 insertions, 18 deletions
diff --git a/arch/arm/mach-orion5x/db88f5281-setup.c b/arch/arm/mach-orion5x/db88f5281-setup.c
index 4ee695028254..eca76b3348bc 100644
--- a/arch/arm/mach-orion5x/db88f5281-setup.c
+++ b/arch/arm/mach-orion5x/db88f5281-setup.c
@@ -298,13 +298,6 @@ static struct i2c_board_info __initdata db88f5281_i2c_rtc = {
298/***************************************************************************** 298/*****************************************************************************
299 * General Setup 299 * General Setup
300 ****************************************************************************/ 300 ****************************************************************************/
301
302static struct platform_device *db88f5281_devs[] __initdata = {
303 &db88f5281_boot_flash,
304 &db88f5281_nor_flash,
305 &db88f5281_nand_flash,
306};
307
308static void __init db88f5281_init(void) 301static void __init db88f5281_init(void)
309{ 302{
310 /* 303 /*
@@ -313,15 +306,6 @@ static void __init db88f5281_init(void)
313 orion5x_init(); 306 orion5x_init();
314 307
315 /* 308 /*
316 * Setup the CPU address decode windows for our on-board devices
317 */
318 orion5x_setup_dev_boot_win(DB88F5281_NOR_BOOT_BASE,
319 DB88F5281_NOR_BOOT_SIZE);
320 orion5x_setup_dev0_win(DB88F5281_7SEG_BASE, DB88F5281_7SEG_SIZE);
321 orion5x_setup_dev1_win(DB88F5281_NOR_BASE, DB88F5281_NOR_SIZE);
322 orion5x_setup_dev2_win(DB88F5281_NAND_BASE, DB88F5281_NAND_SIZE);
323
324 /*
325 * Setup Multiplexing Pins: 309 * Setup Multiplexing Pins:
326 * MPP0: GPIO (USB Over Current) MPP1: GPIO (USB Vbat input) 310 * MPP0: GPIO (USB Over Current) MPP1: GPIO (USB Vbat input)
327 * MPP2: PCI_REQn[2] MPP3: PCI_GNTn[2] 311 * MPP2: PCI_REQn[2] MPP3: PCI_GNTn[2]
@@ -342,9 +326,28 @@ static void __init db88f5281_init(void)
342 326
343 orion5x_gpio_set_valid_pins(0x00003fc3); 327 orion5x_gpio_set_valid_pins(0x00003fc3);
344 328
345 platform_add_devices(db88f5281_devs, ARRAY_SIZE(db88f5281_devs)); 329 /*
346 i2c_register_board_info(0, &db88f5281_i2c_rtc, 1); 330 * Configure peripherals.
331 */
332 orion5x_ehci0_init();
347 orion5x_eth_init(&db88f5281_eth_data); 333 orion5x_eth_init(&db88f5281_eth_data);
334 orion5x_i2c_init();
335 orion5x_uart0_init();
336 orion5x_uart1_init();
337
338 orion5x_setup_dev_boot_win(DB88F5281_NOR_BOOT_BASE,
339 DB88F5281_NOR_BOOT_SIZE);
340 platform_device_register(&db88f5281_boot_flash);
341
342 orion5x_setup_dev0_win(DB88F5281_7SEG_BASE, DB88F5281_7SEG_SIZE);
343
344 orion5x_setup_dev1_win(DB88F5281_NOR_BASE, DB88F5281_NOR_SIZE);
345 platform_device_register(&db88f5281_nor_flash);
346
347 orion5x_setup_dev2_win(DB88F5281_NAND_BASE, DB88F5281_NAND_SIZE);
348 platform_device_register(&db88f5281_nand_flash);
349
350 i2c_register_board_info(0, &db88f5281_i2c_rtc, 1);
348} 351}
349 352
350MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board") 353MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board")