diff options
Diffstat (limited to 'arch/arm/boot/dts/berlin2cd.dtsi')
-rw-r--r-- | arch/arm/boot/dts/berlin2cd.dtsi | 167 |
1 files changed, 138 insertions, 29 deletions
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi index 094968c27533..cc1df65da504 100644 --- a/arch/arm/boot/dts/berlin2cd.dtsi +++ b/arch/arm/boot/dts/berlin2cd.dtsi | |||
@@ -12,6 +12,7 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include "skeleton.dtsi" | 14 | #include "skeleton.dtsi" |
15 | #include <dt-bindings/clock/berlin2.h> | ||
15 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 16 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
16 | 17 | ||
17 | / { | 18 | / { |
@@ -30,24 +31,10 @@ | |||
30 | }; | 31 | }; |
31 | }; | 32 | }; |
32 | 33 | ||
33 | clocks { | 34 | refclk: oscillator { |
34 | smclk: sysmgr-clock { | 35 | compatible = "fixed-clock"; |
35 | compatible = "fixed-clock"; | 36 | #clock-cells = <0>; |
36 | #clock-cells = <0>; | 37 | clock-frequency = <25000000>; |
37 | clock-frequency = <25000000>; | ||
38 | }; | ||
39 | |||
40 | cfgclk: cfg-clock { | ||
41 | compatible = "fixed-clock"; | ||
42 | #clock-cells = <0>; | ||
43 | clock-frequency = <75000000>; | ||
44 | }; | ||
45 | |||
46 | sysclk: system-clock { | ||
47 | compatible = "fixed-clock"; | ||
48 | #clock-cells = <0>; | ||
49 | clock-frequency = <300000000>; | ||
50 | }; | ||
51 | }; | 38 | }; |
52 | 39 | ||
53 | soc { | 40 | soc { |
@@ -76,7 +63,7 @@ | |||
76 | compatible = "arm,cortex-a9-twd-timer"; | 63 | compatible = "arm,cortex-a9-twd-timer"; |
77 | reg = <0xad0600 0x20>; | 64 | reg = <0xad0600 0x20>; |
78 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; | 65 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; |
79 | clocks = <&sysclk>; | 66 | clocks = <&chip CLKID_TWD>; |
80 | }; | 67 | }; |
81 | 68 | ||
82 | apb@e80000 { | 69 | apb@e80000 { |
@@ -87,11 +74,83 @@ | |||
87 | ranges = <0 0xe80000 0x10000>; | 74 | ranges = <0 0xe80000 0x10000>; |
88 | interrupt-parent = <&aic>; | 75 | interrupt-parent = <&aic>; |
89 | 76 | ||
77 | gpio0: gpio@0400 { | ||
78 | compatible = "snps,dw-apb-gpio"; | ||
79 | reg = <0x0400 0x400>; | ||
80 | #address-cells = <1>; | ||
81 | #size-cells = <0>; | ||
82 | |||
83 | porta: gpio-port@0 { | ||
84 | compatible = "snps,dw-apb-gpio-port"; | ||
85 | gpio-controller; | ||
86 | #gpio-cells = <2>; | ||
87 | snps,nr-gpios = <8>; | ||
88 | reg = <0>; | ||
89 | interrupt-controller; | ||
90 | #interrupt-cells = <2>; | ||
91 | interrupts = <0>; | ||
92 | }; | ||
93 | }; | ||
94 | |||
95 | gpio1: gpio@0800 { | ||
96 | compatible = "snps,dw-apb-gpio"; | ||
97 | reg = <0x0800 0x400>; | ||
98 | #address-cells = <1>; | ||
99 | #size-cells = <0>; | ||
100 | |||
101 | portb: gpio-port@1 { | ||
102 | compatible = "snps,dw-apb-gpio-port"; | ||
103 | gpio-controller; | ||
104 | #gpio-cells = <2>; | ||
105 | snps,nr-gpios = <8>; | ||
106 | reg = <0>; | ||
107 | interrupt-controller; | ||
108 | #interrupt-cells = <2>; | ||
109 | interrupts = <1>; | ||
110 | }; | ||
111 | }; | ||
112 | |||
113 | gpio2: gpio@0c00 { | ||
114 | compatible = "snps,dw-apb-gpio"; | ||
115 | reg = <0x0c00 0x400>; | ||
116 | #address-cells = <1>; | ||
117 | #size-cells = <0>; | ||
118 | |||
119 | portc: gpio-port@2 { | ||
120 | compatible = "snps,dw-apb-gpio-port"; | ||
121 | gpio-controller; | ||
122 | #gpio-cells = <2>; | ||
123 | snps,nr-gpios = <8>; | ||
124 | reg = <0>; | ||
125 | interrupt-controller; | ||
126 | #interrupt-cells = <2>; | ||
127 | interrupts = <2>; | ||
128 | }; | ||
129 | }; | ||
130 | |||
131 | gpio3: gpio@1000 { | ||
132 | compatible = "snps,dw-apb-gpio"; | ||
133 | reg = <0x1000 0x400>; | ||
134 | #address-cells = <1>; | ||
135 | #size-cells = <0>; | ||
136 | |||
137 | portd: gpio-port@3 { | ||
138 | compatible = "snps,dw-apb-gpio-port"; | ||
139 | gpio-controller; | ||
140 | #gpio-cells = <2>; | ||
141 | snps,nr-gpios = <8>; | ||
142 | reg = <0>; | ||
143 | interrupt-controller; | ||
144 | #interrupt-cells = <2>; | ||
145 | interrupts = <3>; | ||
146 | }; | ||
147 | }; | ||
148 | |||
90 | timer0: timer@2c00 { | 149 | timer0: timer@2c00 { |
91 | compatible = "snps,dw-apb-timer"; | 150 | compatible = "snps,dw-apb-timer"; |
92 | reg = <0x2c00 0x14>; | 151 | reg = <0x2c00 0x14>; |
93 | interrupts = <8>; | 152 | interrupts = <8>; |
94 | clocks = <&cfgclk>; | 153 | clocks = <&chip CLKID_CFG>; |
95 | clock-names = "timer"; | 154 | clock-names = "timer"; |
96 | status = "okay"; | 155 | status = "okay"; |
97 | }; | 156 | }; |
@@ -100,7 +159,7 @@ | |||
100 | compatible = "snps,dw-apb-timer"; | 159 | compatible = "snps,dw-apb-timer"; |
101 | reg = <0x2c14 0x14>; | 160 | reg = <0x2c14 0x14>; |
102 | interrupts = <9>; | 161 | interrupts = <9>; |
103 | clocks = <&cfgclk>; | 162 | clocks = <&chip CLKID_CFG>; |
104 | clock-names = "timer"; | 163 | clock-names = "timer"; |
105 | status = "okay"; | 164 | status = "okay"; |
106 | }; | 165 | }; |
@@ -109,7 +168,7 @@ | |||
109 | compatible = "snps,dw-apb-timer"; | 168 | compatible = "snps,dw-apb-timer"; |
110 | reg = <0x2c28 0x14>; | 169 | reg = <0x2c28 0x14>; |
111 | interrupts = <10>; | 170 | interrupts = <10>; |
112 | clocks = <&cfgclk>; | 171 | clocks = <&chip CLKID_CFG>; |
113 | clock-names = "timer"; | 172 | clock-names = "timer"; |
114 | status = "disabled"; | 173 | status = "disabled"; |
115 | }; | 174 | }; |
@@ -118,7 +177,7 @@ | |||
118 | compatible = "snps,dw-apb-timer"; | 177 | compatible = "snps,dw-apb-timer"; |
119 | reg = <0x2c3c 0x14>; | 178 | reg = <0x2c3c 0x14>; |
120 | interrupts = <11>; | 179 | interrupts = <11>; |
121 | clocks = <&cfgclk>; | 180 | clocks = <&chip CLKID_CFG>; |
122 | clock-names = "timer"; | 181 | clock-names = "timer"; |
123 | status = "disabled"; | 182 | status = "disabled"; |
124 | }; | 183 | }; |
@@ -127,7 +186,7 @@ | |||
127 | compatible = "snps,dw-apb-timer"; | 186 | compatible = "snps,dw-apb-timer"; |
128 | reg = <0x2c50 0x14>; | 187 | reg = <0x2c50 0x14>; |
129 | interrupts = <12>; | 188 | interrupts = <12>; |
130 | clocks = <&cfgclk>; | 189 | clocks = <&chip CLKID_CFG>; |
131 | clock-names = "timer"; | 190 | clock-names = "timer"; |
132 | status = "disabled"; | 191 | status = "disabled"; |
133 | }; | 192 | }; |
@@ -136,7 +195,7 @@ | |||
136 | compatible = "snps,dw-apb-timer"; | 195 | compatible = "snps,dw-apb-timer"; |
137 | reg = <0x2c64 0x14>; | 196 | reg = <0x2c64 0x14>; |
138 | interrupts = <13>; | 197 | interrupts = <13>; |
139 | clocks = <&cfgclk>; | 198 | clocks = <&chip CLKID_CFG>; |
140 | clock-names = "timer"; | 199 | clock-names = "timer"; |
141 | status = "disabled"; | 200 | status = "disabled"; |
142 | }; | 201 | }; |
@@ -145,7 +204,7 @@ | |||
145 | compatible = "snps,dw-apb-timer"; | 204 | compatible = "snps,dw-apb-timer"; |
146 | reg = <0x2c78 0x14>; | 205 | reg = <0x2c78 0x14>; |
147 | interrupts = <14>; | 206 | interrupts = <14>; |
148 | clocks = <&cfgclk>; | 207 | clocks = <&chip CLKID_CFG>; |
149 | clock-names = "timer"; | 208 | clock-names = "timer"; |
150 | status = "disabled"; | 209 | status = "disabled"; |
151 | }; | 210 | }; |
@@ -154,7 +213,7 @@ | |||
154 | compatible = "snps,dw-apb-timer"; | 213 | compatible = "snps,dw-apb-timer"; |
155 | reg = <0x2c8c 0x14>; | 214 | reg = <0x2c8c 0x14>; |
156 | interrupts = <15>; | 215 | interrupts = <15>; |
157 | clocks = <&cfgclk>; | 216 | clocks = <&chip CLKID_CFG>; |
158 | clock-names = "timer"; | 217 | clock-names = "timer"; |
159 | status = "disabled"; | 218 | status = "disabled"; |
160 | }; | 219 | }; |
@@ -169,6 +228,19 @@ | |||
169 | }; | 228 | }; |
170 | }; | 229 | }; |
171 | 230 | ||
231 | chip: chip-control@ea0000 { | ||
232 | compatible = "marvell,berlin2cd-chip-ctrl"; | ||
233 | #clock-cells = <1>; | ||
234 | reg = <0xea0000 0x400>; | ||
235 | clocks = <&refclk>; | ||
236 | clock-names = "refclk"; | ||
237 | |||
238 | uart0_pmux: uart0-pmux { | ||
239 | groups = "G6"; | ||
240 | function = "uart0"; | ||
241 | }; | ||
242 | }; | ||
243 | |||
172 | apb@fc0000 { | 244 | apb@fc0000 { |
173 | compatible = "simple-bus"; | 245 | compatible = "simple-bus"; |
174 | #address-cells = <1>; | 246 | #address-cells = <1>; |
@@ -177,13 +249,45 @@ | |||
177 | ranges = <0 0xfc0000 0x10000>; | 249 | ranges = <0 0xfc0000 0x10000>; |
178 | interrupt-parent = <&sic>; | 250 | interrupt-parent = <&sic>; |
179 | 251 | ||
252 | sm_gpio1: gpio@5000 { | ||
253 | compatible = "snps,dw-apb-gpio"; | ||
254 | reg = <0x5000 0x400>; | ||
255 | #address-cells = <1>; | ||
256 | #size-cells = <0>; | ||
257 | |||
258 | portf: gpio-port@5 { | ||
259 | compatible = "snps,dw-apb-gpio-port"; | ||
260 | gpio-controller; | ||
261 | #gpio-cells = <2>; | ||
262 | snps,nr-gpios = <8>; | ||
263 | reg = <0>; | ||
264 | }; | ||
265 | }; | ||
266 | |||
267 | sm_gpio0: gpio@c000 { | ||
268 | compatible = "snps,dw-apb-gpio"; | ||
269 | reg = <0xc000 0x400>; | ||
270 | #address-cells = <1>; | ||
271 | #size-cells = <0>; | ||
272 | |||
273 | porte: gpio-port@4 { | ||
274 | compatible = "snps,dw-apb-gpio-port"; | ||
275 | gpio-controller; | ||
276 | #gpio-cells = <2>; | ||
277 | snps,nr-gpios = <8>; | ||
278 | reg = <0>; | ||
279 | }; | ||
280 | }; | ||
281 | |||
180 | uart0: serial@9000 { | 282 | uart0: serial@9000 { |
181 | compatible = "snps,dw-apb-uart"; | 283 | compatible = "snps,dw-apb-uart"; |
182 | reg = <0x9000 0x100>; | 284 | reg = <0x9000 0x100>; |
183 | reg-shift = <2>; | 285 | reg-shift = <2>; |
184 | reg-io-width = <1>; | 286 | reg-io-width = <1>; |
185 | interrupts = <8>; | 287 | interrupts = <8>; |
186 | clocks = <&smclk>; | 288 | clocks = <&refclk>; |
289 | pinctrl-0 = <&uart0_pmux>; | ||
290 | pinctrl-names = "default"; | ||
187 | status = "disabled"; | 291 | status = "disabled"; |
188 | }; | 292 | }; |
189 | 293 | ||
@@ -193,10 +297,15 @@ | |||
193 | reg-shift = <2>; | 297 | reg-shift = <2>; |
194 | reg-io-width = <1>; | 298 | reg-io-width = <1>; |
195 | interrupts = <9>; | 299 | interrupts = <9>; |
196 | clocks = <&smclk>; | 300 | clocks = <&refclk>; |
197 | status = "disabled"; | 301 | status = "disabled"; |
198 | }; | 302 | }; |
199 | 303 | ||
304 | sysctrl: system-controller@d000 { | ||
305 | compatible = "marvell,berlin2cd-system-ctrl"; | ||
306 | reg = <0xd000 0x100>; | ||
307 | }; | ||
308 | |||
200 | sic: interrupt-controller@e000 { | 309 | sic: interrupt-controller@e000 { |
201 | compatible = "snps,dw-apb-ictl"; | 310 | compatible = "snps,dw-apb-ictl"; |
202 | reg = <0xe000 0x400>; | 311 | reg = <0xe000 0x400>; |