arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / mips / boot / dts / ingenic / jz4740.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,jz4740-cgu.h>
3 #include <dt-bindings/clock/ingenic,tcu.h>
4
5 / {
6         #address-cells = <1>;
7         #size-cells = <1>;
8         compatible = "ingenic,jz4740";
9
10         cpus {
11                 #address-cells = <1>;
12                 #size-cells = <0>;
13
14                 cpu0: cpu@0 {
15                         device_type = "cpu";
16                         compatible = "ingenic,xburst-mxu1.0";
17                         reg = <0>;
18
19                         clocks = <&cgu JZ4740_CLK_CCLK>;
20                         clock-names = "cpu";
21                 };
22         };
23
24         cpuintc: interrupt-controller {
25                 #address-cells = <0>;
26                 #interrupt-cells = <1>;
27                 interrupt-controller;
28                 compatible = "mti,cpu-interrupt-controller";
29         };
30
31         intc: interrupt-controller@10001000 {
32                 compatible = "ingenic,jz4740-intc";
33                 reg = <0x10001000 0x14>;
34
35                 interrupt-controller;
36                 #interrupt-cells = <1>;
37
38                 interrupt-parent = <&cpuintc>;
39                 interrupts = <2>;
40         };
41
42         ext: ext {
43                 compatible = "fixed-clock";
44                 #clock-cells = <0>;
45         };
46
47         rtc: rtc {
48                 compatible = "fixed-clock";
49                 #clock-cells = <0>;
50                 clock-frequency = <32768>;
51         };
52
53         cgu: jz4740-cgu@10000000 {
54                 compatible = "ingenic,jz4740-cgu";
55                 reg = <0x10000000 0x100>;
56
57                 clocks = <&ext>, <&rtc>;
58                 clock-names = "ext", "rtc";
59
60                 #clock-cells = <1>;
61         };
62
63         tcu: timer@10002000 {
64                 compatible = "ingenic,jz4740-tcu", "simple-mfd";
65                 reg = <0x10002000 0x1000>;
66                 #address-cells = <1>;
67                 #size-cells = <1>;
68                 ranges = <0x0 0x10002000 0x1000>;
69
70                 #clock-cells = <1>;
71
72                 clocks = <&cgu JZ4740_CLK_RTC>,
73                          <&cgu JZ4740_CLK_EXT>,
74                          <&cgu JZ4740_CLK_PCLK>,
75                          <&cgu JZ4740_CLK_TCU>;
76                 clock-names = "rtc", "ext", "pclk", "tcu";
77
78                 interrupt-controller;
79                 #interrupt-cells = <1>;
80
81                 interrupt-parent = <&intc>;
82                 interrupts = <23 22 21>;
83
84                 watchdog: watchdog@0 {
85                         compatible = "ingenic,jz4740-watchdog";
86                         reg = <0x0 0xc>;
87
88                         clocks = <&tcu TCU_CLK_WDT>;
89                         clock-names = "wdt";
90                 };
91
92                 pwm: pwm@40 {
93                         compatible = "ingenic,jz4740-pwm";
94                         reg = <0x40 0x80>;
95
96                         #pwm-cells = <3>;
97
98                         clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
99                                  <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
100                                  <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
101                                  <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
102                         clock-names = "timer0", "timer1", "timer2", "timer3",
103                                       "timer4", "timer5", "timer6", "timer7";
104                 };
105         };
106
107         rtc_dev: rtc@10003000 {
108                 compatible = "ingenic,jz4740-rtc";
109                 reg = <0x10003000 0x40>;
110
111                 interrupt-parent = <&intc>;
112                 interrupts = <15>;
113
114                 clocks = <&cgu JZ4740_CLK_RTC>;
115                 clock-names = "rtc";
116         };
117
118         pinctrl: pin-controller@10010000 {
119                 compatible = "ingenic,jz4740-pinctrl";
120                 reg = <0x10010000 0x400>;
121
122                 #address-cells = <1>;
123                 #size-cells = <0>;
124
125                 gpa: gpio@0 {
126                         compatible = "ingenic,jz4740-gpio";
127                         reg = <0>;
128
129                         gpio-controller;
130                         gpio-ranges = <&pinctrl 0 0 32>;
131                         #gpio-cells = <2>;
132
133                         interrupt-controller;
134                         #interrupt-cells = <2>;
135
136                         interrupt-parent = <&intc>;
137                         interrupts = <28>;
138                 };
139
140                 gpb: gpio@1 {
141                         compatible = "ingenic,jz4740-gpio";
142                         reg = <1>;
143
144                         gpio-controller;
145                         gpio-ranges = <&pinctrl 0 32 32>;
146                         #gpio-cells = <2>;
147
148                         interrupt-controller;
149                         #interrupt-cells = <2>;
150
151                         interrupt-parent = <&intc>;
152                         interrupts = <27>;
153                 };
154
155                 gpc: gpio@2 {
156                         compatible = "ingenic,jz4740-gpio";
157                         reg = <2>;
158
159                         gpio-controller;
160                         gpio-ranges = <&pinctrl 0 64 32>;
161                         #gpio-cells = <2>;
162
163                         interrupt-controller;
164                         #interrupt-cells = <2>;
165
166                         interrupt-parent = <&intc>;
167                         interrupts = <26>;
168                 };
169
170                 gpd: gpio@3 {
171                         compatible = "ingenic,jz4740-gpio";
172                         reg = <3>;
173
174                         gpio-controller;
175                         gpio-ranges = <&pinctrl 0 96 32>;
176                         #gpio-cells = <2>;
177
178                         interrupt-controller;
179                         #interrupt-cells = <2>;
180
181                         interrupt-parent = <&intc>;
182                         interrupts = <25>;
183                 };
184         };
185
186         aic: audio-controller@10020000 {
187                 compatible = "ingenic,jz4740-i2s";
188                 reg = <0x10020000 0x38>;
189
190                 #sound-dai-cells = <0>;
191
192                 interrupt-parent = <&intc>;
193                 interrupts = <18>;
194
195                 clocks = <&cgu JZ4740_CLK_AIC>, <&cgu JZ4740_CLK_I2S>;
196                 clock-names = "aic", "i2s";
197
198                 dmas = <&dmac 25 0xffffffff>, <&dmac 24 0xffffffff>;
199                 dma-names = "rx", "tx";
200         };
201
202         codec: audio-codec@100200a4 {
203                 compatible = "ingenic,jz4740-codec";
204                 reg = <0x10020080 0x8>;
205
206                 #sound-dai-cells = <0>;
207
208                 clocks = <&cgu JZ4740_CLK_AIC>;
209                 clock-names = "aic";
210         };
211
212         mmc: mmc@10021000 {
213                 compatible = "ingenic,jz4740-mmc";
214                 reg = <0x10021000 0x1000>;
215
216                 clocks = <&cgu JZ4740_CLK_MMC>;
217                 clock-names = "mmc";
218
219                 interrupt-parent = <&intc>;
220                 interrupts = <14>;
221
222                 dmas = <&dmac 27 0xffffffff>, <&dmac 26 0xffffffff>;
223                 dma-names = "rx", "tx";
224
225                 cap-sd-highspeed;
226                 cap-mmc-highspeed;
227                 cap-sdio-irq;
228         };
229
230         uart0: serial@10030000 {
231                 compatible = "ingenic,jz4740-uart";
232                 reg = <0x10030000 0x100>;
233
234                 interrupt-parent = <&intc>;
235                 interrupts = <9>;
236
237                 clocks = <&ext>, <&cgu JZ4740_CLK_UART0>;
238                 clock-names = "baud", "module";
239         };
240
241         uart1: serial@10031000 {
242                 compatible = "ingenic,jz4740-uart";
243                 reg = <0x10031000 0x100>;
244
245                 interrupt-parent = <&intc>;
246                 interrupts = <8>;
247
248                 clocks = <&ext>, <&cgu JZ4740_CLK_UART1>;
249                 clock-names = "baud", "module";
250         };
251
252         adc: adc@10070000 {
253                 compatible = "ingenic,jz4740-adc";
254                 reg = <0x10070000 0x30>;
255                 #io-channel-cells = <1>;
256
257                 clocks = <&cgu JZ4740_CLK_ADC>;
258                 clock-names = "adc";
259
260                 interrupt-parent = <&intc>;
261                 interrupts = <12>;
262         };
263
264         nemc: memory-controller@13010000 {
265                 compatible = "ingenic,jz4740-nemc";
266                 reg = <0x13010000 0x54>;
267                 #address-cells = <2>;
268                 #size-cells = <1>;
269                 ranges = <1 0 0x18000000 0x4000000>,
270                          <2 0 0x14000000 0x4000000>,
271                          <3 0 0x0c000000 0x4000000>,
272                          <4 0 0x08000000 0x4000000>;
273
274                 clocks = <&cgu JZ4740_CLK_MCLK>;
275         };
276
277         ecc: ecc-controller@13010100 {
278                 compatible = "ingenic,jz4740-ecc";
279                 reg = <0x13010100 0x2C>;
280
281                 clocks = <&cgu JZ4740_CLK_MCLK>;
282         };
283
284         dmac: dma-controller@13020000 {
285                 compatible = "ingenic,jz4740-dma";
286                 reg = <0x13020000 0xbc>, <0x13020300 0x14>;
287                 #dma-cells = <2>;
288
289                 interrupt-parent = <&intc>;
290                 interrupts = <20>;
291
292                 clocks = <&cgu JZ4740_CLK_DMA>;
293         };
294
295         uhc: usb@13030000 {
296                 compatible = "ingenic,jz4740-ohci", "generic-ohci";
297                 reg = <0x13030000 0x1000>;
298
299                 clocks = <&cgu JZ4740_CLK_UHC>;
300                 assigned-clocks = <&cgu JZ4740_CLK_UHC>;
301                 assigned-clock-rates = <48000000>;
302
303                 interrupt-parent = <&intc>;
304                 interrupts = <3>;
305
306                 status = "disabled";
307         };
308
309         udc: usb@13040000 {
310                 compatible = "ingenic,jz4740-musb";
311                 reg = <0x13040000 0x10000>;
312
313                 interrupt-parent = <&intc>;
314                 interrupts = <24>;
315                 interrupt-names = "mc";
316
317                 clocks = <&cgu JZ4740_CLK_UDC>;
318                 clock-names = "udc";
319         };
320
321         lcd: lcd-controller@13050000 {
322                 compatible = "ingenic,jz4740-lcd";
323                 reg = <0x13050000 0x60>; /* LCDCMD1+4 */
324
325                 interrupt-parent = <&intc>;
326                 interrupts = <30>;
327
328                 clocks = <&cgu JZ4740_CLK_LCD_PCLK>, <&cgu JZ4740_CLK_LCD>;
329                 clock-names = "lcd_pclk", "lcd";
330         };
331 };