Skip to content

Commit fd99ac5

Browse files
DragonBlueptsbogend
authored andcommitted
mips: ralink: introduce commonly used remap node function
The ralink_of_remap() function is repeated several times on SoC specific source files. They have the same structure, but just differ in compatible strings. In order to make commonly use of these codes, this patch introduces a newly designed mtmips_of_remap_node() function to match and remap all supported system controller and memory controller nodes. Build and run tested on MT7620 and MT7628. Signed-off-by: Shiji Yang <[email protected]> Reviewed-by: Sergio Paracuellos <[email protected]> Signed-off-by: Thomas Bogendoerfer <[email protected]>
1 parent 89ec9bb commit fd99ac5

File tree

7 files changed

+35
-54
lines changed

7 files changed

+35
-54
lines changed

arch/mips/ralink/common.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,4 @@ extern void ralink_of_remap(void);
2525

2626
extern void __init prom_soc_init(struct ralink_soc_info *soc_info);
2727

28-
__iomem void *plat_of_remap_node(const char *node);
29-
3028
#endif /* _RALINK_COMMON_H__ */

arch/mips/ralink/mt7620.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,6 @@ static int dram_type;
4747

4848
static struct ralink_soc_info *soc_info_ptr;
4949

50-
void __init ralink_of_remap(void)
51-
{
52-
rt_sysc_membase = plat_of_remap_node("ralink,mt7620a-sysc");
53-
rt_memc_membase = plat_of_remap_node("ralink,mt7620a-memc");
54-
55-
if (!rt_sysc_membase || !rt_memc_membase)
56-
panic("Failed to remap core resources");
57-
}
58-
5950
static __init void
6051
mt7620_dram_init(struct ralink_soc_info *soc_info)
6152
{

arch/mips/ralink/mt7621.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,6 @@ static void __init mt7621_memory_detect(void)
8989
memblock_add(MT7621_HIGHMEM_BASE, MT7621_HIGHMEM_SIZE);
9090
}
9191

92-
void __init ralink_of_remap(void)
93-
{
94-
rt_sysc_membase = plat_of_remap_node("mediatek,mt7621-sysc");
95-
rt_memc_membase = plat_of_remap_node("mediatek,mt7621-memc");
96-
97-
if (!rt_sysc_membase || !rt_memc_membase)
98-
panic("Failed to remap core resources");
99-
}
100-
10192
static unsigned int __init mt7621_get_soc_name0(void)
10293
{
10394
return __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME0);

arch/mips/ralink/of.c

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,28 +29,56 @@ __iomem void *rt_sysc_membase;
2929
__iomem void *rt_memc_membase;
3030
EXPORT_SYMBOL_GPL(rt_sysc_membase);
3131

32-
__iomem void *plat_of_remap_node(const char *node)
32+
static const struct of_device_id mtmips_memc_match[] = {
33+
{ .compatible = "mediatek,mt7621-memc" },
34+
{ .compatible = "ralink,mt7620a-memc" },
35+
{ .compatible = "ralink,rt2880-memc" },
36+
{ .compatible = "ralink,rt3050-memc" },
37+
{ .compatible = "ralink,rt3883-memc" },
38+
{}
39+
};
40+
41+
static const struct of_device_id mtmips_sysc_match[] = {
42+
{ .compatible = "mediatek,mt7621-sysc" },
43+
{ .compatible = "ralink,mt7620a-sysc" },
44+
{ .compatible = "ralink,rt2880-sysc" },
45+
{ .compatible = "ralink,rt3050-sysc" },
46+
{ .compatible = "ralink,rt3883-sysc" },
47+
{}
48+
};
49+
50+
static __iomem void *
51+
mtmips_of_remap_node(const struct of_device_id *match, const char *type)
3352
{
3453
struct resource res;
3554
struct device_node *np;
3655

37-
np = of_find_compatible_node(NULL, NULL, node);
56+
np = of_find_matching_node(NULL, match);
3857
if (!np)
39-
panic("Failed to find %s node", node);
58+
panic("Failed to find %s controller node", type);
4059

4160
if (of_address_to_resource(np, 0, &res))
42-
panic("Failed to get resource for %s", node);
43-
44-
of_node_put(np);
61+
panic("Failed to get resource for %s node", np->name);
4562

4663
if (!request_mem_region(res.start,
4764
resource_size(&res),
4865
res.name))
49-
panic("Failed to request resources for %s", node);
66+
panic("Failed to request resources for %s node", np->name);
67+
68+
of_node_put(np);
5069

5170
return ioremap(res.start, resource_size(&res));
5271
}
5372

73+
void __init ralink_of_remap(void)
74+
{
75+
rt_sysc_membase = mtmips_of_remap_node(mtmips_sysc_match, "system");
76+
rt_memc_membase = mtmips_of_remap_node(mtmips_memc_match, "memory");
77+
78+
if (!rt_sysc_membase || !rt_memc_membase)
79+
panic("Failed to remap core resources");
80+
}
81+
5482
void __init plat_mem_setup(void)
5583
{
5684
void *dtb;

arch/mips/ralink/rt288x.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,6 @@
2121

2222
static struct ralink_soc_info *soc_info_ptr;
2323

24-
void __init ralink_of_remap(void)
25-
{
26-
rt_sysc_membase = plat_of_remap_node("ralink,rt2880-sysc");
27-
rt_memc_membase = plat_of_remap_node("ralink,rt2880-memc");
28-
29-
if (!rt_sysc_membase || !rt_memc_membase)
30-
panic("Failed to remap core resources");
31-
}
32-
3324
static unsigned int __init rt2880_get_soc_name0(void)
3425
{
3526
return __raw_readl(RT2880_SYSC_BASE + SYSC_REG_CHIP_NAME0);

arch/mips/ralink/rt305x.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,6 @@ static unsigned long rt5350_get_mem_size(void)
5656
return ret;
5757
}
5858

59-
void __init ralink_of_remap(void)
60-
{
61-
rt_sysc_membase = plat_of_remap_node("ralink,rt3050-sysc");
62-
rt_memc_membase = plat_of_remap_node("ralink,rt3050-memc");
63-
64-
if (!rt_sysc_membase || !rt_memc_membase)
65-
panic("Failed to remap core resources");
66-
}
67-
6859
static unsigned int __init rt305x_get_soc_name0(void)
6960
{
7061
return __raw_readl(RT305X_SYSC_BASE + SYSC_REG_CHIP_NAME0);

arch/mips/ralink/rt3883.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,6 @@
2121

2222
static struct ralink_soc_info *soc_info_ptr;
2323

24-
void __init ralink_of_remap(void)
25-
{
26-
rt_sysc_membase = plat_of_remap_node("ralink,rt3883-sysc");
27-
rt_memc_membase = plat_of_remap_node("ralink,rt3883-memc");
28-
29-
if (!rt_sysc_membase || !rt_memc_membase)
30-
panic("Failed to remap core resources");
31-
}
32-
3324
static unsigned int __init rt3883_get_soc_name0(void)
3425
{
3526
return __raw_readl(RT3883_SYSC_BASE + RT3883_SYSC_REG_CHIPID0_3);

0 commit comments

Comments
 (0)