diff options
author | Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | 2013-09-09 08:17:52 -0400 |
---|---|---|
committer | Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | 2013-12-13 10:31:05 -0500 |
commit | 2440946c29a37ee616a92152972a3772bd2f293c (patch) | |
tree | 90c573f2288679f1f4a1ba20bdc0b75557d11446 /arch | |
parent | caad0b41de69b7bc40d0fab29676d0ea95b6f80e (diff) |
ARM: add Armada 1500 and Sony NSZ-GS7 device tree files
This adds very basic device tree files for the Marvell Armada 1500 SoC
(Berlin BG2) and the Sony NSZ-GS7 GoogleTV board. Currently, SoC only has
nodes for cpus, some clocks, l2 cache controller, local timer, apb timers,
uart, and interrupt controllers. The Sony NSZ-GS7 is a GoogleTV consumer
device comprising the Armada 1500 SoC above.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Reviewed-by: Jason Cooper <jason@lakedaemon.net>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Jisheng Zhang <jszhang@marvell.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/dts/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/boot/dts/berlin2-sony-nsz-gs7.dts | 29 | ||||
-rw-r--r-- | arch/arm/boot/dts/berlin2.dtsi | 227 |
3 files changed, 258 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index d57c1a65b24f..7d06d64e2953 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -45,6 +45,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb | |||
45 | dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm11351-brt.dtb \ | 45 | dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm11351-brt.dtb \ |
46 | bcm28155-ap.dtb | 46 | bcm28155-ap.dtb |
47 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb | 47 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb |
48 | dtb-$(CONFIG_ARCH_BERLIN) += \ | ||
49 | berlin2-sony-nsz-gs7.dtb | ||
48 | dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \ | 50 | dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \ |
49 | da850-evm.dtb | 51 | da850-evm.dtb |
50 | dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ | 52 | dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ |
diff --git a/arch/arm/boot/dts/berlin2-sony-nsz-gs7.dts b/arch/arm/boot/dts/berlin2-sony-nsz-gs7.dts new file mode 100644 index 000000000000..c72bfd468d10 --- /dev/null +++ b/arch/arm/boot/dts/berlin2-sony-nsz-gs7.dts | |||
@@ -0,0 +1,29 @@ | |||
1 | /* | ||
2 | * Device Tree file for Sony NSZ-GS7 | ||
3 | * | ||
4 | * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /dts-v1/; | ||
12 | |||
13 | #include "berlin2.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "Sony NSZ-GS7"; | ||
17 | compatible = "sony,nsz-gs7", "marvell,berlin2", "marvell,berlin"; | ||
18 | |||
19 | chosen { | ||
20 | bootargs = "console=ttyS0,115200 earlyprintk"; | ||
21 | }; | ||
22 | |||
23 | memory { | ||
24 | device_type = "memory"; | ||
25 | reg = <0x00000000 0x40000000>; /* 1 GB */ | ||
26 | }; | ||
27 | }; | ||
28 | |||
29 | &uart0 { status = "okay"; }; | ||
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi new file mode 100644 index 000000000000..56a1af2f1052 --- /dev/null +++ b/arch/arm/boot/dts/berlin2.dtsi | |||
@@ -0,0 +1,227 @@ | |||
1 | /* | ||
2 | * Device Tree Include file for Marvell Armada 1500 (Berlin BG2) SoC | ||
3 | * | ||
4 | * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | ||
5 | * | ||
6 | * based on GPL'ed 2.6 kernel sources | ||
7 | * (c) Marvell International Ltd. | ||
8 | * | ||
9 | * This file is licensed under the terms of the GNU General Public | ||
10 | * License version 2. This program is licensed "as is" without any | ||
11 | * warranty of any kind, whether express or implied. | ||
12 | */ | ||
13 | |||
14 | #include "skeleton.dtsi" | ||
15 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
16 | |||
17 | / { | ||
18 | model = "Marvell Armada 1500 (BG2) SoC"; | ||
19 | compatible = "marvell,berlin2", "marvell,berlin"; | ||
20 | |||
21 | cpus { | ||
22 | #address-cells = <1>; | ||
23 | #size-cells = <0>; | ||
24 | |||
25 | cpu@0 { | ||
26 | compatible = "marvell,pj4b"; | ||
27 | device_type = "cpu"; | ||
28 | next-level-cache = <&l2>; | ||
29 | reg = <0>; | ||
30 | }; | ||
31 | |||
32 | cpu@1 { | ||
33 | compatible = "marvell,pj4b"; | ||
34 | device_type = "cpu"; | ||
35 | next-level-cache = <&l2>; | ||
36 | reg = <1>; | ||
37 | }; | ||
38 | }; | ||
39 | |||
40 | clocks { | ||
41 | smclk: sysmgr-clock { | ||
42 | compatible = "fixed-clock"; | ||
43 | #clock-cells = <0>; | ||
44 | clock-frequency = <25000000>; | ||
45 | }; | ||
46 | |||
47 | cfgclk: cfg-clock { | ||
48 | compatible = "fixed-clock"; | ||
49 | #clock-cells = <0>; | ||
50 | clock-frequency = <100000000>; | ||
51 | }; | ||
52 | |||
53 | sysclk: system-clock { | ||
54 | compatible = "fixed-clock"; | ||
55 | #clock-cells = <0>; | ||
56 | clock-frequency = <400000000>; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | soc { | ||
61 | compatible = "simple-bus"; | ||
62 | #address-cells = <1>; | ||
63 | #size-cells = <1>; | ||
64 | interrupt-parent = <&gic>; | ||
65 | |||
66 | ranges = <0 0xf7000000 0x1000000>; | ||
67 | |||
68 | l2: l2-cache-controller@ac0000 { | ||
69 | compatible = "marvell,tauros3-cache", "arm,pl310-cache"; | ||
70 | reg = <0xac0000 0x1000>; | ||
71 | cache-unified; | ||
72 | cache-level = <2>; | ||
73 | }; | ||
74 | |||
75 | gic: interrupt-controller@ad1000 { | ||
76 | compatible = "arm,cortex-a9-gic"; | ||
77 | reg = <0xad1000 0x1000>, <0xad0100 0x0100>; | ||
78 | interrupt-controller; | ||
79 | #interrupt-cells = <3>; | ||
80 | }; | ||
81 | |||
82 | local-timer@ad0600 { | ||
83 | compatible = "arm,cortex-a9-twd-timer"; | ||
84 | reg = <0xad0600 0x20>; | ||
85 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; | ||
86 | clocks = <&sysclk>; | ||
87 | }; | ||
88 | |||
89 | apb@e80000 { | ||
90 | compatible = "simple-bus"; | ||
91 | #address-cells = <1>; | ||
92 | #size-cells = <1>; | ||
93 | |||
94 | ranges = <0 0xe80000 0x10000>; | ||
95 | interrupt-parent = <&aic>; | ||
96 | |||
97 | timer0: timer@2c00 { | ||
98 | compatible = "snps,dw-apb-timer"; | ||
99 | reg = <0x2c00 0x14>; | ||
100 | interrupts = <8>; | ||
101 | clocks = <&cfgclk>; | ||
102 | clock-names = "timer"; | ||
103 | status = "okay"; | ||
104 | }; | ||
105 | |||
106 | timer1: timer@2c14 { | ||
107 | compatible = "snps,dw-apb-timer"; | ||
108 | reg = <0x2c14 0x14>; | ||
109 | interrupts = <9>; | ||
110 | clocks = <&cfgclk>; | ||
111 | clock-names = "timer"; | ||
112 | status = "okay"; | ||
113 | }; | ||
114 | |||
115 | timer2: timer@2c28 { | ||
116 | compatible = "snps,dw-apb-timer"; | ||
117 | reg = <0x2c28 0x14>; | ||
118 | interrupts = <10>; | ||
119 | clocks = <&cfgclk>; | ||
120 | clock-names = "timer"; | ||
121 | status = "disabled"; | ||
122 | }; | ||
123 | |||
124 | timer3: timer@2c3c { | ||
125 | compatible = "snps,dw-apb-timer"; | ||
126 | reg = <0x2c3c 0x14>; | ||
127 | interrupts = <11>; | ||
128 | clocks = <&cfgclk>; | ||
129 | clock-names = "timer"; | ||
130 | status = "disabled"; | ||
131 | }; | ||
132 | |||
133 | timer4: timer@2c50 { | ||
134 | compatible = "snps,dw-apb-timer"; | ||
135 | reg = <0x2c50 0x14>; | ||
136 | interrupts = <12>; | ||
137 | clocks = <&cfgclk>; | ||
138 | clock-names = "timer"; | ||
139 | status = "disabled"; | ||
140 | }; | ||
141 | |||
142 | timer5: timer@2c64 { | ||
143 | compatible = "snps,dw-apb-timer"; | ||
144 | reg = <0x2c64 0x14>; | ||
145 | interrupts = <13>; | ||
146 | clocks = <&cfgclk>; | ||
147 | clock-names = "timer"; | ||
148 | status = "disabled"; | ||
149 | }; | ||
150 | |||
151 | timer6: timer@2c78 { | ||
152 | compatible = "snps,dw-apb-timer"; | ||
153 | reg = <0x2c78 0x14>; | ||
154 | interrupts = <14>; | ||
155 | clocks = <&cfgclk>; | ||
156 | clock-names = "timer"; | ||
157 | status = "disabled"; | ||
158 | }; | ||
159 | |||
160 | timer7: timer@2c8c { | ||
161 | compatible = "snps,dw-apb-timer"; | ||
162 | reg = <0x2c8c 0x14>; | ||
163 | interrupts = <15>; | ||
164 | clocks = <&cfgclk>; | ||
165 | clock-names = "timer"; | ||
166 | status = "disabled"; | ||
167 | }; | ||
168 | |||
169 | aic: interrupt-controller@3000 { | ||
170 | compatible = "snps,dw-apb-ictl"; | ||
171 | reg = <0x3000 0xc00>; | ||
172 | interrupt-controller; | ||
173 | #interrupt-cells = <1>; | ||
174 | interrupt-parent = <&gic>; | ||
175 | interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; | ||
176 | }; | ||
177 | }; | ||
178 | |||
179 | apb@fc0000 { | ||
180 | compatible = "simple-bus"; | ||
181 | #address-cells = <1>; | ||
182 | #size-cells = <1>; | ||
183 | |||
184 | ranges = <0 0xfc0000 0x10000>; | ||
185 | interrupt-parent = <&sic>; | ||
186 | |||
187 | uart0: serial@9000 { | ||
188 | compatible = "snps,dw-apb-uart"; | ||
189 | reg = <0x9000 0x100>; | ||
190 | reg-shift = <2>; | ||
191 | reg-io-width = <1>; | ||
192 | interrupts = <8>; | ||
193 | clocks = <&smclk>; | ||
194 | status = "disabled"; | ||
195 | }; | ||
196 | |||
197 | uart1: serial@a000 { | ||
198 | compatible = "snps,dw-apb-uart"; | ||
199 | reg = <0xa000 0x100>; | ||
200 | reg-shift = <2>; | ||
201 | reg-io-width = <1>; | ||
202 | interrupts = <9>; | ||
203 | clocks = <&smclk>; | ||
204 | status = "disabled"; | ||
205 | }; | ||
206 | |||
207 | uart2: serial@b000 { | ||
208 | compatible = "snps,dw-apb-uart"; | ||
209 | reg = <0xb000 0x100>; | ||
210 | reg-shift = <2>; | ||
211 | reg-io-width = <1>; | ||
212 | interrupts = <10>; | ||
213 | clocks = <&smclk>; | ||
214 | status = "disabled"; | ||
215 | }; | ||
216 | |||
217 | sic: interrupt-controller@e000 { | ||
218 | compatible = "snps,dw-apb-ictl"; | ||
219 | reg = <0xe000 0x400>; | ||
220 | interrupt-controller; | ||
221 | #interrupt-cells = <1>; | ||
222 | interrupt-parent = <&gic>; | ||
223 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
224 | }; | ||
225 | }; | ||
226 | }; | ||
227 | }; | ||