-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arm: mach-mvebu: add support for Armada 370 and Armada XP with DT
[ben.dooks@codethink.co.uk: ensure error check on of_property_read_u32] [ben.dooks@codethink.co.uk: use mpic address instead of bus-unit's ] [ben.dooks@codethink.co.uk: BUG_ON() if the of_iomap() fails for mpic] [ben.dooks@codethink.co.uk: move mpic per-cpu register base ] [ben.dooks@codethink.co.uk: number fetch should use irqd_to_hwirq()] Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Lior Amsalem <alior@marvell.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Acked-by: Andrew Lunn <andrew@lunn.ch> Tested-by: Yehuda Yitschak <yehuday@marvell.com> Tested-by: Lior Amsalem <alior@marvell.com>
- Loading branch information
Thomas Petazzoni
authored and
Arnd Bergmann
committed
Jul 10, 2012
1 parent
31af49d
commit 9ae6f74
Showing
11 changed files
with
478 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
/* | ||
* Device Tree file for Marvell Armada 370 evaluation board | ||
* (DB-88F6710-BP-DDR3) | ||
* | ||
* Copyright (C) 2012 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
*/ | ||
|
||
/dts-v1/; | ||
/include/ "armada-370.dtsi" | ||
|
||
/ { | ||
model = "Marvell Armada 370 Evaluation Board"; | ||
compatible = "marvell,a370-db", "marvell,armada370", "marvell,armada-370-xp"; | ||
|
||
chosen { | ||
bootargs = "console=ttyS0,115200 earlyprintk"; | ||
}; | ||
|
||
memory { | ||
device_type = "memory"; | ||
reg = <0x00000000 0x20000000>; /* 512 MB */ | ||
}; | ||
|
||
soc { | ||
serial@d0012000 { | ||
clock-frequency = <200000000>; | ||
status = "okay"; | ||
}; | ||
timer@d0020300 { | ||
clock-frequency = <600000000>; | ||
status = "okay"; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
* Device Tree Include file for Marvell Armada 370 and Armada XP SoC | ||
* | ||
* Copyright (C) 2012 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* Ben Dooks <ben.dooks@codethink.co.uk> | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
* | ||
* This file contains the definitions that are common to the Armada | ||
* 370 and Armada XP SoC. | ||
*/ | ||
|
||
/include/ "skeleton.dtsi" | ||
|
||
/ { | ||
model = "Marvell Armada 370 and XP SoC"; | ||
compatible = "marvell,armada_370_xp"; | ||
|
||
cpus { | ||
cpu@0 { | ||
compatible = "marvell,sheeva-v7"; | ||
}; | ||
}; | ||
|
||
mpic: interrupt-controller@d0020000 { | ||
compatible = "marvell,mpic"; | ||
#interrupt-cells = <1>; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
interrupt-controller; | ||
}; | ||
|
||
soc { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
compatible = "simple-bus"; | ||
interrupt-parent = <&mpic>; | ||
ranges; | ||
|
||
serial@d0012000 { | ||
compatible = "ns16550"; | ||
reg = <0xd0012000 0x100>; | ||
reg-shift = <2>; | ||
interrupts = <41>; | ||
status = "disabled"; | ||
}; | ||
serial@d0012100 { | ||
compatible = "ns16550"; | ||
reg = <0xd0012100 0x100>; | ||
reg-shift = <2>; | ||
interrupts = <42>; | ||
status = "disabled"; | ||
}; | ||
|
||
timer@d0020300 { | ||
compatible = "marvell,armada-370-xp-timer"; | ||
reg = <0xd0020300 0x30>; | ||
interrupts = <37>, <38>, <39>, <40>; | ||
}; | ||
}; | ||
}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
/* | ||
* Device Tree Include file for Marvell Armada 370 family SoC | ||
* | ||
* Copyright (C) 2012 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
* | ||
* Contains definitions specific to the Armada 370 SoC that are not | ||
* common to all Armada SoCs. | ||
*/ | ||
|
||
/include/ "armada-370-xp.dtsi" | ||
|
||
/ { | ||
model = "Marvell Armada 370 family SoC"; | ||
compatible = "marvell,armada370", "marvell,armada-370-xp"; | ||
|
||
mpic: interrupt-controller@d0020000 { | ||
reg = <0xd0020a00 0x1d0>, | ||
<0xd0021870 0x58>; | ||
}; | ||
|
||
soc { | ||
system-controller@d0018200 { | ||
compatible = "marvell,armada-370-xp-system-controller"; | ||
reg = <0xd0018200 0x100>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
/* | ||
* Device Tree file for Marvell Armada XP evaluation board | ||
* (DB-78460-BP) | ||
* | ||
* Copyright (C) 2012 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
*/ | ||
|
||
/dts-v1/; | ||
/include/ "armada-xp.dtsi" | ||
|
||
/ { | ||
model = "Marvell Armada XP Evaluation Board"; | ||
compatible = "marvell,axp-db", "marvell,armadaxp", "marvell,armada-370-xp"; | ||
|
||
chosen { | ||
bootargs = "console=ttyS0,115200 earlyprintk"; | ||
}; | ||
|
||
memory { | ||
device_type = "memory"; | ||
reg = <0x00000000 0x80000000>; /* 2 GB */ | ||
}; | ||
|
||
soc { | ||
serial@d0012000 { | ||
clock-frequency = <250000000>; | ||
status = "okay"; | ||
}; | ||
serial@d0012100 { | ||
clock-frequency = <250000000>; | ||
status = "okay"; | ||
}; | ||
serial@d0012200 { | ||
clock-frequency = <250000000>; | ||
status = "okay"; | ||
}; | ||
serial@d0012300 { | ||
clock-frequency = <250000000>; | ||
status = "okay"; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
/* | ||
* Device Tree Include file for Marvell Armada XP family SoC | ||
* | ||
* Copyright (C) 2012 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* Ben Dooks <ben.dooks@codethink.co.uk> | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
* | ||
* Contains definitions specific to the Armada 370 SoC that are not | ||
* common to all Armada SoCs. | ||
*/ | ||
|
||
/include/ "armada-370-xp.dtsi" | ||
|
||
/ { | ||
model = "Marvell Armada XP family SoC"; | ||
compatible = "marvell,armadaxp", "marvell,armada-370-xp"; | ||
|
||
mpic: interrupt-controller@d0020000 { | ||
reg = <0xd0020a00 0x1d0>, | ||
<0xd0021870 0x58>; | ||
}; | ||
|
||
soc { | ||
serial@d0012200 { | ||
compatible = "ns16550"; | ||
reg = <0xd0012200 0x100>; | ||
reg-shift = <2>; | ||
interrupts = <43>; | ||
status = "disabled"; | ||
}; | ||
serial@d0012300 { | ||
compatible = "ns16550"; | ||
reg = <0xd0012300 0x100>; | ||
reg-shift = <2>; | ||
interrupts = <44>; | ||
status = "disabled"; | ||
}; | ||
|
||
timer@d0020300 { | ||
marvell,timer-25Mhz; | ||
}; | ||
|
||
system-controller@d0018200 { | ||
compatible = "marvell,armada-370-xp-system-controller"; | ||
reg = <0xd0018200 0x500>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
obj-y += system-controller.o | ||
obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
/* | ||
* Device Tree support for Armada 370 and XP platforms. | ||
* | ||
* Copyright (C) 2012 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
*/ | ||
|
||
#include <linux/kernel.h> | ||
#include <linux/init.h> | ||
#include <linux/of_platform.h> | ||
#include <linux/io.h> | ||
#include <linux/time-armada-370-xp.h> | ||
#include <asm/mach/arch.h> | ||
#include <asm/mach/map.h> | ||
#include <asm/mach/time.h> | ||
#include <mach/armada-370-xp.h> | ||
#include "common.h" | ||
|
||
static struct map_desc armada_370_xp_io_desc[] __initdata = { | ||
{ | ||
.virtual = ARMADA_370_XP_REGS_VIRT_BASE, | ||
.pfn = __phys_to_pfn(ARMADA_370_XP_REGS_PHYS_BASE), | ||
.length = ARMADA_370_XP_REGS_SIZE, | ||
.type = MT_DEVICE, | ||
}, | ||
}; | ||
|
||
void __init armada_370_xp_map_io(void) | ||
{ | ||
iotable_init(armada_370_xp_io_desc, ARRAY_SIZE(armada_370_xp_io_desc)); | ||
} | ||
|
||
struct sys_timer armada_370_xp_timer = { | ||
.init = armada_370_xp_timer_init, | ||
}; | ||
|
||
static void __init armada_370_xp_dt_init(void) | ||
{ | ||
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
} | ||
|
||
static const char * const armada_370_xp_dt_board_dt_compat[] = { | ||
"marvell,a370-db", | ||
"marvell,axp-db", | ||
NULL, | ||
}; | ||
|
||
DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)") | ||
.init_machine = armada_370_xp_dt_init, | ||
.map_io = armada_370_xp_map_io, | ||
.init_irq = armada_370_xp_init_irq, | ||
.handle_irq = armada_370_xp_handle_irq, | ||
.timer = &armada_370_xp_timer, | ||
.restart = mvebu_restart, | ||
.dt_compat = armada_370_xp_dt_board_dt_compat, | ||
MACHINE_END |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
/* | ||
* Generic definitions for Marvell Armada_370_XP SoCs | ||
* | ||
* Copyright (C) 2012 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
*/ | ||
|
||
#ifndef __MACH_ARMADA_370_XP_H | ||
#define __MACH_ARMADA_370_XP_H | ||
|
||
#define ARMADA_370_XP_REGS_PHYS_BASE 0xd0000000 | ||
#define ARMADA_370_XP_REGS_VIRT_BASE 0xfeb00000 | ||
#define ARMADA_370_XP_REGS_SIZE SZ_1M | ||
|
||
#endif /* __MACH_ARMADA_370_XP_H */ |
Oops, something went wrong.