8066076053020bc35111cbb9b93e0d0dd5890b77
[platform/kernel/linux-starfive.git] / arch / riscv / boot / dts / starfive / jh7110.dtsi
1 // SPDX-License-Identifier: GPL-2.0 OR MIT
2 /*
3  * Copyright (C) 2022 StarFive Technology Co., Ltd.
4  * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk>
5  */
6
7 /dts-v1/;
8 #include <dt-bindings/clock/starfive,jh7110-crg.h>
9 #include <dt-bindings/power/starfive,jh7110-pmu.h>
10 #include <dt-bindings/reset/starfive,jh7110-crg.h>
11
12 / {
13         compatible = "starfive,jh7110";
14         #address-cells = <2>;
15         #size-cells = <2>;
16
17         cpus {
18                 #address-cells = <1>;
19                 #size-cells = <0>;
20
21                 S7_0: cpu@0 {
22                         compatible = "sifive,s7", "riscv";
23                         reg = <0>;
24                         d-cache-block-size = <64>;
25                         d-cache-sets = <64>;
26                         d-cache-size = <8192>;
27                         d-tlb-sets = <1>;
28                         d-tlb-size = <40>;
29                         device_type = "cpu";
30                         i-cache-block-size = <64>;
31                         i-cache-sets = <64>;
32                         i-cache-size = <16384>;
33                         i-tlb-sets = <1>;
34                         i-tlb-size = <40>;
35                         mmu-type = "riscv,sv39";
36                         next-level-cache = <&ccache>;
37                         riscv,isa = "rv64imac_zba_zbb";
38                         tlb-split;
39                         status = "disabled";
40
41                         cpu0_intc: interrupt-controller {
42                                 compatible = "riscv,cpu-intc";
43                                 interrupt-controller;
44                                 #interrupt-cells = <1>;
45                         };
46                 };
47
48                 U74_1: cpu@1 {
49                         compatible = "sifive,u74-mc", "riscv";
50                         reg = <1>;
51                         d-cache-block-size = <64>;
52                         d-cache-sets = <64>;
53                         d-cache-size = <32768>;
54                         d-tlb-sets = <1>;
55                         d-tlb-size = <40>;
56                         device_type = "cpu";
57                         i-cache-block-size = <64>;
58                         i-cache-sets = <64>;
59                         i-cache-size = <32768>;
60                         i-tlb-sets = <1>;
61                         i-tlb-size = <40>;
62                         mmu-type = "riscv,sv39";
63                         next-level-cache = <&ccache>;
64                         riscv,isa = "rv64imafdc_zba_zbb";
65                         tlb-split;
66
67                         cpu1_intc: interrupt-controller {
68                                 compatible = "riscv,cpu-intc";
69                                 interrupt-controller;
70                                 #interrupt-cells = <1>;
71                         };
72                 };
73
74                 U74_2: cpu@2 {
75                         compatible = "sifive,u74-mc", "riscv";
76                         reg = <2>;
77                         d-cache-block-size = <64>;
78                         d-cache-sets = <64>;
79                         d-cache-size = <32768>;
80                         d-tlb-sets = <1>;
81                         d-tlb-size = <40>;
82                         device_type = "cpu";
83                         i-cache-block-size = <64>;
84                         i-cache-sets = <64>;
85                         i-cache-size = <32768>;
86                         i-tlb-sets = <1>;
87                         i-tlb-size = <40>;
88                         mmu-type = "riscv,sv39";
89                         next-level-cache = <&ccache>;
90                         riscv,isa = "rv64imafdc_zba_zbb";
91                         tlb-split;
92
93                         cpu2_intc: interrupt-controller {
94                                 compatible = "riscv,cpu-intc";
95                                 interrupt-controller;
96                                 #interrupt-cells = <1>;
97                         };
98                 };
99
100                 U74_3: cpu@3 {
101                         compatible = "sifive,u74-mc", "riscv";
102                         reg = <3>;
103                         d-cache-block-size = <64>;
104                         d-cache-sets = <64>;
105                         d-cache-size = <32768>;
106                         d-tlb-sets = <1>;
107                         d-tlb-size = <40>;
108                         device_type = "cpu";
109                         i-cache-block-size = <64>;
110                         i-cache-sets = <64>;
111                         i-cache-size = <32768>;
112                         i-tlb-sets = <1>;
113                         i-tlb-size = <40>;
114                         mmu-type = "riscv,sv39";
115                         next-level-cache = <&ccache>;
116                         riscv,isa = "rv64imafdc_zba_zbb";
117                         tlb-split;
118
119                         cpu3_intc: interrupt-controller {
120                                 compatible = "riscv,cpu-intc";
121                                 interrupt-controller;
122                                 #interrupt-cells = <1>;
123                         };
124                 };
125
126                 U74_4: cpu@4 {
127                         compatible = "sifive,u74-mc", "riscv";
128                         reg = <4>;
129                         d-cache-block-size = <64>;
130                         d-cache-sets = <64>;
131                         d-cache-size = <32768>;
132                         d-tlb-sets = <1>;
133                         d-tlb-size = <40>;
134                         device_type = "cpu";
135                         i-cache-block-size = <64>;
136                         i-cache-sets = <64>;
137                         i-cache-size = <32768>;
138                         i-tlb-sets = <1>;
139                         i-tlb-size = <40>;
140                         mmu-type = "riscv,sv39";
141                         next-level-cache = <&ccache>;
142                         riscv,isa = "rv64imafdc_zba_zbb";
143                         tlb-split;
144
145                         cpu4_intc: interrupt-controller {
146                                 compatible = "riscv,cpu-intc";
147                                 interrupt-controller;
148                                 #interrupt-cells = <1>;
149                         };
150                 };
151
152                 cpu-map {
153                         cluster0 {
154                                 core0 {
155                                         cpu = <&S7_0>;
156                                 };
157
158                                 core1 {
159                                         cpu = <&U74_1>;
160                                 };
161
162                                 core2 {
163                                         cpu = <&U74_2>;
164                                 };
165
166                                 core3 {
167                                         cpu = <&U74_3>;
168                                 };
169
170                                 core4 {
171                                         cpu = <&U74_4>;
172                                 };
173                         };
174                 };
175         };
176
177         dvp_clk: dvp-clock {
178                 compatible = "fixed-clock";
179                 clock-output-names = "dvp_clk";
180                 #clock-cells = <0>;
181         };
182
183         gmac0_rgmii_rxin: gmac0-rgmii-rxin-clock {
184                 compatible = "fixed-clock";
185                 clock-output-names = "gmac0_rgmii_rxin";
186                 #clock-cells = <0>;
187         };
188
189         gmac0_rmii_refin: gmac0-rmii-refin-clock {
190                 compatible = "fixed-clock";
191                 clock-output-names = "gmac0_rmii_refin";
192                 #clock-cells = <0>;
193         };
194
195         gmac1_rgmii_rxin: gmac1-rgmii-rxin-clock {
196                 compatible = "fixed-clock";
197                 clock-output-names = "gmac1_rgmii_rxin";
198                 #clock-cells = <0>;
199         };
200
201         gmac1_rmii_refin: gmac1-rmii-refin-clock {
202                 compatible = "fixed-clock";
203                 clock-output-names = "gmac1_rmii_refin";
204                 #clock-cells = <0>;
205         };
206
207         hdmitx0_pixelclk: hdmitx0-pixel-clock {
208                 compatible = "fixed-clock";
209                 clock-output-names = "hdmitx0_pixelclk";
210                 #clock-cells = <0>;
211         };
212
213         i2srx_bclk_ext: i2srx-bclk-ext-clock {
214                 compatible = "fixed-clock";
215                 clock-output-names = "i2srx_bclk_ext";
216                 #clock-cells = <0>;
217         };
218
219         i2srx_lrck_ext: i2srx-lrck-ext-clock {
220                 compatible = "fixed-clock";
221                 clock-output-names = "i2srx_lrck_ext";
222                 #clock-cells = <0>;
223         };
224
225         i2stx_bclk_ext: i2stx-bclk-ext-clock {
226                 compatible = "fixed-clock";
227                 clock-output-names = "i2stx_bclk_ext";
228                 #clock-cells = <0>;
229         };
230
231         i2stx_lrck_ext: i2stx-lrck-ext-clock {
232                 compatible = "fixed-clock";
233                 clock-output-names = "i2stx_lrck_ext";
234                 #clock-cells = <0>;
235         };
236
237         mclk_ext: mclk-ext-clock {
238                 compatible = "fixed-clock";
239                 clock-output-names = "mclk_ext";
240                 #clock-cells = <0>;
241         };
242
243         osc: oscillator {
244                 compatible = "fixed-clock";
245                 clock-output-names = "osc";
246                 #clock-cells = <0>;
247         };
248
249         rtc_osc: rtc-oscillator {
250                 compatible = "fixed-clock";
251                 clock-output-names = "rtc_osc";
252                 #clock-cells = <0>;
253         };
254
255         stmmac_axi_setup: stmmac-axi-config {
256                 snps,lpi_en;
257                 snps,wr_osr_lmt = <4>;
258                 snps,rd_osr_lmt = <4>;
259                 snps,blen = <256 128 64 32 0 0 0>;
260         };
261
262         tdm_ext: tdm-ext-clock {
263                 compatible = "fixed-clock";
264                 clock-output-names = "tdm_ext";
265                 #clock-cells = <0>;
266         };
267
268         soc {
269                 compatible = "simple-bus";
270                 interrupt-parent = <&plic>;
271                 #address-cells = <2>;
272                 #size-cells = <2>;
273                 ranges;
274
275                 clint: timer@2000000 {
276                         compatible = "starfive,jh7110-clint", "sifive,clint0";
277                         reg = <0x0 0x2000000 0x0 0x10000>;
278                         interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
279                                               <&cpu1_intc 3>, <&cpu1_intc 7>,
280                                               <&cpu2_intc 3>, <&cpu2_intc 7>,
281                                               <&cpu3_intc 3>, <&cpu3_intc 7>,
282                                               <&cpu4_intc 3>, <&cpu4_intc 7>;
283                 };
284
285                 ccache: cache-controller@2010000 {
286                         compatible = "starfive,jh7110-ccache", "sifive,ccache0", "cache";
287                         reg = <0x0 0x2010000 0x0 0x4000>;
288                         interrupts = <1>, <3>, <4>, <2>;
289                         cache-block-size = <64>;
290                         cache-level = <2>;
291                         cache-sets = <2048>;
292                         cache-size = <2097152>;
293                         cache-unified;
294                 };
295
296                 plic: interrupt-controller@c000000 {
297                         compatible = "starfive,jh7110-plic", "sifive,plic-1.0.0";
298                         reg = <0x0 0xc000000 0x0 0x4000000>;
299                         interrupts-extended = <&cpu0_intc 11>,
300                                               <&cpu1_intc 11>, <&cpu1_intc 9>,
301                                               <&cpu2_intc 11>, <&cpu2_intc 9>,
302                                               <&cpu3_intc 11>, <&cpu3_intc 9>,
303                                               <&cpu4_intc 11>, <&cpu4_intc 9>;
304                         interrupt-controller;
305                         #interrupt-cells = <1>;
306                         #address-cells = <0>;
307                         riscv,ndev = <136>;
308                 };
309
310                 uart0: serial@10000000 {
311                         compatible = "snps,dw-apb-uart";
312                         reg = <0x0 0x10000000 0x0 0x10000>;
313                         clocks = <&syscrg JH7110_SYSCLK_UART0_CORE>,
314                                  <&syscrg JH7110_SYSCLK_UART0_APB>;
315                         clock-names = "baudclk", "apb_pclk";
316                         resets = <&syscrg JH7110_SYSRST_UART0_APB>;
317                         interrupts = <32>;
318                         reg-io-width = <4>;
319                         reg-shift = <2>;
320                         status = "disabled";
321                 };
322
323                 uart1: serial@10010000 {
324                         compatible = "snps,dw-apb-uart";
325                         reg = <0x0 0x10010000 0x0 0x10000>;
326                         clocks = <&syscrg JH7110_SYSCLK_UART1_CORE>,
327                                  <&syscrg JH7110_SYSCLK_UART1_APB>;
328                         clock-names = "baudclk", "apb_pclk";
329                         resets = <&syscrg JH7110_SYSRST_UART1_APB>;
330                         interrupts = <33>;
331                         reg-io-width = <4>;
332                         reg-shift = <2>;
333                         status = "disabled";
334                 };
335
336                 uart2: serial@10020000 {
337                         compatible = "snps,dw-apb-uart";
338                         reg = <0x0 0x10020000 0x0 0x10000>;
339                         clocks = <&syscrg JH7110_SYSCLK_UART2_CORE>,
340                                  <&syscrg JH7110_SYSCLK_UART2_APB>;
341                         clock-names = "baudclk", "apb_pclk";
342                         resets = <&syscrg JH7110_SYSRST_UART2_APB>;
343                         interrupts = <34>;
344                         reg-io-width = <4>;
345                         reg-shift = <2>;
346                         status = "disabled";
347                 };
348
349                 i2c0: i2c@10030000 {
350                         compatible = "snps,designware-i2c";
351                         reg = <0x0 0x10030000 0x0 0x10000>;
352                         clocks = <&syscrg JH7110_SYSCLK_I2C0_APB>;
353                         clock-names = "ref";
354                         resets = <&syscrg JH7110_SYSRST_I2C0_APB>;
355                         interrupts = <35>;
356                         #address-cells = <1>;
357                         #size-cells = <0>;
358                         status = "disabled";
359                 };
360
361                 i2c1: i2c@10040000 {
362                         compatible = "snps,designware-i2c";
363                         reg = <0x0 0x10040000 0x0 0x10000>;
364                         clocks = <&syscrg JH7110_SYSCLK_I2C1_APB>;
365                         clock-names = "ref";
366                         resets = <&syscrg JH7110_SYSRST_I2C1_APB>;
367                         interrupts = <36>;
368                         #address-cells = <1>;
369                         #size-cells = <0>;
370                         status = "disabled";
371                 };
372
373                 i2c2: i2c@10050000 {
374                         compatible = "snps,designware-i2c";
375                         reg = <0x0 0x10050000 0x0 0x10000>;
376                         clocks = <&syscrg JH7110_SYSCLK_I2C2_APB>;
377                         clock-names = "ref";
378                         resets = <&syscrg JH7110_SYSRST_I2C2_APB>;
379                         interrupts = <37>;
380                         #address-cells = <1>;
381                         #size-cells = <0>;
382                         status = "disabled";
383                 };
384
385                 stgcrg: clock-controller@10230000 {
386                         compatible = "starfive,jh7110-stgcrg";
387                         reg = <0x0 0x10230000 0x0 0x10000>;
388                         clocks = <&osc>,
389                                  <&syscrg JH7110_SYSCLK_HIFI4_CORE>,
390                                  <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
391                                  <&syscrg JH7110_SYSCLK_USB_125M>,
392                                  <&syscrg JH7110_SYSCLK_CPU_BUS>,
393                                  <&syscrg JH7110_SYSCLK_HIFI4_AXI>,
394                                  <&syscrg JH7110_SYSCLK_NOCSTG_BUS>,
395                                  <&syscrg JH7110_SYSCLK_APB_BUS>;
396                         clock-names = "osc", "hifi4_core",
397                                       "stg_axiahb", "usb_125m",
398                                       "cpu_bus", "hifi4_axi",
399                                       "nocstg_bus", "apb_bus";
400                         #clock-cells = <1>;
401                         #reset-cells = <1>;
402                 };
403
404                 stg_syscon: syscon@10240000 {
405                         compatible = "starfive,jh7110-stg-syscon", "syscon";
406                         reg = <0x0 0x10240000 0x0 0x1000>;
407                 };
408
409                 uart3: serial@12000000 {
410                         compatible = "snps,dw-apb-uart";
411                         reg = <0x0 0x12000000 0x0 0x10000>;
412                         clocks = <&syscrg JH7110_SYSCLK_UART3_CORE>,
413                                  <&syscrg JH7110_SYSCLK_UART3_APB>;
414                         clock-names = "baudclk", "apb_pclk";
415                         resets = <&syscrg JH7110_SYSRST_UART3_APB>;
416                         interrupts = <45>;
417                         reg-io-width = <4>;
418                         reg-shift = <2>;
419                         status = "disabled";
420                 };
421
422                 uart4: serial@12010000 {
423                         compatible = "snps,dw-apb-uart";
424                         reg = <0x0 0x12010000 0x0 0x10000>;
425                         clocks = <&syscrg JH7110_SYSCLK_UART4_CORE>,
426                                  <&syscrg JH7110_SYSCLK_UART4_APB>;
427                         clock-names = "baudclk", "apb_pclk";
428                         resets = <&syscrg JH7110_SYSRST_UART4_APB>;
429                         interrupts = <46>;
430                         reg-io-width = <4>;
431                         reg-shift = <2>;
432                         status = "disabled";
433                 };
434
435                 uart5: serial@12020000 {
436                         compatible = "snps,dw-apb-uart";
437                         reg = <0x0 0x12020000 0x0 0x10000>;
438                         clocks = <&syscrg JH7110_SYSCLK_UART5_CORE>,
439                                  <&syscrg JH7110_SYSCLK_UART5_APB>;
440                         clock-names = "baudclk", "apb_pclk";
441                         resets = <&syscrg JH7110_SYSRST_UART5_APB>;
442                         interrupts = <47>;
443                         reg-io-width = <4>;
444                         reg-shift = <2>;
445                         status = "disabled";
446                 };
447
448                 i2c3: i2c@12030000 {
449                         compatible = "snps,designware-i2c";
450                         reg = <0x0 0x12030000 0x0 0x10000>;
451                         clocks = <&syscrg JH7110_SYSCLK_I2C3_APB>;
452                         clock-names = "ref";
453                         resets = <&syscrg JH7110_SYSRST_I2C3_APB>;
454                         interrupts = <48>;
455                         #address-cells = <1>;
456                         #size-cells = <0>;
457                         status = "disabled";
458                 };
459
460                 i2c4: i2c@12040000 {
461                         compatible = "snps,designware-i2c";
462                         reg = <0x0 0x12040000 0x0 0x10000>;
463                         clocks = <&syscrg JH7110_SYSCLK_I2C4_APB>;
464                         clock-names = "ref";
465                         resets = <&syscrg JH7110_SYSRST_I2C4_APB>;
466                         interrupts = <49>;
467                         #address-cells = <1>;
468                         #size-cells = <0>;
469                         status = "disabled";
470                 };
471
472                 i2c5: i2c@12050000 {
473                         compatible = "snps,designware-i2c";
474                         reg = <0x0 0x12050000 0x0 0x10000>;
475                         clocks = <&syscrg JH7110_SYSCLK_I2C5_APB>;
476                         clock-names = "ref";
477                         resets = <&syscrg JH7110_SYSRST_I2C5_APB>;
478                         interrupts = <50>;
479                         #address-cells = <1>;
480                         #size-cells = <0>;
481                         status = "disabled";
482                 };
483
484                 i2c6: i2c@12060000 {
485                         compatible = "snps,designware-i2c";
486                         reg = <0x0 0x12060000 0x0 0x10000>;
487                         clocks = <&syscrg JH7110_SYSCLK_I2C6_APB>;
488                         clock-names = "ref";
489                         resets = <&syscrg JH7110_SYSRST_I2C6_APB>;
490                         interrupts = <51>;
491                         #address-cells = <1>;
492                         #size-cells = <0>;
493                         status = "disabled";
494                 };
495
496                 ptc: pwm@120d0000 {
497                         compatible = "starfive,jh7110-pwm";
498                         reg = <0x0 0x120d0000 0x0 0x10000>;
499                         clocks = <&syscrg JH7110_SYSCLK_PWM_APB>;
500                         resets = <&syscrg JH7110_SYSRST_PWM_APB>;
501                         #pwm-cells=<3>;
502                         status = "disabled";
503                 };
504
505                 qspi: spi@13010000 {
506                         compatible = "starfive,jh7110-qspi", "cdns,qspi-nor";
507                         #address-cells = <1>;
508                         #size-cells = <0>;
509                         reg = <0x0 0x13010000 0x0 0x10000
510                                0x0 0x21000000 0x0 0x400000>;
511                         interrupts = <25>;
512                         clocks = <&syscrg JH7110_SYSCLK_QSPI_REF>;
513                         resets = <&syscrg JH7110_SYSRST_QSPI_APB>,
514                                  <&syscrg JH7110_SYSRST_QSPI_AHB>,
515                                  <&syscrg JH7110_SYSRST_QSPI_REF>;
516                         reset-names = "qspi", "qspi-ocp", "rstc_ref";
517                         cdns,fifo-depth = <256>;
518                         cdns,fifo-width = <4>;
519                         cdns,trigger-address = <0x0>;
520
521                         nor_flash: nor-flash@0 {
522                                 compatible = "jedec,spi-nor";
523                                 reg=<0>;
524                                 cdns,read-delay = <5>;
525                                 spi-max-frequency = <12000000>;
526                                 cdns,tshsl-ns = <1>;
527                                 cdns,tsd2d-ns = <1>;
528                                 cdns,tchsh-ns = <1>;
529                                 cdns,tslch-ns = <1>;
530
531                                 partitions {
532                                         compatible = "fixed-partitions";
533                                         #address-cells = <1>;
534                                         #size-cells = <1>;
535
536                                         spl@0 {
537                                                 reg = <0x0 0x20000>;
538                                         };
539                                         uboot@100000 {
540                                                 reg = <0x100000 0x300000>;
541                                         };
542                                         data@f00000 {
543                                                 reg = <0xf00000 0x100000>;
544                                         };
545                                 };
546                         };
547                 };
548
549                 syscrg: clock-controller@13020000 {
550                         compatible = "starfive,jh7110-syscrg";
551                         reg = <0x0 0x13020000 0x0 0x10000>;
552                         clocks = <&osc>, <&gmac1_rmii_refin>,
553                                  <&gmac1_rgmii_rxin>,
554                                  <&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
555                                  <&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
556                                  <&tdm_ext>, <&mclk_ext>,
557                                  <&pllclk JH7110_CLK_PLL0_OUT>,
558                                  <&pllclk JH7110_CLK_PLL1_OUT>,
559                                  <&pllclk JH7110_CLK_PLL2_OUT>;
560                         clock-names = "osc", "gmac1_rmii_refin",
561                                       "gmac1_rgmii_rxin",
562                                       "i2stx_bclk_ext", "i2stx_lrck_ext",
563                                       "i2srx_bclk_ext", "i2srx_lrck_ext",
564                                       "tdm_ext", "mclk_ext",
565                                       "pll0_out", "pll1_out", "pll2_out";
566                         #clock-cells = <1>;
567                         #reset-cells = <1>;
568                 };
569
570                 sys_syscon: syscon@13030000 {
571                         compatible = "starfive,jh7110-sys-syscon", "syscon", "simple-mfd";
572                         reg = <0x0 0x13030000 0x0 0x1000>;
573
574                         pllclk: pll-clock-controller {
575                                 compatible = "starfive,jh7110-pll";
576                                 clocks = <&osc>;
577                                 #clock-cells = <1>;
578                         };
579                 };
580
581                 sysgpio: pinctrl@13040000 {
582                         compatible = "starfive,jh7110-sys-pinctrl";
583                         reg = <0x0 0x13040000 0x0 0x10000>;
584                         clocks = <&syscrg JH7110_SYSCLK_IOMUX_APB>;
585                         resets = <&syscrg JH7110_SYSRST_IOMUX_APB>;
586                         interrupts = <86>;
587                         interrupt-controller;
588                         #interrupt-cells = <2>;
589                         gpio-controller;
590                         #gpio-cells = <2>;
591                 };
592
593                 timer@13050000 {
594                         compatible = "starfive,jh7110-timer";
595                         reg = <0x0 0x13050000 0x0 0x10000>;
596                         interrupts = <69>, <70>, <71> ,<72>;
597                         clocks = <&syscrg JH7110_SYSCLK_TIMER_APB>,
598                                  <&syscrg JH7110_SYSCLK_TIMER0>,
599                                  <&syscrg JH7110_SYSCLK_TIMER1>,
600                                  <&syscrg JH7110_SYSCLK_TIMER2>,
601                                  <&syscrg JH7110_SYSCLK_TIMER3>;
602                         clock-names = "apb", "ch0", "ch1",
603                                       "ch2", "ch3";
604                         resets = <&syscrg JH7110_SYSRST_TIMER_APB>,
605                                  <&syscrg JH7110_SYSRST_TIMER0>,
606                                  <&syscrg JH7110_SYSRST_TIMER1>,
607                                  <&syscrg JH7110_SYSRST_TIMER2>,
608                                  <&syscrg JH7110_SYSRST_TIMER3>;
609                         reset-names = "apb", "ch0", "ch1",
610                                       "ch2", "ch3";
611                 };
612
613                 wdog: watchdog@13070000 {
614                         compatible = "starfive,jh7110-wdt";
615                         reg = <0x0 0x13070000 0x0 0x10000>;
616                         clocks = <&syscrg JH7110_SYSCLK_WDT_APB>,
617                                  <&syscrg JH7110_SYSCLK_WDT_CORE>;
618                         clock-names = "apb", "core";
619                         resets = <&syscrg JH7110_SYSRST_WDT_APB>,
620                                  <&syscrg JH7110_SYSRST_WDT_CORE>;
621                 };
622
623                 mmc0: mmc@16010000 {
624                         compatible = "starfive,jh7110-mmc";
625                         reg = <0x0 0x16010000 0x0 0x10000>;
626                         clocks = <&syscrg JH7110_SYSCLK_SDIO0_AHB>,
627                                  <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>;
628                         clock-names = "biu","ciu";
629                         resets = <&syscrg JH7110_SYSRST_SDIO0_AHB>;
630                         reset-names = "reset";
631                         interrupts = <74>;
632                         fifo-depth = <32>;
633                         fifo-watermark-aligned;
634                         data-addr = <0>;
635                         starfive,sysreg = <&sys_syscon 0x14 0x1a 0x7c000000>;
636                         status = "disabled";
637                 };
638
639                 mmc1: mmc@16020000 {
640                         compatible = "starfive,jh7110-mmc";
641                         reg = <0x0 0x16020000 0x0 0x10000>;
642                         clocks = <&syscrg JH7110_SYSCLK_SDIO1_AHB>,
643                                  <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>;
644                         clock-names = "biu","ciu";
645                         resets = <&syscrg JH7110_SYSRST_SDIO1_AHB>;
646                         reset-names = "reset";
647                         interrupts = <75>;
648                         fifo-depth = <32>;
649                         fifo-watermark-aligned;
650                         data-addr = <0>;
651                         starfive,sysreg = <&sys_syscon 0x9c 0x1 0x3e>;
652                         status = "disabled";
653                 };
654
655                 gmac0: ethernet@16030000 {
656                         compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
657                         reg = <0x0 0x16030000 0x0 0x10000>;
658                         clocks = <&aoncrg JH7110_AONCLK_GMAC0_AXI>,
659                                  <&aoncrg JH7110_AONCLK_GMAC0_AHB>,
660                                  <&syscrg JH7110_SYSCLK_GMAC0_PTP>,
661                                  <&aoncrg JH7110_AONCLK_GMAC0_TX_INV>,
662                                  <&syscrg JH7110_SYSCLK_GMAC0_GTXC>;
663                         clock-names = "stmmaceth", "pclk", "ptp_ref",
664                                       "tx", "gtx";
665                         resets = <&aoncrg JH7110_AONRST_GMAC0_AXI>,
666                                  <&aoncrg JH7110_AONRST_GMAC0_AHB>;
667                         reset-names = "stmmaceth", "ahb";
668                         interrupts = <7>, <6>, <5>;
669                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
670                         snps,multicast-filter-bins = <64>;
671                         snps,perfect-filter-entries = <8>;
672                         rx-fifo-depth = <2048>;
673                         tx-fifo-depth = <2048>;
674                         snps,fixed-burst;
675                         snps,no-pbl-x8;
676                         snps,force_thresh_dma_mode;
677                         snps,axi-config = <&stmmac_axi_setup>;
678                         snps,tso;
679                         snps,en-tx-lpi-clockgating;
680                         snps,txpbl = <16>;
681                         snps,rxpbl = <16>;
682                         starfive,syscon = <&aon_syscon 0xc 0x12>;
683                         status = "disabled";
684                 };
685
686                 gmac1: ethernet@16040000 {
687                         compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
688                         reg = <0x0 0x16040000 0x0 0x10000>;
689                         clocks = <&syscrg JH7110_SYSCLK_GMAC1_AXI>,
690                                  <&syscrg JH7110_SYSCLK_GMAC1_AHB>,
691                                  <&syscrg JH7110_SYSCLK_GMAC1_PTP>,
692                                  <&syscrg JH7110_SYSCLK_GMAC1_TX_INV>,
693                                  <&syscrg JH7110_SYSCLK_GMAC1_GTXC>;
694                         clock-names = "stmmaceth", "pclk", "ptp_ref",
695                                       "tx", "gtx";
696                         resets = <&syscrg JH7110_SYSRST_GMAC1_AXI>,
697                                  <&syscrg JH7110_SYSRST_GMAC1_AHB>;
698                         reset-names = "stmmaceth", "ahb";
699                         interrupts = <78>, <77>, <76>;
700                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
701                         snps,multicast-filter-bins = <64>;
702                         snps,perfect-filter-entries = <8>;
703                         rx-fifo-depth = <2048>;
704                         tx-fifo-depth = <2048>;
705                         snps,fixed-burst;
706                         snps,no-pbl-x8;
707                         snps,force_thresh_dma_mode;
708                         snps,axi-config = <&stmmac_axi_setup>;
709                         snps,tso;
710                         snps,en-tx-lpi-clockgating;
711                         snps,txpbl = <16>;
712                         snps,rxpbl = <16>;
713                         starfive,syscon = <&sys_syscon 0x90 0x2>;
714                         status = "disabled";
715                 };
716
717                 aoncrg: clock-controller@17000000 {
718                         compatible = "starfive,jh7110-aoncrg";
719                         reg = <0x0 0x17000000 0x0 0x10000>;
720                         clocks = <&osc>, <&gmac0_rmii_refin>,
721                                  <&gmac0_rgmii_rxin>,
722                                  <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
723                                  <&syscrg JH7110_SYSCLK_APB_BUS>,
724                                  <&syscrg JH7110_SYSCLK_GMAC0_GTXCLK>,
725                                  <&rtc_osc>;
726                         clock-names = "osc", "gmac0_rmii_refin",
727                                       "gmac0_rgmii_rxin", "stg_axiahb",
728                                       "apb_bus", "gmac0_gtxclk",
729                                       "rtc_osc";
730                         #clock-cells = <1>;
731                         #reset-cells = <1>;
732                 };
733
734                 aon_syscon: syscon@17010000 {
735                         compatible = "starfive,jh7110-aon-syscon", "syscon";
736                         reg = <0x0 0x17010000 0x0 0x1000>;
737                 };
738
739                 aongpio: pinctrl@17020000 {
740                         compatible = "starfive,jh7110-aon-pinctrl";
741                         reg = <0x0 0x17020000 0x0 0x10000>;
742                         resets = <&aoncrg JH7110_AONRST_IOMUX>;
743                         interrupts = <85>;
744                         interrupt-controller;
745                         #interrupt-cells = <2>;
746                         gpio-controller;
747                         #gpio-cells = <2>;
748                 };
749
750                 pwrc: power-controller@17030000 {
751                         compatible = "starfive,jh7110-pmu";
752                         reg = <0x0 0x17030000 0x0 0x10000>;
753                         interrupts = <111>;
754                         #power-domain-cells = <1>;
755                 };
756
757                 ispcrg: clock-controller@19810000 {
758                         compatible = "starfive,jh7110-ispcrg";
759                         reg = <0x0 0x19810000 0x0 0x10000>;
760                         clocks = <&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
761                                  <&syscrg JH7110_SYSCLK_ISP_TOP_AXI>,
762                                  <&syscrg JH7110_SYSCLK_NOC_BUS_ISP_AXI>,
763                                  <&dvp_clk>;
764                         clock-names = "isp_top_core", "isp_top_axi",
765                                       "noc_bus_isp_axi", "dvp_clk";
766                         resets = <&syscrg JH7110_SYSRST_ISP_TOP>,
767                                  <&syscrg JH7110_SYSRST_ISP_TOP_AXI>,
768                                  <&syscrg JH7110_SYSRST_NOC_BUS_ISP_AXI>;
769                         #clock-cells = <1>;
770                         #reset-cells = <1>;
771                         power-domains = <&pwrc JH7110_PD_ISP>;
772                 };
773
774                 voutcrg: clock-controller@295c0000 {
775                         compatible = "starfive,jh7110-voutcrg";
776                         reg = <0x0 0x295c0000 0x0 0x10000>;
777                         clocks = <&syscrg JH7110_SYSCLK_VOUT_SRC>,
778                                  <&syscrg JH7110_SYSCLK_VOUT_TOP_AHB>,
779                                  <&syscrg JH7110_SYSCLK_VOUT_TOP_AXI>,
780                                  <&syscrg JH7110_SYSCLK_VOUT_TOP_HDMITX0_MCLK>,
781                                  <&syscrg JH7110_SYSCLK_I2STX0_BCLK>,
782                                  <&hdmitx0_pixelclk>;
783                         clock-names = "vout_src", "vout_top_ahb",
784                                       "vout_top_axi", "vout_top_hdmitx0_mclk",
785                                       "i2stx0_bclk", "hdmitx0_pixelclk";
786                         resets = <&syscrg JH7110_SYSRST_VOUT_TOP_SRC>;
787                         #clock-cells = <1>;
788                         #reset-cells = <1>;
789                         power-domains = <&pwrc JH7110_PD_VOUT>;
790                 };
791         };
792 };