arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / mips / boot / dts / ingenic / x1830.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/ingenic,x1830-cgu.h>
4 #include <dt-bindings/dma/x1830-dma.h>
5
6 / {
7         #address-cells = <1>;
8         #size-cells = <1>;
9         compatible = "ingenic,x1830";
10
11         cpus {
12                 #address-cells = <1>;
13                 #size-cells = <0>;
14
15                 cpu0: cpu@0 {
16                         device_type = "cpu";
17                         compatible = "ingenic,xburst-fpu2.0-mxu2.0";
18                         reg = <0>;
19
20                         clocks = <&cgu X1830_CLK_CPU>;
21                         clock-names = "cpu";
22                 };
23         };
24
25         cpuintc: interrupt-controller {
26                 #address-cells = <0>;
27                 #interrupt-cells = <1>;
28                 interrupt-controller;
29                 compatible = "mti,cpu-interrupt-controller";
30         };
31
32         intc: interrupt-controller@10001000 {
33                 compatible = "ingenic,x1830-intc", "ingenic,jz4780-intc";
34                 reg = <0x10001000 0x50>;
35
36                 interrupt-controller;
37                 #interrupt-cells = <1>;
38
39                 interrupt-parent = <&cpuintc>;
40                 interrupts = <2>;
41         };
42
43         exclk: ext {
44                 compatible = "fixed-clock";
45                 #clock-cells = <0>;
46         };
47
48         rtclk: rtc {
49                 compatible = "fixed-clock";
50                 #clock-cells = <0>;
51                 clock-frequency = <32768>;
52         };
53
54         cgu: x1830-cgu@10000000 {
55                 compatible = "ingenic,x1830-cgu", "simple-mfd";
56                 reg = <0x10000000 0x100>;
57                 #address-cells = <1>;
58                 #size-cells = <1>;
59                 ranges = <0x0 0x10000000 0x100>;
60
61                 #clock-cells = <1>;
62
63                 clocks = <&exclk>, <&rtclk>;
64                 clock-names = "ext", "rtc";
65
66                 otg_phy: usb-phy@3c {
67                         compatible = "ingenic,x1830-phy";
68                         reg = <0x3c 0x10>;
69
70                         clocks = <&cgu X1830_CLK_OTGPHY>;
71
72                         #phy-cells = <0>;
73
74                         status = "disabled";
75                 };
76
77                 mac_phy_ctrl: mac-phy-ctrl@e8 {
78                         compatible = "syscon";
79                         reg = <0xe8 0x4>;
80                 };
81         };
82
83         ost: timer@12000000 {
84                 compatible = "ingenic,x1830-ost", "ingenic,x1000-ost";
85                 reg = <0x12000000 0x3c>;
86
87                 #clock-cells = <1>;
88
89                 clocks = <&cgu X1830_CLK_OST>;
90                 clock-names = "ost";
91
92                 interrupt-parent = <&cpuintc>;
93                 interrupts = <4>;
94         };
95
96         tcu: timer@10002000 {
97                 compatible = "ingenic,x1830-tcu", "ingenic,x1000-tcu", "simple-mfd";
98                 reg = <0x10002000 0x1000>;
99                 #address-cells = <1>;
100                 #size-cells = <1>;
101                 ranges = <0x0 0x10002000 0x1000>;
102
103                 #clock-cells = <1>;
104
105                 clocks = <&cgu X1830_CLK_RTCLK>,
106                          <&cgu X1830_CLK_EXCLK>,
107                          <&cgu X1830_CLK_PCLK>,
108                          <&cgu X1830_CLK_TCU>;
109                 clock-names = "rtc", "ext", "pclk", "tcu";
110
111                 interrupt-controller;
112                 #interrupt-cells = <1>;
113
114                 interrupt-parent = <&intc>;
115                 interrupts = <27 26 25>;
116
117                 wdt: watchdog@0 {
118                         compatible = "ingenic,x1830-watchdog", "ingenic,jz4780-watchdog";
119                         reg = <0x0 0x10>;
120
121                         clocks = <&tcu TCU_CLK_WDT>;
122                         clock-names = "wdt";
123                 };
124
125                 pwm: pwm@40 {
126                         compatible = "ingenic,x1830-pwm", "ingenic,jz4740-pwm";
127                         reg = <0x40 0x80>;
128
129                         #pwm-cells = <3>;
130
131                         clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
132                                  <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
133                                  <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
134                                  <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
135                         clock-names = "timer0", "timer1", "timer2", "timer3",
136                                       "timer4", "timer5", "timer6", "timer7";
137                 };
138         };
139
140         rtc: rtc@10003000 {
141                 compatible = "ingenic,x1830-rtc", "ingenic,jz4780-rtc";
142                 reg = <0x10003000 0x4c>;
143
144                 interrupt-parent = <&intc>;
145                 interrupts = <32>;
146
147                 clocks = <&cgu X1830_CLK_RTCLK>;
148                 clock-names = "rtc";
149         };
150
151         pinctrl: pin-controller@10010000 {
152                 compatible = "ingenic,x1830-pinctrl";
153                 reg = <0x10010000 0x800>;
154                 #address-cells = <1>;
155                 #size-cells = <0>;
156
157                 gpa: gpio@0 {
158                         compatible = "ingenic,x1830-gpio";
159                         reg = <0>;
160
161                         gpio-controller;
162                         gpio-ranges = <&pinctrl 0 0 32>;
163                         #gpio-cells = <2>;
164
165                         interrupt-controller;
166                         #interrupt-cells = <2>;
167
168                         interrupt-parent = <&intc>;
169                         interrupts = <17>;
170                 };
171
172                 gpb: gpio@1 {
173                         compatible = "ingenic,x1830-gpio";
174                         reg = <1>;
175
176                         gpio-controller;
177                         gpio-ranges = <&pinctrl 0 32 32>;
178                         #gpio-cells = <2>;
179
180                         interrupt-controller;
181                         #interrupt-cells = <2>;
182
183                         interrupt-parent = <&intc>;
184                         interrupts = <16>;
185                 };
186
187                 gpc: gpio@2 {
188                         compatible = "ingenic,x1830-gpio";
189                         reg = <2>;
190
191                         gpio-controller;
192                         gpio-ranges = <&pinctrl 0 64 32>;
193                         #gpio-cells = <2>;
194
195                         interrupt-controller;
196                         #interrupt-cells = <2>;
197
198                         interrupt-parent = <&intc>;
199                         interrupts = <15>;
200                 };
201
202                 gpd: gpio@3 {
203                         compatible = "ingenic,x1830-gpio";
204                         reg = <3>;
205
206                         gpio-controller;
207                         gpio-ranges = <&pinctrl 0 96 32>;
208                         #gpio-cells = <2>;
209
210                         interrupt-controller;
211                         #interrupt-cells = <2>;
212
213                         interrupt-parent = <&intc>;
214                         interrupts = <14>;
215                 };
216         };
217
218         uart0: serial@10030000 {
219                 compatible = "ingenic,x1830-uart", "ingenic,x1000-uart";
220                 reg = <0x10030000 0x100>;
221
222                 interrupt-parent = <&intc>;
223                 interrupts = <51>;
224
225                 clocks = <&exclk>, <&cgu X1830_CLK_UART0>;
226                 clock-names = "baud", "module";
227
228                 status = "disabled";
229         };
230
231         uart1: serial@10031000 {
232                 compatible = "ingenic,x1830-uart", "ingenic,x1000-uart";
233                 reg = <0x10031000 0x100>;
234
235                 interrupt-parent = <&intc>;
236                 interrupts = <50>;
237
238                 clocks = <&exclk>, <&cgu X1830_CLK_UART1>;
239                 clock-names = "baud", "module";
240
241                 status = "disabled";
242         };
243
244         ssi0: spi@10043000 {
245                 compatible = "ingenic,x1830-spi", "ingenic,x1000-spi";
246                 reg = <0x10043000 0x20>;
247                 #address-cells = <1>;
248                 #size-cells = <0>;
249
250                 interrupt-parent = <&intc>;
251                 interrupts = <9>;
252
253                 clocks = <&cgu X1830_CLK_SSI0>;
254                 clock-names = "spi";
255
256                 dmas = <&pdma X1830_DMA_SSI0_RX 0xffffffff>,
257                            <&pdma X1830_DMA_SSI0_TX 0xffffffff>;
258                 dma-names = "rx", "tx";
259
260                 status = "disabled";
261         };
262
263         ssi1: spi@10044000 {
264                 compatible = "ingenic,x1830-spi", "ingenic,x1000-spi";
265                 reg = <0x10044000 0x20>;
266                 #address-cells = <1>;
267                 #size-cells = <0>;
268
269                 interrupt-parent = <&intc>;
270                 interrupts = <8>;
271
272                 clocks = <&cgu X1830_CLK_SSI1>;
273                 clock-names = "spi";
274
275                 dmas = <&pdma X1830_DMA_SSI1_RX 0xffffffff>,
276                            <&pdma X1830_DMA_SSI1_TX 0xffffffff>;
277                 dma-names = "rx", "tx";
278
279                 status = "disabled";
280         };
281
282         i2c0: i2c-controller@10050000 {
283                 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
284                 reg = <0x10050000 0x1000>;
285                 #address-cells = <1>;
286                 #size-cells = <0>;
287
288                 interrupt-parent = <&intc>;
289                 interrupts = <60>;
290
291                 clocks = <&cgu X1830_CLK_SMB0>;
292
293                 status = "disabled";
294         };
295
296         i2c1: i2c-controller@10051000 {
297                 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
298                 reg = <0x10051000 0x1000>;
299                 #address-cells = <1>;
300                 #size-cells = <0>;
301
302                 interrupt-parent = <&intc>;
303                 interrupts = <59>;
304
305                 clocks = <&cgu X1830_CLK_SMB1>;
306
307                 status = "disabled";
308         };
309
310         i2c2: i2c-controller@10052000 {
311                 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
312                 reg = <0x10052000 0x1000>;
313                 #address-cells = <1>;
314                 #size-cells = <0>;
315
316                 interrupt-parent = <&intc>;
317                 interrupts = <58>;
318
319                 clocks = <&cgu X1830_CLK_SMB2>;
320
321                 status = "disabled";
322         };
323
324         dtrng: trng@10072000 {
325                 compatible = "ingenic,x1830-dtrng";
326                 reg = <0x10072000 0xc>;
327
328                 clocks = <&cgu X1830_CLK_DTRNG>;
329
330                 status = "disabled";
331         };
332
333         pdma: dma-controller@13420000 {
334                 compatible = "ingenic,x1830-dma";
335                 reg = <0x13420000 0x400>, <0x13421000 0x40>;
336
337                 #dma-cells = <2>;
338
339                 interrupt-parent = <&intc>;
340                 interrupts = <10>;
341
342                 clocks = <&cgu X1830_CLK_PDMA>;
343         };
344
345         msc0: mmc@13450000 {
346                 compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc";
347                 reg = <0x13450000 0x1000>;
348
349                 interrupt-parent = <&intc>;
350                 interrupts = <37>;
351
352                 clocks = <&cgu X1830_CLK_MSC0>;
353                 clock-names = "mmc";
354
355                 cap-sd-highspeed;
356                 cap-mmc-highspeed;
357                 cap-sdio-irq;
358
359                 dmas = <&pdma X1830_DMA_MSC0_RX 0xffffffff>,
360                            <&pdma X1830_DMA_MSC0_TX 0xffffffff>;
361                 dma-names = "rx", "tx";
362
363                 status = "disabled";
364         };
365
366         msc1: mmc@13460000 {
367                 compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc";
368                 reg = <0x13460000 0x1000>;
369
370                 interrupt-parent = <&intc>;
371                 interrupts = <36>;
372
373                 clocks = <&cgu X1830_CLK_MSC1>;
374                 clock-names = "mmc";
375
376                 cap-sd-highspeed;
377                 cap-mmc-highspeed;
378                 cap-sdio-irq;
379
380                 dmas = <&pdma X1830_DMA_MSC1_RX 0xffffffff>,
381                            <&pdma X1830_DMA_MSC1_TX 0xffffffff>;
382                 dma-names = "rx", "tx";
383
384                 status = "disabled";
385         };
386
387         mac: ethernet@134b0000 {
388                 compatible = "ingenic,x1830-mac", "snps,dwmac";
389                 reg = <0x134b0000 0x2000>;
390
391                 interrupt-parent = <&intc>;
392                 interrupts = <55>;
393                 interrupt-names = "macirq";
394
395                 clocks = <&cgu X1830_CLK_MAC>;
396                 clock-names = "stmmaceth";
397
398                 mode-reg = <&mac_phy_ctrl>;
399
400                 status = "disabled";
401
402                 mdio: mdio {
403                         compatible = "snps,dwmac-mdio";
404                         #address-cells = <1>;
405                         #size-cells = <0>;
406
407                         status = "disabled";
408                 };
409         };
410
411         otg: usb@13500000 {
412                 compatible = "ingenic,x1830-otg";
413                 reg = <0x13500000 0x40000>;
414
415                 interrupt-parent = <&intc>;
416                 interrupts = <21>;
417
418                 clocks = <&cgu X1830_CLK_OTG>;
419                 clock-names = "otg";
420
421                 phys = <&otg_phy>;
422                 phy-names = "usb2-phy";
423
424                 g-rx-fifo-size = <768>;
425                 g-np-tx-fifo-size = <256>;
426                 g-tx-fifo-size = <256 256 256 256 256 256 256 512>;
427
428                 status = "disabled";
429         };
430 };