Commit 918197be authored by Russell King's avatar Russell King

ARM: l2c: prima2: convert to generic l2c OF initialisation

Remove the explicit call to l2x0_of_init(), converting to the generic
infrastructure instead.  Along with this change, we can delete l2x0.c
from prima2.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent c95680e6
...@@ -36,7 +36,7 @@ axi { ...@@ -36,7 +36,7 @@ axi {
ranges = <0x40000000 0x40000000 0xa0000000>; ranges = <0x40000000 0x40000000 0xa0000000>;
l2-cache-controller@c0030000 { l2-cache-controller@c0030000 {
compatible = "sirf,marco-pl310-cache", "arm,pl310-cache"; compatible = "arm,pl310-cache";
reg = <0xc0030000 0x1000>; reg = <0xc0030000 0x1000>;
interrupts = <0 59 0>; interrupts = <0 59 0>;
arm,tag-latency = <1 1 1>; arm,tag-latency = <1 1 1>;
......
...@@ -48,7 +48,7 @@ axi { ...@@ -48,7 +48,7 @@ axi {
ranges = <0x40000000 0x40000000 0x80000000>; ranges = <0x40000000 0x40000000 0x80000000>;
l2-cache-controller@80040000 { l2-cache-controller@80040000 {
compatible = "arm,pl310-cache", "sirf,prima2-pl310-cache"; compatible = "arm,pl310-cache";
reg = <0x80040000 0x1000>; reg = <0x80040000 0x1000>;
interrupts = <59>; interrupts = <59>;
arm,tag-latency = <1 1 1>; arm,tag-latency = <1 1 1>;
......
...@@ -2,7 +2,6 @@ obj-y += rstc.o ...@@ -2,7 +2,6 @@ obj-y += rstc.o
obj-y += common.o obj-y += common.o
obj-y += rtciobrg.o obj-y += rtciobrg.o
obj-$(CONFIG_DEBUG_LL) += lluart.o obj-$(CONFIG_DEBUG_LL) += lluart.o
obj-$(CONFIG_CACHE_L2X0) += l2x0.o
obj-$(CONFIG_SUSPEND) += pm.o sleep.o obj-$(CONFIG_SUSPEND) += pm.o sleep.o
obj-$(CONFIG_SMP) += platsmp.o headsmp.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
......
...@@ -34,6 +34,8 @@ static const char *atlas6_dt_match[] __initconst = { ...@@ -34,6 +34,8 @@ static const char *atlas6_dt_match[] __initconst = {
DT_MACHINE_START(ATLAS6_DT, "Generic ATLAS6 (Flattened Device Tree)") DT_MACHINE_START(ATLAS6_DT, "Generic ATLAS6 (Flattened Device Tree)")
/* Maintainer: Barry Song <baohua.song@csr.com> */ /* Maintainer: Barry Song <baohua.song@csr.com> */
.l2c_aux_val = 0,
.l2c_aux_mask = ~0,
.map_io = sirfsoc_map_io, .map_io = sirfsoc_map_io,
.init_late = sirfsoc_init_late, .init_late = sirfsoc_init_late,
.dt_compat = atlas6_dt_match, .dt_compat = atlas6_dt_match,
...@@ -48,6 +50,8 @@ static const char *prima2_dt_match[] __initconst = { ...@@ -48,6 +50,8 @@ static const char *prima2_dt_match[] __initconst = {
DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)") DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)")
/* Maintainer: Barry Song <baohua.song@csr.com> */ /* Maintainer: Barry Song <baohua.song@csr.com> */
.l2c_aux_val = 0,
.l2c_aux_mask = ~0,
.map_io = sirfsoc_map_io, .map_io = sirfsoc_map_io,
.dma_zone_size = SZ_256M, .dma_zone_size = SZ_256M,
.init_late = sirfsoc_init_late, .init_late = sirfsoc_init_late,
...@@ -63,6 +67,8 @@ static const char *marco_dt_match[] __initconst = { ...@@ -63,6 +67,8 @@ static const char *marco_dt_match[] __initconst = {
DT_MACHINE_START(MARCO_DT, "Generic MARCO (Flattened Device Tree)") DT_MACHINE_START(MARCO_DT, "Generic MARCO (Flattened Device Tree)")
/* Maintainer: Barry Song <baohua.song@csr.com> */ /* Maintainer: Barry Song <baohua.song@csr.com> */
.l2c_aux_val = 0,
.l2c_aux_mask = ~0,
.smp = smp_ops(sirfsoc_smp_ops), .smp = smp_ops(sirfsoc_smp_ops),
.map_io = sirfsoc_map_io, .map_io = sirfsoc_map_io,
.init_late = sirfsoc_init_late, .init_late = sirfsoc_init_late,
......
/*
* l2 cache initialization for CSR SiRFprimaII
*
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
*
* Licensed under GPLv2 or later.
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/of.h>
#include <asm/hardware/cache-l2x0.h>
static const struct of_device_id sirf_l2x0_ids[] __initconst = {
{ .compatible = "sirf,prima2-pl310-cache", .data = &prima2_l2x0_aux, },
{ .compatible = "sirf,marco-pl310-cache", .data = &marco_l2x0_aux, },
{},
};
static int __init sirfsoc_l2x0_init(void)
{
struct device_node *np;
np = of_find_matching_node(NULL, sirf_l2x0_ids);
if (np)
return l2x0_of_init(0, ~0);
return 0;
}
early_initcall(sirfsoc_l2x0_init);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment