Loading...
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * ox810se.dtsi - Device tree file for Oxford Semiconductor OX810SE SoC
4 *
5 * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
6 */
7
8#include <dt-bindings/clock/oxsemi,ox810se.h>
9#include <dt-bindings/reset/oxsemi,ox810se.h>
10
11/ {
12 #address-cells = <1>;
13 #size-cells = <1>;
14 compatible = "oxsemi,ox810se";
15
16 cpus {
17 #address-cells = <0>;
18 #size-cells = <0>;
19
20 cpu {
21 device_type = "cpu";
22 compatible = "arm,arm926ej-s";
23 clocks = <&armclk>;
24 };
25 };
26
27 memory {
28 device_type = "memory";
29 /* Max 256MB @ 0x48000000 */
30 reg = <0x48000000 0x10000000>;
31 };
32
33 clocks {
34 osc: oscillator {
35 compatible = "fixed-clock";
36 #clock-cells = <0>;
37 clock-frequency = <25000000>;
38 };
39
40 gmacclk: gmacclk {
41 compatible = "fixed-clock";
42 #clock-cells = <0>;
43 clock-frequency = <125000000>;
44 };
45
46 rpsclk: rpsclk {
47 compatible = "fixed-factor-clock";
48 #clock-cells = <0>;
49 clock-div = <1>;
50 clock-mult = <1>;
51 clocks = <&osc>;
52 };
53
54 pll400: pll400 {
55 compatible = "fixed-clock";
56 #clock-cells = <0>;
57 clock-frequency = <733333333>;
58 };
59
60 sysclk: sysclk {
61 compatible = "fixed-factor-clock";
62 #clock-cells = <0>;
63 clock-div = <4>;
64 clock-mult = <1>;
65 clocks = <&pll400>;
66 };
67
68 armclk: armclk {
69 compatible = "fixed-factor-clock";
70 #clock-cells = <0>;
71 clock-div = <2>;
72 clock-mult = <1>;
73 clocks = <&pll400>;
74 };
75 };
76
77 soc {
78 #address-cells = <1>;
79 #size-cells = <1>;
80 compatible = "simple-bus";
81 ranges;
82 interrupt-parent = <&intc>;
83
84 etha: ethernet@40400000 {
85 compatible = "oxsemi,ox810se-dwmac", "snps,dwmac";
86 reg = <0x40400000 0x2000>;
87 interrupts = <8>;
88 interrupt-names = "macirq";
89 mac-address = [000000000000]; /* Filled in by U-Boot */
90 phy-mode = "rgmii";
91
92 clocks = <&stdclk 6>, <&gmacclk>;
93 clock-names = "gmac", "stmmaceth";
94 resets = <&reset 6>;
95
96 /* Regmap for sys registers */
97 oxsemi,sys-ctrl = <&sys>;
98
99 status = "disabled";
100 };
101
102 apb-bridge@44000000 {
103 #address-cells = <1>;
104 #size-cells = <1>;
105 compatible = "simple-bus";
106 ranges = <0 0x44000000 0x1000000>;
107
108 pinctrl: pinctrl {
109 compatible = "oxsemi,ox810se-pinctrl";
110
111 /* Regmap for sys registers */
112 oxsemi,sys-ctrl = <&sys>;
113
114 pinctrl_uart0: uart0 {
115 uart0a {
116 pins = "gpio31";
117 function = "fct3";
118 };
119 uart0b {
120 pins = "gpio32";
121 function = "fct3";
122 };
123 };
124
125 pinctrl_uart0_modem: uart0_modem {
126 uart0c {
127 pins = "gpio27";
128 function = "fct3";
129 };
130 uart0d {
131 pins = "gpio28";
132 function = "fct3";
133 };
134 uart0e {
135 pins = "gpio29";
136 function = "fct3";
137 };
138 uart0f {
139 pins = "gpio30";
140 function = "fct3";
141 };
142 uart0g {
143 pins = "gpio33";
144 function = "fct3";
145 };
146 uart0h {
147 pins = "gpio34";
148 function = "fct3";
149 };
150 };
151
152 pinctrl_uart1: uart1 {
153 uart1a {
154 pins = "gpio20";
155 function = "fct3";
156 };
157 uart1b {
158 pins = "gpio22";
159 function = "fct3";
160 };
161 };
162
163 pinctrl_uart1_modem: uart1_modem {
164 uart1c {
165 pins = "gpio8";
166 function = "fct3";
167 };
168 uart1d {
169 pins = "gpio9";
170 function = "fct3";
171 };
172 uart1e {
173 pins = "gpio23";
174 function = "fct3";
175 };
176 uart1f {
177 pins = "gpio24";
178 function = "fct3";
179 };
180 uart1g {
181 pins = "gpio25";
182 function = "fct3";
183 };
184 uart1h {
185 pins = "gpio26";
186 function = "fct3";
187 };
188 };
189
190 pinctrl_uart2: uart2 {
191 uart2a {
192 pins = "gpio6";
193 function = "fct3";
194 };
195 uart2b {
196 pins = "gpio7";
197 function = "fct3";
198 };
199 };
200
201 pinctrl_uart2_modem: uart2_modem {
202 uart2c {
203 pins = "gpio0";
204 function = "fct3";
205 };
206 uart2d {
207 pins = "gpio1";
208 function = "fct3";
209 };
210 uart2e {
211 pins = "gpio2";
212 function = "fct3";
213 };
214 uart2f {
215 pins = "gpio3";
216 function = "fct3";
217 };
218 uart2g {
219 pins = "gpio4";
220 function = "fct3";
221 };
222 uart2h {
223 pins = "gpio5";
224 function = "fct3";
225 };
226 };
227 };
228
229 gpio0: gpio@0 {
230 compatible = "oxsemi,ox810se-gpio";
231 reg = <0x000000 0x100000>;
232 interrupts = <21>;
233 #gpio-cells = <2>;
234 gpio-controller;
235 interrupt-controller;
236 #interrupt-cells = <2>;
237 ngpios = <32>;
238 oxsemi,gpio-bank = <0>;
239 gpio-ranges = <&pinctrl 0 0 32>;
240 };
241
242 gpio1: gpio@100000 {
243 compatible = "oxsemi,ox810se-gpio";
244 reg = <0x100000 0x100000>;
245 interrupts = <22>;
246 #gpio-cells = <2>;
247 gpio-controller;
248 interrupt-controller;
249 #interrupt-cells = <2>;
250 ngpios = <3>;
251 oxsemi,gpio-bank = <1>;
252 gpio-ranges = <&pinctrl 0 32 3>;
253 };
254
255 uart0: serial@200000 {
256 compatible = "ns16550a";
257 reg = <0x200000 0x100000>;
258 clocks = <&sysclk>;
259 interrupts = <23>;
260 reg-shift = <0>;
261 fifo-size = <16>;
262 reg-io-width = <1>;
263 current-speed = <115200>;
264 no-loopback-test;
265 status = "disabled";
266 resets = <&reset RESET_UART1>;
267 };
268
269 uart1: serial@300000 {
270 compatible = "ns16550a";
271 reg = <0x300000 0x100000>;
272 clocks = <&sysclk>;
273 interrupts = <24>;
274 reg-shift = <0>;
275 fifo-size = <16>;
276 reg-io-width = <1>;
277 current-speed = <115200>;
278 no-loopback-test;
279 status = "disabled";
280 resets = <&reset RESET_UART2>;
281 };
282
283 uart2: serial@900000 {
284 compatible = "ns16550a";
285 reg = <0x900000 0x100000>;
286 clocks = <&sysclk>;
287 interrupts = <29>;
288 reg-shift = <0>;
289 fifo-size = <16>;
290 reg-io-width = <1>;
291 current-speed = <115200>;
292 no-loopback-test;
293 status = "disabled";
294 resets = <&reset RESET_UART3>;
295 };
296
297 uart3: serial@a00000 {
298 compatible = "ns16550a";
299 reg = <0xa00000 0x100000>;
300 clocks = <&sysclk>;
301 interrupts = <30>;
302 reg-shift = <0>;
303 fifo-size = <16>;
304 reg-io-width = <1>;
305 current-speed = <115200>;
306 no-loopback-test;
307 status = "disabled";
308 resets = <&reset RESET_UART4>;
309 };
310 };
311
312 apb-bridge@45000000 {
313 #address-cells = <1>;
314 #size-cells = <1>;
315 compatible = "simple-bus";
316 ranges = <0 0x45000000 0x1000000>;
317
318 sys: sys-ctrl@0 {
319 compatible = "oxsemi,ox810se-sys-ctrl", "syscon", "simple-mfd";
320 reg = <0x000000 0x100000>;
321
322 reset: reset-controller {
323 compatible = "oxsemi,ox810se-reset";
324 #reset-cells = <1>;
325 };
326
327 stdclk: stdclk {
328 compatible = "oxsemi,ox810se-stdclk";
329 #clock-cells = <1>;
330 };
331 };
332
333 rps@300000 {
334 #address-cells = <1>;
335 #size-cells = <1>;
336 compatible = "simple-bus";
337 ranges = <0 0x300000 0x100000>;
338
339 intc: interrupt-controller@0 {
340 compatible = "oxsemi,ox810se-rps-irq";
341 interrupt-controller;
342 reg = <0 0x200>;
343 #interrupt-cells = <1>;
344 valid-mask = <0xffffffff>;
345 clear-mask = <0xffffffff>;
346 };
347
348 timer0: timer@200 {
349 compatible = "oxsemi,ox810se-rps-timer";
350 reg = <0x200 0x40>;
351 clocks = <&rpsclk>;
352 interrupts = <4 5>;
353 };
354 };
355 };
356 };
357};
1/*
2 * ox810se.dtsi - Device tree file for Oxford Semiconductor OX810SE SoC
3 *
4 * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
5 *
6 * Licensed under GPLv2 or later
7 */
8
9/include/ "skeleton.dtsi"
10
11/ {
12 compatible = "oxsemi,ox810se";
13
14 cpus {
15 #address-cells = <0>;
16 #size-cells = <0>;
17
18 cpu {
19 device_type = "cpu";
20 compatible = "arm,arm926ej-s";
21 clocks = <&armclk>;
22 };
23 };
24
25 memory {
26 /* Max 256MB @ 0x48000000 */
27 reg = <0x48000000 0x10000000>;
28 };
29
30 clocks {
31 osc: oscillator {
32 compatible = "fixed-clock";
33 #clock-cells = <0>;
34 clock-frequency = <25000000>;
35 };
36
37 gmacclk: gmacclk {
38 compatible = "fixed-clock";
39 #clock-cells = <0>;
40 clock-frequency = <125000000>;
41 };
42
43 rpsclk: rpsclk {
44 compatible = "fixed-factor-clock";
45 #clock-cells = <0>;
46 clock-div = <1>;
47 clock-mult = <1>;
48 clocks = <&osc>;
49 };
50
51 pll400: pll400 {
52 compatible = "fixed-clock";
53 #clock-cells = <0>;
54 clock-frequency = <733333333>;
55 };
56
57 sysclk: sysclk {
58 compatible = "fixed-factor-clock";
59 #clock-cells = <0>;
60 clock-div = <4>;
61 clock-mult = <1>;
62 clocks = <&pll400>;
63 };
64
65 armclk: armclk {
66 compatible = "fixed-factor-clock";
67 #clock-cells = <0>;
68 clock-div = <2>;
69 clock-mult = <1>;
70 clocks = <&pll400>;
71 };
72 };
73
74 soc {
75 #address-cells = <1>;
76 #size-cells = <1>;
77 compatible = "simple-bus";
78 ranges;
79 interrupt-parent = <&intc>;
80
81 apb-bridge@44000000 {
82 #address-cells = <1>;
83 #size-cells = <1>;
84 compatible = "simple-bus";
85 ranges = <0 0x44000000 0x1000000>;
86
87 pinctrl: pinctrl {
88 compatible = "oxsemi,ox810se-pinctrl";
89
90 /* Regmap for sys registers */
91 oxsemi,sys-ctrl = <&sys>;
92
93 pinctrl_uart0: uart0 {
94 uart0a {
95 pins = "gpio31";
96 function = "fct3";
97 };
98 uart0b {
99 pins = "gpio32";
100 function = "fct3";
101 };
102 };
103
104 pinctrl_uart0_modem: uart0_modem {
105 uart0c {
106 pins = "gpio27";
107 function = "fct3";
108 };
109 uart0d {
110 pins = "gpio28";
111 function = "fct3";
112 };
113 uart0e {
114 pins = "gpio29";
115 function = "fct3";
116 };
117 uart0f {
118 pins = "gpio30";
119 function = "fct3";
120 };
121 uart0g {
122 pins = "gpio33";
123 function = "fct3";
124 };
125 uart0h {
126 pins = "gpio34";
127 function = "fct3";
128 };
129 };
130
131 pinctrl_uart1: uart1 {
132 uart1a {
133 pins = "gpio20";
134 function = "fct3";
135 };
136 uart1b {
137 pins = "gpio22";
138 function = "fct3";
139 };
140 };
141
142 pinctrl_uart1_modem: uart1_modem {
143 uart1c {
144 pins = "gpio8";
145 function = "fct3";
146 };
147 uart1d {
148 pins = "gpio9";
149 function = "fct3";
150 };
151 uart1e {
152 pins = "gpio23";
153 function = "fct3";
154 };
155 uart1f {
156 pins = "gpio24";
157 function = "fct3";
158 };
159 uart1g {
160 pins = "gpio25";
161 function = "fct3";
162 };
163 uart1h {
164 pins = "gpio26";
165 function = "fct3";
166 };
167 };
168
169 pinctrl_uart2: uart2 {
170 uart2a {
171 pins = "gpio6";
172 function = "fct3";
173 };
174 uart2b {
175 pins = "gpio7";
176 function = "fct3";
177 };
178 };
179
180 pinctrl_uart2_modem: uart2_modem {
181 uart2c {
182 pins = "gpio0";
183 function = "fct3";
184 };
185 uart2d {
186 pins = "gpio1";
187 function = "fct3";
188 };
189 uart2e {
190 pins = "gpio2";
191 function = "fct3";
192 };
193 uart2f {
194 pins = "gpio3";
195 function = "fct3";
196 };
197 uart2g {
198 pins = "gpio4";
199 function = "fct3";
200 };
201 uart2h {
202 pins = "gpio5";
203 function = "fct3";
204 };
205 };
206 };
207
208 gpio0: gpio@000000 {
209 compatible = "oxsemi,ox810se-gpio";
210 reg = <0x000000 0x100000>;
211 interrupts = <21>;
212 #gpio-cells = <2>;
213 gpio-controller;
214 interrupt-controller;
215 #interrupt-cells = <2>;
216 ngpios = <32>;
217 oxsemi,gpio-bank = <0>;
218 gpio-ranges = <&pinctrl 0 0 32>;
219 };
220
221 gpio1: gpio@100000 {
222 compatible = "oxsemi,ox810se-gpio";
223 reg = <0x100000 0x100000>;
224 interrupts = <22>;
225 #gpio-cells = <2>;
226 gpio-controller;
227 interrupt-controller;
228 #interrupt-cells = <2>;
229 ngpios = <3>;
230 oxsemi,gpio-bank = <1>;
231 gpio-ranges = <&pinctrl 0 32 3>;
232 };
233
234 uart0: serial@200000 {
235 compatible = "ns16550a";
236 reg = <0x200000 0x100000>;
237 clocks = <&sysclk>;
238 interrupts = <23>;
239 reg-shift = <0>;
240 fifo-size = <16>;
241 reg-io-width = <1>;
242 current-speed = <115200>;
243 no-loopback-test;
244 status = "disabled";
245 resets = <&reset 17>;
246 };
247
248 uart1: serial@300000 {
249 compatible = "ns16550a";
250 reg = <0x300000 0x100000>;
251 clocks = <&sysclk>;
252 interrupts = <24>;
253 reg-shift = <0>;
254 fifo-size = <16>;
255 reg-io-width = <1>;
256 current-speed = <115200>;
257 no-loopback-test;
258 status = "disabled";
259 resets = <&reset 18>;
260 };
261
262 uart2: serial@900000 {
263 compatible = "ns16550a";
264 reg = <0x900000 0x100000>;
265 clocks = <&sysclk>;
266 interrupts = <29>;
267 reg-shift = <0>;
268 fifo-size = <16>;
269 reg-io-width = <1>;
270 current-speed = <115200>;
271 no-loopback-test;
272 status = "disabled";
273 resets = <&reset 22>;
274 };
275
276 uart3: serial@a00000 {
277 compatible = "ns16550a";
278 reg = <0xa00000 0x100000>;
279 clocks = <&sysclk>;
280 interrupts = <30>;
281 reg-shift = <0>;
282 fifo-size = <16>;
283 reg-io-width = <1>;
284 current-speed = <115200>;
285 no-loopback-test;
286 status = "disabled";
287 resets = <&reset 23>;
288 };
289 };
290
291 apb-bridge@45000000 {
292 #address-cells = <1>;
293 #size-cells = <1>;
294 compatible = "simple-bus";
295 ranges = <0 0x45000000 0x1000000>;
296
297 sys: sys-ctrl@000000 {
298 compatible = "oxsemi,ox810se-sys-ctrl", "syscon", "simple-mfd";
299 reg = <0x000000 0x100000>;
300
301 reset: reset-controller {
302 compatible = "oxsemi,ox810se-reset";
303 #reset-cells = <1>;
304 };
305
306 stdclk: stdclk {
307 compatible = "oxsemi,ox810se-stdclk";
308 #clock-cells = <1>;
309 };
310 };
311
312 rps@300000 {
313 #address-cells = <1>;
314 #size-cells = <1>;
315 compatible = "simple-bus";
316 ranges = <0 0x300000 0x100000>;
317
318 intc: interrupt-controller@0 {
319 compatible = "oxsemi,ox810se-rps-irq";
320 interrupt-controller;
321 reg = <0 0x200>;
322 #interrupt-cells = <1>;
323 valid-mask = <0xFFFFFFFF>;
324 clear-mask = <0>;
325 };
326
327 timer0: timer@200 {
328 compatible = "oxsemi,ox810se-rps-timer";
329 reg = <0x200 0x40>;
330 clocks = <&rpsclk>;
331 interrupts = <4 5>;
332 };
333 };
334 };
335 };
336};