ARM: ux500: get rid of static maps
Subsystems (3)
PATCH 1/1 ARM: ux500: get rid of static maps
The static mappings of the GPIO blocks, clock/reset controller and MTU timer are clearly superfluous. These are all probed exclusively from the device tree. Tested on the U8500.
---
Hi ARM SoC-guys: please apply this single clean-up patch directly to the ARM SoC-tree where apropriate.
--- arch/arm/mach-ux500/cpu-db8500.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-)
arch/arm/mach-ux500/cpu-db8500.c +1 -12
@@ -48,25 +48,14 @@ static struct map_desc u8500_uart_io_desc[] __initdata = {__IO_DEV_DESC (U8500_UART0_BASE ,SZ_4K ), __IO_DEV_DESC(U8500_UART2_BASE, SZ_4K), }; +/* U8500 and U9540 common io_desc */ static struct map_desc u8500_common_io_desc[]__initdata = {/* SCU base also covers GIC CPU BASE and TWD with its 4K page */ __IO_DEV_DESC (U8500_SCU_BASE ,SZ_4K ),__IO_DEV_DESC (U8500_GIC_DIST_BASE ,SZ_4K ),__IO_DEV_DESC (U8500_L2CC_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_MTU0_BASE ,SZ_4K ),__IO_DEV_DESC (U8500_BACKUPRAM0_BASE ,SZ_8K ), - -__IO_DEV_DESC (U8500_CLKRST1_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_CLKRST2_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_CLKRST3_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_CLKRST5_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_CLKRST6_BASE ,SZ_4K ), - -__IO_DEV_DESC (U8500_GPIO0_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_GPIO1_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_GPIO2_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_GPIO3_BASE ,SZ_4K ), };/* U8500 IO map specific description */
Signature · 1 line
1.9.3
Arnd Bergmann
AppliedPATCH 1/1 ARM: ux500: get rid of static maps
Quoted 8 lines · On Wednesday 13 May 2015 12:53:07 Linus Walleij wrote:
The static mappings of the GPIO blocks, clock/reset controller and MTU timer are clearly superfluous. These are all probed exclusively from the device tree. Tested on the U8500.
Signed-off-by Linus Walleij <[email protected]>---
Hi ARM SoC-guys: please apply this single clean-up patch directly to the ARM SoC-tree where apropriate.
Applied to next/cleanup, very nice!
Quoted 10 lines
arch/arm/mach-ux500/cpu-db8500.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-)arch/arm/mach-ux500/cpu-db8500.c +0
-0@@ -48,25 +48,14 @@ static struct map_desc u8500_uart_io_desc[] __initdata = {__IO_DEV_DESC (U8500_UART0_BASE ,SZ_4K ), __IO_DEV_DESC(U8500_UART2_BASE, SZ_4K),
arch/arm/mach-ux500/cpu-db8500.c static struct map_desc u8500_uart_io_desc[] __initdata = { · line 58
Quoted 10 lines
arch/arm/mach-ux500/cpu-db8500.c +1
-1}; +/* U8500 and U9540 common io_desc */ static struct map_desc u8500_common_io_desc[]__initdata = {/* SCU base also covers GIC CPU BASE and TWD with its 4K page */ __IO_DEV_DESC (U8500_SCU_BASE ,SZ_4K ),__IO_DEV_DESC (U8500_GIC_DIST_BASE ,SZ_4K ),__IO_DEV_DESC (U8500_L2CC_BASE ,SZ_4K ), -__IO_DEV_DESC (U8500_MTU0_BASE ,SZ_4K ),__IO_DEV_DESC (U8500_BACKUPRAM0_BASE ,SZ_8K ),
Could you have a look at removing the other ones as well? I think that would be a nice cleanup. I think it can be done like this:
U8500_UART?_BASE: obsolete if you call debug_ll_io_init() or have an empty
map_io function
U8500_SCU_BASE: add a local variable in platsmp.c and use of_iomap, or
ioremap with a fixed physical address if the DT node is missing
U8500_GIC_DIST_BASE: I don't really understand what's going on. We could
just move the two users into local functions of the cpuidle driver and use ioremap of the GIC, but there might be a proper solution.
U8500_L2CC_BASE: it looks like ux500_l2x0_unlock() can be deleted, the
l2x0_of_init() function already does this in l2c_unlock
U8500_BACKUPRAM0_BASE: the right solution is probably to use the generic
sram, but ioremap() of the physical address in wakeup_secondary would also work
U8500_PRCMU_BASE: use a local variable in ux500_init_irq, and do an
of_iomap() to pass a virtual address. Currently the callee already does an ioremap, so it's probably not needed.
U8500_PRCMU_TCDM_BASE: unused?
Arnd