aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ux500/board-mop500.c
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2011-08-26 11:54:07 -0400
committerLinus Walleij <linus.walleij@linaro.org>2011-08-30 03:22:57 -0400
commit110c2c2f40647d31994c09f0afd1411e71f48a32 (patch)
treec76703cfaf57605452d29bf0c9f8845d852eb170 /arch/arm/mach-ux500/board-mop500.c
parent458eef2f4d73a55efa835ed891922e31efe91920 (diff)
mach-ux500: remove most of the ugly machine_is_*() calls
Do more work in the per-machine init calls instead of customizing each init call. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500.c')
-rw-r--r--arch/arm/mach-ux500/board-mop500.c78
1 files changed, 61 insertions, 17 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index cd54abaccd96..6c00d4920396 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -603,28 +603,72 @@ static void __init mop500_init_machine(void)
603{ 603{
604 int i2c0_devs; 604 int i2c0_devs;
605 605
606 mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR;
607
608 u8500_init_devices();
609
610 mop500_pins_init();
611
612 platform_add_devices(mop500_platform_devs,
613 ARRAY_SIZE(mop500_platform_devs));
614
615 mop500_i2c_init();
616 mop500_sdi_init();
617 mop500_spi_init();
618 mop500_uart_init();
619
620 i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
621
622 i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs);
623 i2c_register_board_info(2, mop500_i2c2_devices,
624 ARRAY_SIZE(mop500_i2c2_devices));
625
626 /* This board has full regulator constraints */
627 regulator_has_full_constraints();
628}
629
630static void __init snowball_init_machine(void)
631{
632 int i2c0_devs;
633
634 u8500_init_devices();
635
636 snowball_pins_init();
637
638 platform_add_devices(snowball_platform_devs,
639 ARRAY_SIZE(snowball_platform_devs));
640
641 mop500_i2c_init();
642 snowball_sdi_init();
643 mop500_spi_init();
644 mop500_uart_init();
645
646 i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
647 i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs);
648 i2c_register_board_info(2, mop500_i2c2_devices,
649 ARRAY_SIZE(mop500_i2c2_devices));
650
651 /* This board has full regulator constraints */
652 regulator_has_full_constraints();
653}
654
655static void __init hrefv60_init_machine(void)
656{
657 int i2c0_devs;
658
606 /* 659 /*
607 * The HREFv60 board removed a GPIO expander and routed 660 * The HREFv60 board removed a GPIO expander and routed
608 * all these GPIO pins to the internal GPIO controller 661 * all these GPIO pins to the internal GPIO controller
609 * instead. 662 * instead.
610 */ 663 */
611 if (!machine_is_snowball()) { 664 mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO;
612 if (machine_is_hrefv60())
613 mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO;
614 else
615 mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR;
616 }
617 665
618 u8500_init_devices(); 666 u8500_init_devices();
619 667
620 mop500_pins_init(); 668 hrefv60_pins_init();
621 669
622 if (machine_is_snowball()) 670 platform_add_devices(mop500_platform_devs,
623 platform_add_devices(snowball_platform_devs, 671 ARRAY_SIZE(mop500_platform_devs));
624 ARRAY_SIZE(snowball_platform_devs));
625 else
626 platform_add_devices(mop500_platform_devs,
627 ARRAY_SIZE(mop500_platform_devs));
628 672
629 mop500_i2c_init(); 673 mop500_i2c_init();
630 mop500_sdi_init(); 674 mop500_sdi_init();
@@ -632,8 +676,8 @@ static void __init mop500_init_machine(void)
632 mop500_uart_init(); 676 mop500_uart_init();
633 677
634 i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); 678 i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
635 if (machine_is_hrefv60()) 679
636 i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES; 680 i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES;
637 681
638 i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); 682 i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs);
639 i2c_register_board_info(2, mop500_i2c2_devices, 683 i2c_register_board_info(2, mop500_i2c2_devices,
@@ -658,7 +702,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+")
658 .map_io = u8500_map_io, 702 .map_io = u8500_map_io,
659 .init_irq = ux500_init_irq, 703 .init_irq = ux500_init_irq,
660 .timer = &ux500_timer, 704 .timer = &ux500_timer,
661 .init_machine = mop500_init_machine, 705 .init_machine = hrefv60_init_machine,
662MACHINE_END 706MACHINE_END
663 707
664MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") 708MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
@@ -667,5 +711,5 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
667 .init_irq = ux500_init_irq, 711 .init_irq = ux500_init_irq,
668 /* we re-use nomadik timer here */ 712 /* we re-use nomadik timer here */
669 .timer = &ux500_timer, 713 .timer = &ux500_timer,
670 .init_machine = mop500_init_machine, 714 .init_machine = snowball_init_machine,
671MACHINE_END 715MACHINE_END