diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2013-07-08 09:45:20 -0400 |
---|---|---|
committer | Shawn Guo <shawn.guo@linaro.org> | 2013-08-16 01:11:22 -0400 |
commit | e6a07569611daf4190c0fd2c2bb1e2189c0cb479 (patch) | |
tree | 26f52525e498ae233ca0a55a781541ab7aa8d539 /arch/arm/mach-imx/system.c | |
parent | 8bba8303b059ddcdcac647efa816b4c04ea42eee (diff) |
ARM: imx: let L2 initialization be a common function
Move imx6q L2 initialization function imx6q_init_l2cache() into
system.c, and rename it imx_init_l2cache(), so that other platforms
other than imx6q can also use the function.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Dirk Behme <dirk.behme@de.bosch.com>
Diffstat (limited to 'arch/arm/mach-imx/system.c')
-rw-r--r-- | arch/arm/mach-imx/system.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/system.c b/arch/arm/mach-imx/system.c index 6fe81bb4d3c9..e5592cab1f6a 100644 --- a/arch/arm/mach-imx/system.c +++ b/arch/arm/mach-imx/system.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <asm/system_misc.h> | 27 | #include <asm/system_misc.h> |
28 | #include <asm/proc-fns.h> | 28 | #include <asm/proc-fns.h> |
29 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
30 | #include <asm/hardware/cache-l2x0.h> | ||
30 | 31 | ||
31 | #include "common.h" | 32 | #include "common.h" |
32 | #include "hardware.h" | 33 | #include "hardware.h" |
@@ -95,3 +96,35 @@ void __init mxc_arch_reset_init_dt(void) | |||
95 | 96 | ||
96 | clk_prepare(wdog_clk); | 97 | clk_prepare(wdog_clk); |
97 | } | 98 | } |
99 | |||
100 | #ifdef CONFIG_CACHE_L2X0 | ||
101 | static void __init imx_init_l2cache(void) | ||
102 | { | ||
103 | void __iomem *l2x0_base; | ||
104 | struct device_node *np; | ||
105 | unsigned int val; | ||
106 | |||
107 | np = of_find_compatible_node(NULL, NULL, "arm,pl310-cache"); | ||
108 | if (!np) | ||
109 | goto out; | ||
110 | |||
111 | l2x0_base = of_iomap(np, 0); | ||
112 | if (!l2x0_base) { | ||
113 | of_node_put(np); | ||
114 | goto out; | ||
115 | } | ||
116 | |||
117 | /* Configure the L2 PREFETCH and POWER registers */ | ||
118 | val = readl_relaxed(l2x0_base + L2X0_PREFETCH_CTRL); | ||
119 | val |= 0x70800000; | ||
120 | writel_relaxed(val, l2x0_base + L2X0_PREFETCH_CTRL); | ||
121 | val = L2X0_DYNAMIC_CLK_GATING_EN | L2X0_STNDBY_MODE_EN; | ||
122 | writel_relaxed(val, l2x0_base + L2X0_POWER_CTRL); | ||
123 | |||
124 | iounmap(l2x0_base); | ||
125 | of_node_put(np); | ||
126 | |||
127 | out: | ||
128 | l2x0_of_init(0, ~0UL); | ||
129 | } | ||
130 | #endif | ||