diff options
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500.c')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.c | 78 |
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 | |||
630 | static 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 | |||
655 | static 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, |
662 | MACHINE_END | 706 | MACHINE_END |
663 | 707 | ||
664 | MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") | 708 | MACHINE_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, |
671 | MACHINE_END | 715 | MACHINE_END |