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 f67b83dd9010..bdd7b80dd7ad 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -604,28 +604,72 @@ static void __init mop500_init_machine(void) | |||
604 | { | 604 | { |
605 | int i2c0_devs; | 605 | int i2c0_devs; |
606 | 606 | ||
607 | mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; | ||
608 | |||
609 | u8500_init_devices(); | ||
610 | |||
611 | mop500_pins_init(); | ||
612 | |||
613 | platform_add_devices(mop500_platform_devs, | ||
614 | ARRAY_SIZE(mop500_platform_devs)); | ||
615 | |||
616 | mop500_i2c_init(); | ||
617 | mop500_sdi_init(); | ||
618 | mop500_spi_init(); | ||
619 | mop500_uart_init(); | ||
620 | |||
621 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); | ||
622 | |||
623 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); | ||
624 | i2c_register_board_info(2, mop500_i2c2_devices, | ||
625 | ARRAY_SIZE(mop500_i2c2_devices)); | ||
626 | |||
627 | /* This board has full regulator constraints */ | ||
628 | regulator_has_full_constraints(); | ||
629 | } | ||
630 | |||
631 | static void __init snowball_init_machine(void) | ||
632 | { | ||
633 | int i2c0_devs; | ||
634 | |||
635 | u8500_init_devices(); | ||
636 | |||
637 | snowball_pins_init(); | ||
638 | |||
639 | platform_add_devices(snowball_platform_devs, | ||
640 | ARRAY_SIZE(snowball_platform_devs)); | ||
641 | |||
642 | mop500_i2c_init(); | ||
643 | snowball_sdi_init(); | ||
644 | mop500_spi_init(); | ||
645 | mop500_uart_init(); | ||
646 | |||
647 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); | ||
648 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); | ||
649 | i2c_register_board_info(2, mop500_i2c2_devices, | ||
650 | ARRAY_SIZE(mop500_i2c2_devices)); | ||
651 | |||
652 | /* This board has full regulator constraints */ | ||
653 | regulator_has_full_constraints(); | ||
654 | } | ||
655 | |||
656 | static void __init hrefv60_init_machine(void) | ||
657 | { | ||
658 | int i2c0_devs; | ||
659 | |||
607 | /* | 660 | /* |
608 | * The HREFv60 board removed a GPIO expander and routed | 661 | * The HREFv60 board removed a GPIO expander and routed |
609 | * all these GPIO pins to the internal GPIO controller | 662 | * all these GPIO pins to the internal GPIO controller |
610 | * instead. | 663 | * instead. |
611 | */ | 664 | */ |
612 | if (!machine_is_snowball()) { | 665 | mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; |
613 | if (machine_is_hrefv60()) | ||
614 | mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; | ||
615 | else | ||
616 | mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; | ||
617 | } | ||
618 | 666 | ||
619 | u8500_init_devices(); | 667 | u8500_init_devices(); |
620 | 668 | ||
621 | mop500_pins_init(); | 669 | hrefv60_pins_init(); |
622 | 670 | ||
623 | if (machine_is_snowball()) | 671 | platform_add_devices(mop500_platform_devs, |
624 | platform_add_devices(snowball_platform_devs, | 672 | ARRAY_SIZE(mop500_platform_devs)); |
625 | ARRAY_SIZE(snowball_platform_devs)); | ||
626 | else | ||
627 | platform_add_devices(mop500_platform_devs, | ||
628 | ARRAY_SIZE(mop500_platform_devs)); | ||
629 | 673 | ||
630 | mop500_i2c_init(); | 674 | mop500_i2c_init(); |
631 | mop500_sdi_init(); | 675 | mop500_sdi_init(); |
@@ -633,8 +677,8 @@ static void __init mop500_init_machine(void) | |||
633 | mop500_uart_init(); | 677 | mop500_uart_init(); |
634 | 678 | ||
635 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); | 679 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); |
636 | if (machine_is_hrefv60()) | 680 | |
637 | i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES; | 681 | i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES; |
638 | 682 | ||
639 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); | 683 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); |
640 | i2c_register_board_info(2, mop500_i2c2_devices, | 684 | i2c_register_board_info(2, mop500_i2c2_devices, |
@@ -659,7 +703,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") | |||
659 | .map_io = u8500_map_io, | 703 | .map_io = u8500_map_io, |
660 | .init_irq = ux500_init_irq, | 704 | .init_irq = ux500_init_irq, |
661 | .timer = &ux500_timer, | 705 | .timer = &ux500_timer, |
662 | .init_machine = mop500_init_machine, | 706 | .init_machine = hrefv60_init_machine, |
663 | MACHINE_END | 707 | MACHINE_END |
664 | 708 | ||
665 | MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") | 709 | MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") |
@@ -668,5 +712,5 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") | |||
668 | .init_irq = ux500_init_irq, | 712 | .init_irq = ux500_init_irq, |
669 | /* we re-use nomadik timer here */ | 713 | /* we re-use nomadik timer here */ |
670 | .timer = &ux500_timer, | 714 | .timer = &ux500_timer, |
671 | .init_machine = mop500_init_machine, | 715 | .init_machine = snowball_init_machine, |
672 | MACHINE_END | 716 | MACHINE_END |