Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18a99278 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Linus Walleij
Browse files

ARM: ux500: move soc_id driver to drivers/soc



As the ux500 id code is basically a standalone driver, we can move it
out of the arch code into drivers/soc/ux500.

This is a user-visible change, as it moves all the devices in sysfs
from /sys/devices/soc0/ to /sys/devices/ and leaves the soc0 node as a
separate device.

Originally the idea was to put all on-chip devices under the soc node,
and ux500 was the first platform to have this device, but later platforms
almost all didn't follow that pattern, so this makes the platform do
the same thing as everyone else.

Since the platform is really obsolete now, I am optimistic that nothing
will break after moving the devices around.

As the SoC driver no longer has access to the private header files,
I'm changing the code to instead look up the address of the backupram
from devicetree, which is a good idea anyway.

Finally, having a separate Kconfig symbol means the driver is now
optional and could even be a loadable module rather than always being
built-in if we allowed that for soc_device.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
[Fixup mising Makefile, fixup BB_UID_BASE to fc0]
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent f15601d6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Makefile for the linux kernel, U8500 machine.
#

obj-y				:= cpu.o id.o pm.o
obj-y				:= cpu.o pm.o
obj-$(CONFIG_CACHE_L2X0)	+= cache-l2x0.o
obj-$(CONFIG_UX500_SOC_DB8500)	+= cpu-db8500.o
obj-$(CONFIG_MACH_MOP500)	+= board-mop500-audio.o
+2 −4
Original line number Diff line number Diff line
@@ -88,15 +88,13 @@ static const struct of_device_id u8500_local_bus_nodes[] = {

static void __init u8500_init_machine(void)
{
	struct device *parent = ux500_soc_device_init();

	/* automatically probe child nodes of dbx5x0 devices */
	if (of_machine_is_compatible("st-ericsson,u8540"))
		of_platform_populate(NULL, u8500_local_bus_nodes,
				     u8540_auxdata_lookup, parent);
				     u8540_auxdata_lookup, NULL);
	else
		of_platform_populate(NULL, u8500_local_bus_nodes,
				     u8500_auxdata_lookup, parent);
				     u8500_auxdata_lookup, NULL);
}

static const char * stericsson_dt_platform_compat[] = {
+0 −2
Original line number Diff line number Diff line
@@ -21,8 +21,6 @@ void ux500_restart(enum reboot_mode mode, const char *cmd);

extern void __init ux500_init_irq(void);

extern struct device *ux500_soc_device_init(void);

extern void ux500_cpu_die(unsigned int cpu);

#endif /*  __ASM_ARCH_SETUP_H */
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ source "drivers/soc/samsung/Kconfig"
source "drivers/soc/sunxi/Kconfig"
source "drivers/soc/tegra/Kconfig"
source "drivers/soc/ti/Kconfig"
source "drivers/soc/ux500/Kconfig"
source "drivers/soc/versatile/Kconfig"

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -15,4 +15,5 @@ obj-$(CONFIG_SOC_SAMSUNG) += samsung/
obj-$(CONFIG_ARCH_SUNXI)	+= sunxi/
obj-$(CONFIG_ARCH_TEGRA)	+= tegra/
obj-$(CONFIG_SOC_TI)		+= ti/
obj-$(CONFIG_ARCH_U8500)	+= ux500/
obj-$(CONFIG_PLAT_VERSATILE)	+= versatile/
Loading