hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/mips/boot/dts/ingenic/jz4780.dtsi
....@@ -1,11 +1,35 @@
11 // SPDX-License-Identifier: GPL-2.0
22 #include <dt-bindings/clock/jz4780-cgu.h>
3
+#include <dt-bindings/clock/ingenic,tcu.h>
34 #include <dt-bindings/dma/jz4780-dma.h>
45
56 / {
67 #address-cells = <1>;
78 #size-cells = <1>;
89 compatible = "ingenic,jz4780";
10
+
11
+ cpus {
12
+ #address-cells = <1>;
13
+ #size-cells = <0>;
14
+
15
+ cpu0: cpu@0 {
16
+ device_type = "cpu";
17
+ compatible = "ingenic,xburst-fpu1.0-mxu1.1";
18
+ reg = <0>;
19
+
20
+ clocks = <&cgu JZ4780_CLK_CPU>;
21
+ clock-names = "cpu";
22
+ };
23
+
24
+ cpu1: cpu@1 {
25
+ device_type = "cpu";
26
+ compatible = "ingenic,xburst-fpu1.0-mxu1.1";
27
+ reg = <1>;
28
+
29
+ clocks = <&cgu JZ4780_CLK_CORE1>;
30
+ clock-names = "cpu";
31
+ };
32
+ };
933
1034 cpuintc: interrupt-controller {
1135 #address-cells = <0>;
....@@ -44,6 +68,61 @@
4468 clock-names = "ext", "rtc";
4569
4670 #clock-cells = <1>;
71
+ };
72
+
73
+ tcu: timer@10002000 {
74
+ compatible = "ingenic,jz4780-tcu",
75
+ "ingenic,jz4770-tcu",
76
+ "simple-mfd";
77
+ reg = <0x10002000 0x1000>;
78
+ #address-cells = <1>;
79
+ #size-cells = <1>;
80
+ ranges = <0x0 0x10002000 0x1000>;
81
+
82
+ #clock-cells = <1>;
83
+
84
+ clocks = <&cgu JZ4780_CLK_RTCLK>,
85
+ <&cgu JZ4780_CLK_EXCLK>,
86
+ <&cgu JZ4780_CLK_PCLK>;
87
+ clock-names = "rtc", "ext", "pclk";
88
+
89
+ interrupt-controller;
90
+ #interrupt-cells = <1>;
91
+
92
+ interrupt-parent = <&intc>;
93
+ interrupts = <27 26 25>;
94
+
95
+ watchdog: watchdog@0 {
96
+ compatible = "ingenic,jz4780-watchdog";
97
+ reg = <0x0 0xc>;
98
+
99
+ clocks = <&tcu TCU_CLK_WDT>;
100
+ clock-names = "wdt";
101
+ };
102
+
103
+ pwm: pwm@40 {
104
+ compatible = "ingenic,jz4780-pwm", "ingenic,jz4740-pwm";
105
+ reg = <0x40 0x80>;
106
+
107
+ #pwm-cells = <3>;
108
+
109
+ clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
110
+ <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
111
+ <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
112
+ <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
113
+ clock-names = "timer0", "timer1", "timer2", "timer3",
114
+ "timer4", "timer5", "timer6", "timer7";
115
+ };
116
+
117
+ ost: timer@e0 {
118
+ compatible = "ingenic,jz4780-ost", "ingenic,jz4770-ost";
119
+ reg = <0xe0 0x20>;
120
+
121
+ clocks = <&tcu TCU_CLK_OST>;
122
+ clock-names = "ost";
123
+
124
+ interrupts = <15>;
125
+ };
47126 };
48127
49128 rtc_dev: rtc@10003000 {
....@@ -164,8 +243,7 @@
164243 gpio-miso = <&gpe 14 0>;
165244 gpio-sck = <&gpe 15 0>;
166245 gpio-mosi = <&gpe 17 0>;
167
- cs-gpios = <&gpe 16 0
168
- &gpe 18 0>;
246
+ cs-gpios = <&gpe 16 0>, <&gpe 18 0>;
169247
170248 spidev@0 {
171249 compatible = "spidev";
....@@ -239,34 +317,127 @@
239317 status = "disabled";
240318 };
241319
242
- watchdog: watchdog@10002000 {
243
- compatible = "ingenic,jz4780-watchdog";
244
- reg = <0x10002000 0x10>;
320
+ i2c0: i2c@10050000 {
321
+ compatible = "ingenic,jz4780-i2c";
322
+ #address-cells = <1>;
323
+ #size-cells = <0>;
245324
246
- clocks = <&cgu JZ4780_CLK_RTCLK>;
247
- clock-names = "rtc";
248
- };
325
+ reg = <0x10050000 0x1000>;
249326
250
- nemc: nemc@13410000 {
251
- compatible = "ingenic,jz4780-nemc";
252
- reg = <0x13410000 0x10000>;
253
- #address-cells = <2>;
254
- #size-cells = <1>;
255
- ranges = <1 0 0x1b000000 0x1000000
256
- 2 0 0x1a000000 0x1000000
257
- 3 0 0x19000000 0x1000000
258
- 4 0 0x18000000 0x1000000
259
- 5 0 0x17000000 0x1000000
260
- 6 0 0x16000000 0x1000000>;
327
+ interrupt-parent = <&intc>;
328
+ interrupts = <60>;
261329
262
- clocks = <&cgu JZ4780_CLK_NEMC>;
330
+ clocks = <&cgu JZ4780_CLK_SMB0>;
331
+ clock-frequency = <100000>;
332
+ pinctrl-names = "default";
333
+ pinctrl-0 = <&pins_i2c0_data>;
263334
264335 status = "disabled";
265336 };
266337
338
+ i2c1: i2c@10051000 {
339
+ compatible = "ingenic,jz4780-i2c";
340
+ #address-cells = <1>;
341
+ #size-cells = <0>;
342
+ reg = <0x10051000 0x1000>;
343
+
344
+ interrupt-parent = <&intc>;
345
+ interrupts = <59>;
346
+
347
+ clocks = <&cgu JZ4780_CLK_SMB1>;
348
+ clock-frequency = <100000>;
349
+ pinctrl-names = "default";
350
+ pinctrl-0 = <&pins_i2c1_data>;
351
+
352
+ status = "disabled";
353
+ };
354
+
355
+ i2c2: i2c@10052000 {
356
+ compatible = "ingenic,jz4780-i2c";
357
+ #address-cells = <1>;
358
+ #size-cells = <0>;
359
+ reg = <0x10052000 0x1000>;
360
+
361
+ interrupt-parent = <&intc>;
362
+ interrupts = <58>;
363
+
364
+ clocks = <&cgu JZ4780_CLK_SMB2>;
365
+ clock-frequency = <100000>;
366
+ pinctrl-names = "default";
367
+ pinctrl-0 = <&pins_i2c2_data>;
368
+
369
+ status = "disabled";
370
+ };
371
+
372
+ i2c3: i2c@10053000 {
373
+ compatible = "ingenic,jz4780-i2c";
374
+ #address-cells = <1>;
375
+ #size-cells = <0>;
376
+ reg = <0x10053000 0x1000>;
377
+
378
+ interrupt-parent = <&intc>;
379
+ interrupts = <57>;
380
+
381
+ clocks = <&cgu JZ4780_CLK_SMB3>;
382
+ clock-frequency = <100000>;
383
+ pinctrl-names = "default";
384
+ pinctrl-0 = <&pins_i2c3_data>;
385
+
386
+ status = "disabled";
387
+ };
388
+
389
+ i2c4: i2c@10054000 {
390
+ compatible = "ingenic,jz4780-i2c";
391
+ #address-cells = <1>;
392
+ #size-cells = <0>;
393
+ reg = <0x10054000 0x1000>;
394
+
395
+ interrupt-parent = <&intc>;
396
+ interrupts = <56>;
397
+
398
+ clocks = <&cgu JZ4780_CLK_SMB4>;
399
+ clock-frequency = <100000>;
400
+ pinctrl-names = "default";
401
+ pinctrl-0 = <&pins_i2c4_data>;
402
+
403
+ status = "disabled";
404
+ };
405
+
406
+ nemc: nemc@13410000 {
407
+ compatible = "ingenic,jz4780-nemc", "simple-mfd";
408
+ reg = <0x13410000 0x10000>;
409
+ #address-cells = <2>;
410
+ #size-cells = <1>;
411
+ ranges = <0 0 0x13410000 0x10000>,
412
+ <1 0 0x1b000000 0x1000000>,
413
+ <2 0 0x1a000000 0x1000000>,
414
+ <3 0 0x19000000 0x1000000>,
415
+ <4 0 0x18000000 0x1000000>,
416
+ <5 0 0x17000000 0x1000000>,
417
+ <6 0 0x16000000 0x1000000>;
418
+
419
+ clocks = <&cgu JZ4780_CLK_NEMC>;
420
+
421
+ status = "disabled";
422
+
423
+ efuse: efuse@d0 {
424
+ reg = <0 0xd0 0x30>;
425
+ compatible = "ingenic,jz4780-efuse";
426
+
427
+ clocks = <&cgu JZ4780_CLK_AHB2>;
428
+
429
+ #address-cells = <1>;
430
+ #size-cells = <1>;
431
+
432
+ eth0_addr: eth-mac-addr@22 {
433
+ reg = <0x22 0x6>;
434
+ };
435
+ };
436
+ };
437
+
267438 dma: dma@13420000 {
268439 compatible = "ingenic,jz4780-dma";
269
- reg = <0x13420000 0x10000>;
440
+ reg = <0x13420000 0x400>, <0x13421000 0x40>;
270441 #dma-cells = <2>;
271442
272443 interrupt-parent = <&intc>;