aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ux500')
-rwxr-xr-xarch/arm/mach-ux500/Kconfig8
-rwxr-xr-xarch/arm/mach-ux500/Makefile1
-rwxr-xr-xarch/arm/mach-ux500/board-u5500.c9
-rwxr-xr-xarch/arm/mach-ux500/devices.c7
-rwxr-xr-xarch/arm/mach-ux500/include/mach/devices.h4
5 files changed, 29 insertions, 0 deletions
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index df96996d521..cad7589e91e 100755
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -78,4 +78,12 @@ config FORCE_MAX_ZONEORDER
int "Maximum zone order"
default "12"
+config U5500_MLOADER_HELPER
+ bool "mLoader helper, mem config from kernel boot args exported to sysfs"
+ default n
+ depends on MACH_U5500_SIMULATOR
+ help
+ Link between boot args and user space program that loads the modem ELF
+
+
endif
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile
index 645657ccac7..77212ff2faa 100755
--- a/arch/arm/mach-ux500/Makefile
+++ b/arch/arm/mach-ux500/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_U8500_CPUFREQ) += cpufreq.o
obj-$(CONFIG_U8500_PM) += pm.o savecontext.o
obj-$(CONFIG_SENSORS1P_MOP) += sensors1p.o
obj-$(CONFIG_USB) += musb_db8500.o
+obj-$(CONFIG_U5500_MLOADER_HELPER) += mloader_helper.o
ifeq ($(CONFIG_MFD_STE_CONN), m)
obj-y += ste_conn_devices.o
diff --git a/arch/arm/mach-ux500/board-u5500.c b/arch/arm/mach-ux500/board-u5500.c
index 85b9f36c9be..3769bd68ddc 100755
--- a/arch/arm/mach-ux500/board-u5500.c
+++ b/arch/arm/mach-ux500/board-u5500.c
@@ -109,6 +109,12 @@ static struct amba_device *amba_board_devs[] __initdata = {
&ux500_uart2_device,
};
+static struct platform_device *u5500_platform_devices[] __initdata = {
+#ifdef CONFIG_U5500_MLOADER_HELPER
+ &mloader_helper_device,
+#endif
+};
+
static void __init u5500_init_machine(void)
{
stm_gpio_set_altfunctable(gpio_altfun_table,
@@ -121,6 +127,9 @@ static void __init u5500_init_machine(void)
u8500_register_device(&ux500_i2c_controller1, &u8500_i2c_1);
u8500_register_device(&ux500_i2c_controller2, &u8500_i2c_2);
u8500_register_device(&ux500_i2c_controller3, &u8500_i2c_3);
+
+ platform_add_devices(u5500_platform_devices,
+ ARRAY_SIZE(u5500_platform_devices));
}
MACHINE_START(NOMADIK, "ST-Ericsson U5500 Platform")
diff --git a/arch/arm/mach-ux500/devices.c b/arch/arm/mach-ux500/devices.c
index b838cfc8db0..711b02b45be 100755
--- a/arch/arm/mach-ux500/devices.c
+++ b/arch/arm/mach-ux500/devices.c
@@ -727,6 +727,13 @@ struct amba_device ux500_uart2_device = {
#endif
+#if defined(CONFIG_U5500_MLOADER_HELPER)
+struct platform_device mloader_helper_device = {
+ .name = "mloader_helper",
+ .id = -1,
+};
+#endif
+
void __init amba_add_devices(struct amba_device *devs[], int num)
{
int i;
diff --git a/arch/arm/mach-ux500/include/mach/devices.h b/arch/arm/mach-ux500/include/mach/devices.h
index a5973d85d7d..c00a36cffed 100755
--- a/arch/arm/mach-ux500/include/mach/devices.h
+++ b/arch/arm/mach-ux500/include/mach/devices.h
@@ -51,6 +51,10 @@ extern struct amba_device ux500_uart0_device;
extern struct amba_device ux500_uart1_device;
extern struct amba_device ux500_uart2_device;
+#ifdef CONFIG_U5500_MLOADER_HELPER
+extern struct platform_device mloader_helper_device;
+#endif
+
/*
* Do not use inside drivers. Check it in the board file and alter platform
* data.