diff options
Diffstat (limited to 'kernel/arch/arm/mach-ux500/cache-l2x0.c')
-rw-r--r-- | kernel/arch/arm/mach-ux500/cache-l2x0.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/kernel/arch/arm/mach-ux500/cache-l2x0.c b/kernel/arch/arm/mach-ux500/cache-l2x0.c index e97ee556f..780bd13cd 100644 --- a/kernel/arch/arm/mach-ux500/cache-l2x0.c +++ b/kernel/arch/arm/mach-ux500/cache-l2x0.c @@ -6,7 +6,9 @@ #include <linux/io.h> #include <linux/of.h> +#include <linux/of_address.h> +#include <asm/outercache.h> #include <asm/hardware/cache-l2x0.h> #include "db8500-regs.h" @@ -15,7 +17,14 @@ static int __init ux500_l2x0_unlock(void) { int i; - void __iomem *l2x0_base = __io_address(U8500_L2CC_BASE); + struct device_node *np; + void __iomem *l2x0_base; + + np = of_find_compatible_node(NULL, NULL, "arm,pl310-cache"); + l2x0_base = of_iomap(np, 0); + of_node_put(np); + if (!l2x0_base) + return -ENODEV; /* * Unlock Data and Instruction Lock if locked. Ux500 U-Boot versions @@ -30,6 +39,7 @@ static int __init ux500_l2x0_unlock(void) writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_I_BASE + i * L2X0_LOCKDOWN_STRIDE); } + iounmap(l2x0_base); return 0; } |