aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ux500
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2012-09-25 11:03:45 -0400
committerLee Jones <lee.jones@linaro.org>2012-11-01 07:59:21 -0400
commit0ddf855af6162df41345ea6afabd0190d751bfb9 (patch)
treed8055c3ddf15a6e407fa78f93b7171bf8c35c9bc /arch/arm/mach-ux500
parent809efa565a83dee14ae44726a7a2766960a11b62 (diff)
ARM: ux500: Fix initialisation order for UIBs
An earlier change prevented User Interface Boards (UIBs) from being initialised on boards which did not support them. This change had the undesired effect of reordering the UIB initialisation calls with I2C registration. Here we ensure UIBs are only setup after all required infrastructure is already in place. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'arch/arm/mach-ux500')
-rw-r--r--arch/arm/mach-ux500/board-mop500.c10
-rw-r--r--arch/arm/mach-ux500/cpu.c3
2 files changed, 4 insertions, 9 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 416d436111f2..e7dd757a79fb 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -618,8 +618,6 @@ static void __init mop500_init_machine(void)
618 618
619 /* This board has full regulator constraints */ 619 /* This board has full regulator constraints */
620 regulator_has_full_constraints(); 620 regulator_has_full_constraints();
621
622 mop500_uib_init();
623} 621}
624 622
625static void __init snowball_init_machine(void) 623static void __init snowball_init_machine(void)
@@ -684,8 +682,6 @@ static void __init hrefv60_init_machine(void)
684 682
685 /* This board has full regulator constraints */ 683 /* This board has full regulator constraints */
686 regulator_has_full_constraints(); 684 regulator_has_full_constraints();
687
688 mop500_uib_init();
689} 685}
690 686
691MACHINE_START(U8500, "ST-Ericsson MOP500 platform") 687MACHINE_START(U8500, "ST-Ericsson MOP500 platform")
@@ -721,7 +717,7 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
721 .timer = &ux500_timer, 717 .timer = &ux500_timer,
722 .handle_irq = gic_handle_irq, 718 .handle_irq = gic_handle_irq,
723 .init_machine = snowball_init_machine, 719 .init_machine = snowball_init_machine,
724 .init_late = ux500_init_late, 720 .init_late = NULL,
725MACHINE_END 721MACHINE_END
726 722
727#ifdef CONFIG_MACH_UX500_DT 723#ifdef CONFIG_MACH_UX500_DT
@@ -811,8 +807,6 @@ static void __init u8500_init_machine(void)
811 i2c_register_board_info(2, mop500_i2c2_devices, 807 i2c_register_board_info(2, mop500_i2c2_devices,
812 ARRAY_SIZE(mop500_i2c2_devices)); 808 ARRAY_SIZE(mop500_i2c2_devices));
813 809
814 mop500_uib_init();
815
816 } else if (of_machine_is_compatible("calaosystems,snowball-a9500")) { 810 } else if (of_machine_is_compatible("calaosystems,snowball-a9500")) {
817 mop500_of_audio_init(parent); 811 mop500_of_audio_init(parent);
818 } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) { 812 } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) {
@@ -824,8 +818,6 @@ static void __init u8500_init_machine(void)
824 mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; 818 mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO;
825 platform_add_devices(mop500_platform_devs, 819 platform_add_devices(mop500_platform_devs,
826 ARRAY_SIZE(mop500_platform_devs)); 820 ARRAY_SIZE(mop500_platform_devs));
827
828 mop500_uib_init();
829 } 821 }
830 822
831 /* This board has full regulator constraints */ 823 /* This board has full regulator constraints */
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c
index 1f3fbc2bb776..721e7b4275f3 100644
--- a/arch/arm/mach-ux500/cpu.c
+++ b/arch/arm/mach-ux500/cpu.c
@@ -26,6 +26,8 @@
26#include <mach/setup.h> 26#include <mach/setup.h>
27#include <mach/devices.h> 27#include <mach/devices.h>
28 28
29#include "board-mop500.h"
30
29void __iomem *_PRCMU_BASE; 31void __iomem *_PRCMU_BASE;
30 32
31/* 33/*
@@ -82,6 +84,7 @@ void __init ux500_init_irq(void)
82 84
83void __init ux500_init_late(void) 85void __init ux500_init_late(void)
84{ 86{
87 mop500_uib_init();
85} 88}
86 89
87static const char * __init ux500_get_machine(void) 90static const char * __init ux500_get_machine(void)