~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/riscv/boot/dts/starfive/jh7110.dtsi

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 #include <dt-bindings/thermal/thermal.h>
 12 
 13 / {
 14         compatible = "starfive,jh7110";
 15         #address-cells = <2>;
 16         #size-cells = <2>;
 17 
 18         cpus: cpus {
 19                 #address-cells = <1>;
 20                 #size-cells = <0>;
 21 
 22                 S7_0: cpu@0 {
 23                         compatible = "sifive,s7", "riscv";
 24                         reg = <0>;
 25                         device_type = "cpu";
 26                         i-cache-block-size = <64>;
 27                         i-cache-sets = <64>;
 28                         i-cache-size = <16384>;
 29                         next-level-cache = <&ccache>;
 30                         riscv,isa = "rv64imac_zba_zbb";
 31                         riscv,isa-base = "rv64i";
 32                         riscv,isa-extensions = "i", "m", "a", "c", "zba", "zbb", "zicntr", "zicsr",
 33                                                "zifencei", "zihpm";
 34                         status = "disabled";
 35 
 36                         cpu0_intc: interrupt-controller {
 37                                 compatible = "riscv,cpu-intc";
 38                                 interrupt-controller;
 39                                 #interrupt-cells = <1>;
 40                         };
 41                 };
 42 
 43                 U74_1: cpu@1 {
 44                         compatible = "sifive,u74-mc", "riscv";
 45                         reg = <1>;
 46                         d-cache-block-size = <64>;
 47                         d-cache-sets = <64>;
 48                         d-cache-size = <32768>;
 49                         d-tlb-sets = <1>;
 50                         d-tlb-size = <40>;
 51                         device_type = "cpu";
 52                         i-cache-block-size = <64>;
 53                         i-cache-sets = <64>;
 54                         i-cache-size = <32768>;
 55                         i-tlb-sets = <1>;
 56                         i-tlb-size = <40>;
 57                         mmu-type = "riscv,sv39";
 58                         next-level-cache = <&ccache>;
 59                         riscv,isa = "rv64imafdc_zba_zbb";
 60                         riscv,isa-base = "rv64i";
 61                         riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zicntr",
 62                                                "zicsr", "zifencei", "zihpm";
 63                         tlb-split;
 64                         operating-points-v2 = <&cpu_opp>;
 65                         clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
 66                         clock-names = "cpu";
 67                         #cooling-cells = <2>;
 68 
 69                         cpu1_intc: interrupt-controller {
 70                                 compatible = "riscv,cpu-intc";
 71                                 interrupt-controller;
 72                                 #interrupt-cells = <1>;
 73                         };
 74                 };
 75 
 76                 U74_2: cpu@2 {
 77                         compatible = "sifive,u74-mc", "riscv";
 78                         reg = <2>;
 79                         d-cache-block-size = <64>;
 80                         d-cache-sets = <64>;
 81                         d-cache-size = <32768>;
 82                         d-tlb-sets = <1>;
 83                         d-tlb-size = <40>;
 84                         device_type = "cpu";
 85                         i-cache-block-size = <64>;
 86                         i-cache-sets = <64>;
 87                         i-cache-size = <32768>;
 88                         i-tlb-sets = <1>;
 89                         i-tlb-size = <40>;
 90                         mmu-type = "riscv,sv39";
 91                         next-level-cache = <&ccache>;
 92                         riscv,isa = "rv64imafdc_zba_zbb";
 93                         riscv,isa-base = "rv64i";
 94                         riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zicntr",
 95                                                "zicsr", "zifencei", "zihpm";
 96                         tlb-split;
 97                         operating-points-v2 = <&cpu_opp>;
 98                         clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
 99                         clock-names = "cpu";
100                         #cooling-cells = <2>;
101 
102                         cpu2_intc: interrupt-controller {
103                                 compatible = "riscv,cpu-intc";
104                                 interrupt-controller;
105                                 #interrupt-cells = <1>;
106                         };
107                 };
108 
109                 U74_3: cpu@3 {
110                         compatible = "sifive,u74-mc", "riscv";
111                         reg = <3>;
112                         d-cache-block-size = <64>;
113                         d-cache-sets = <64>;
114                         d-cache-size = <32768>;
115                         d-tlb-sets = <1>;
116                         d-tlb-size = <40>;
117                         device_type = "cpu";
118                         i-cache-block-size = <64>;
119                         i-cache-sets = <64>;
120                         i-cache-size = <32768>;
121                         i-tlb-sets = <1>;
122                         i-tlb-size = <40>;
123                         mmu-type = "riscv,sv39";
124                         next-level-cache = <&ccache>;
125                         riscv,isa = "rv64imafdc_zba_zbb";
126                         riscv,isa-base = "rv64i";
127                         riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zicntr",
128                                                "zicsr", "zifencei", "zihpm";
129                         tlb-split;
130                         operating-points-v2 = <&cpu_opp>;
131                         clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
132                         clock-names = "cpu";
133                         #cooling-cells = <2>;
134 
135                         cpu3_intc: interrupt-controller {
136                                 compatible = "riscv,cpu-intc";
137                                 interrupt-controller;
138                                 #interrupt-cells = <1>;
139                         };
140                 };
141 
142                 U74_4: cpu@4 {
143                         compatible = "sifive,u74-mc", "riscv";
144                         reg = <4>;
145                         d-cache-block-size = <64>;
146                         d-cache-sets = <64>;
147                         d-cache-size = <32768>;
148                         d-tlb-sets = <1>;
149                         d-tlb-size = <40>;
150                         device_type = "cpu";
151                         i-cache-block-size = <64>;
152                         i-cache-sets = <64>;
153                         i-cache-size = <32768>;
154                         i-tlb-sets = <1>;
155                         i-tlb-size = <40>;
156                         mmu-type = "riscv,sv39";
157                         next-level-cache = <&ccache>;
158                         riscv,isa = "rv64imafdc_zba_zbb";
159                         riscv,isa-base = "rv64i";
160                         riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zicntr",
161                                                "zicsr", "zifencei", "zihpm";
162                         tlb-split;
163                         operating-points-v2 = <&cpu_opp>;
164                         clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
165                         clock-names = "cpu";
166                         #cooling-cells = <2>;
167 
168                         cpu4_intc: interrupt-controller {
169                                 compatible = "riscv,cpu-intc";
170                                 interrupt-controller;
171                                 #interrupt-cells = <1>;
172                         };
173                 };
174 
175                 cpu-map {
176                         cluster0 {
177                                 core0 {
178                                         cpu = <&S7_0>;
179                                 };
180 
181                                 core1 {
182                                         cpu = <&U74_1>;
183                                 };
184 
185                                 core2 {
186                                         cpu = <&U74_2>;
187                                 };
188 
189                                 core3 {
190                                         cpu = <&U74_3>;
191                                 };
192 
193                                 core4 {
194                                         cpu = <&U74_4>;
195                                 };
196                         };
197                 };
198         };
199 
200         cpu_opp: opp-table-0 {
201                         compatible = "operating-points-v2";
202                         opp-shared;
203                         opp-375000000 {
204                                         opp-hz = /bits/ 64 <375000000>;
205                                         opp-microvolt = <800000>;
206                         };
207                         opp-500000000 {
208                                         opp-hz = /bits/ 64 <500000000>;
209                                         opp-microvolt = <800000>;
210                         };
211                         opp-750000000 {
212                                         opp-hz = /bits/ 64 <750000000>;
213                                         opp-microvolt = <800000>;
214                         };
215                         opp-1500000000 {
216                                         opp-hz = /bits/ 64 <1500000000>;
217                                         opp-microvolt = <1040000>;
218                         };
219         };
220 
221         thermal-zones {
222                 cpu-thermal {
223                         polling-delay-passive = <250>;
224                         polling-delay = <15000>;
225 
226                         thermal-sensors = <&sfctemp>;
227 
228                         cooling-maps {
229                                 map0 {
230                                         trip = <&cpu_alert0>;
231                                         cooling-device =
232                                                 <&U74_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
233                                                 <&U74_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
234                                                 <&U74_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
235                                                 <&U74_4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
236                                 };
237                         };
238 
239                         trips {
240                                 cpu_alert0: cpu-alert0 {
241                                         /* milliCelsius */
242                                         temperature = <85000>;
243                                         hysteresis = <2000>;
244                                         type = "passive";
245                                 };
246 
247                                 cpu-crit {
248                                         /* milliCelsius */
249                                         temperature = <100000>;
250                                         hysteresis = <2000>;
251                                         type = "critical";
252                                 };
253                         };
254                 };
255         };
256 
257         dvp_clk: dvp-clock {
258                 compatible = "fixed-clock";
259                 clock-output-names = "dvp_clk";
260                 #clock-cells = <0>;
261         };
262         gmac0_rgmii_rxin: gmac0-rgmii-rxin-clock {
263                 compatible = "fixed-clock";
264                 clock-output-names = "gmac0_rgmii_rxin";
265                 #clock-cells = <0>;
266         };
267 
268         gmac0_rmii_refin: gmac0-rmii-refin-clock {
269                 compatible = "fixed-clock";
270                 clock-output-names = "gmac0_rmii_refin";
271                 #clock-cells = <0>;
272         };
273 
274         gmac1_rgmii_rxin: gmac1-rgmii-rxin-clock {
275                 compatible = "fixed-clock";
276                 clock-output-names = "gmac1_rgmii_rxin";
277                 #clock-cells = <0>;
278         };
279 
280         gmac1_rmii_refin: gmac1-rmii-refin-clock {
281                 compatible = "fixed-clock";
282                 clock-output-names = "gmac1_rmii_refin";
283                 #clock-cells = <0>;
284         };
285 
286         hdmitx0_pixelclk: hdmitx0-pixel-clock {
287                 compatible = "fixed-clock";
288                 clock-output-names = "hdmitx0_pixelclk";
289                 #clock-cells = <0>;
290         };
291 
292         i2srx_bclk_ext: i2srx-bclk-ext-clock {
293                 compatible = "fixed-clock";
294                 clock-output-names = "i2srx_bclk_ext";
295                 #clock-cells = <0>;
296         };
297 
298         i2srx_lrck_ext: i2srx-lrck-ext-clock {
299                 compatible = "fixed-clock";
300                 clock-output-names = "i2srx_lrck_ext";
301                 #clock-cells = <0>;
302         };
303 
304         i2stx_bclk_ext: i2stx-bclk-ext-clock {
305                 compatible = "fixed-clock";
306                 clock-output-names = "i2stx_bclk_ext";
307                 #clock-cells = <0>;
308         };
309 
310         i2stx_lrck_ext: i2stx-lrck-ext-clock {
311                 compatible = "fixed-clock";
312                 clock-output-names = "i2stx_lrck_ext";
313                 #clock-cells = <0>;
314         };
315 
316         mclk_ext: mclk-ext-clock {
317                 compatible = "fixed-clock";
318                 clock-output-names = "mclk_ext";
319                 #clock-cells = <0>;
320         };
321 
322         osc: oscillator {
323                 compatible = "fixed-clock";
324                 clock-output-names = "osc";
325                 #clock-cells = <0>;
326         };
327 
328         rtc_osc: rtc-oscillator {
329                 compatible = "fixed-clock";
330                 clock-output-names = "rtc_osc";
331                 #clock-cells = <0>;
332         };
333 
334         stmmac_axi_setup: stmmac-axi-config {
335                 snps,lpi_en;
336                 snps,wr_osr_lmt = <15>;
337                 snps,rd_osr_lmt = <15>;
338                 snps,blen = <256 128 64 32 0 0 0>;
339         };
340 
341         tdm_ext: tdm-ext-clock {
342                 compatible = "fixed-clock";
343                 clock-output-names = "tdm_ext";
344                 #clock-cells = <0>;
345         };
346 
347         soc {
348                 compatible = "simple-bus";
349                 interrupt-parent = <&plic>;
350                 #address-cells = <2>;
351                 #size-cells = <2>;
352                 ranges;
353 
354                 clint: timer@2000000 {
355                         compatible = "starfive,jh7110-clint", "sifive,clint0";
356                         reg = <0x0 0x2000000 0x0 0x10000>;
357                         interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
358                                               <&cpu1_intc 3>, <&cpu1_intc 7>,
359                                               <&cpu2_intc 3>, <&cpu2_intc 7>,
360                                               <&cpu3_intc 3>, <&cpu3_intc 7>,
361                                               <&cpu4_intc 3>, <&cpu4_intc 7>;
362                 };
363 
364                 ccache: cache-controller@2010000 {
365                         compatible = "starfive,jh7110-ccache", "sifive,ccache0", "cache";
366                         reg = <0x0 0x2010000 0x0 0x4000>;
367                         interrupts = <1>, <3>, <4>, <2>;
368                         cache-block-size = <64>;
369                         cache-level = <2>;
370                         cache-sets = <2048>;
371                         cache-size = <2097152>;
372                         cache-unified;
373                 };
374 
375                 plic: interrupt-controller@c000000 {
376                         compatible = "starfive,jh7110-plic", "sifive,plic-1.0.0";
377                         reg = <0x0 0xc000000 0x0 0x4000000>;
378                         interrupts-extended = <&cpu0_intc 11>,
379                                               <&cpu1_intc 11>, <&cpu1_intc 9>,
380                                               <&cpu2_intc 11>, <&cpu2_intc 9>,
381                                               <&cpu3_intc 11>, <&cpu3_intc 9>,
382                                               <&cpu4_intc 11>, <&cpu4_intc 9>;
383                         interrupt-controller;
384                         #interrupt-cells = <1>;
385                         #address-cells = <0>;
386                         riscv,ndev = <136>;
387                 };
388 
389                 uart0: serial@10000000 {
390                         compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
391                         reg = <0x0 0x10000000 0x0 0x10000>;
392                         clocks = <&syscrg JH7110_SYSCLK_UART0_CORE>,
393                                  <&syscrg JH7110_SYSCLK_UART0_APB>;
394                         clock-names = "baudclk", "apb_pclk";
395                         resets = <&syscrg JH7110_SYSRST_UART0_APB>,
396                                  <&syscrg JH7110_SYSRST_UART0_CORE>;
397                         interrupts = <32>;
398                         reg-io-width = <4>;
399                         reg-shift = <2>;
400                         status = "disabled";
401                 };
402 
403                 uart1: serial@10010000 {
404                         compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
405                         reg = <0x0 0x10010000 0x0 0x10000>;
406                         clocks = <&syscrg JH7110_SYSCLK_UART1_CORE>,
407                                  <&syscrg JH7110_SYSCLK_UART1_APB>;
408                         clock-names = "baudclk", "apb_pclk";
409                         resets = <&syscrg JH7110_SYSRST_UART1_APB>,
410                                  <&syscrg JH7110_SYSRST_UART1_CORE>;
411                         interrupts = <33>;
412                         reg-io-width = <4>;
413                         reg-shift = <2>;
414                         status = "disabled";
415                 };
416 
417                 uart2: serial@10020000 {
418                         compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
419                         reg = <0x0 0x10020000 0x0 0x10000>;
420                         clocks = <&syscrg JH7110_SYSCLK_UART2_CORE>,
421                                  <&syscrg JH7110_SYSCLK_UART2_APB>;
422                         clock-names = "baudclk", "apb_pclk";
423                         resets = <&syscrg JH7110_SYSRST_UART2_APB>,
424                                  <&syscrg JH7110_SYSRST_UART2_CORE>;
425                         interrupts = <34>;
426                         reg-io-width = <4>;
427                         reg-shift = <2>;
428                         status = "disabled";
429                 };
430 
431                 i2c0: i2c@10030000 {
432                         compatible = "snps,designware-i2c";
433                         reg = <0x0 0x10030000 0x0 0x10000>;
434                         clocks = <&syscrg JH7110_SYSCLK_I2C0_APB>;
435                         clock-names = "ref";
436                         resets = <&syscrg JH7110_SYSRST_I2C0_APB>;
437                         interrupts = <35>;
438                         #address-cells = <1>;
439                         #size-cells = <0>;
440                         status = "disabled";
441                 };
442 
443                 i2c1: i2c@10040000 {
444                         compatible = "snps,designware-i2c";
445                         reg = <0x0 0x10040000 0x0 0x10000>;
446                         clocks = <&syscrg JH7110_SYSCLK_I2C1_APB>;
447                         clock-names = "ref";
448                         resets = <&syscrg JH7110_SYSRST_I2C1_APB>;
449                         interrupts = <36>;
450                         #address-cells = <1>;
451                         #size-cells = <0>;
452                         status = "disabled";
453                 };
454 
455                 i2c2: i2c@10050000 {
456                         compatible = "snps,designware-i2c";
457                         reg = <0x0 0x10050000 0x0 0x10000>;
458                         clocks = <&syscrg JH7110_SYSCLK_I2C2_APB>;
459                         clock-names = "ref";
460                         resets = <&syscrg JH7110_SYSRST_I2C2_APB>;
461                         interrupts = <37>;
462                         #address-cells = <1>;
463                         #size-cells = <0>;
464                         status = "disabled";
465                 };
466 
467                 spi0: spi@10060000 {
468                         compatible = "arm,pl022", "arm,primecell";
469                         reg = <0x0 0x10060000 0x0 0x10000>;
470                         clocks = <&syscrg JH7110_SYSCLK_SPI0_APB>,
471                                  <&syscrg JH7110_SYSCLK_SPI0_APB>;
472                         clock-names = "sspclk", "apb_pclk";
473                         resets = <&syscrg JH7110_SYSRST_SPI0_APB>;
474                         interrupts = <38>;
475                         arm,primecell-periphid = <0x00041022>;
476                         num-cs = <1>;
477                         #address-cells = <1>;
478                         #size-cells = <0>;
479                         status = "disabled";
480                 };
481 
482                 spi1: spi@10070000 {
483                         compatible = "arm,pl022", "arm,primecell";
484                         reg = <0x0 0x10070000 0x0 0x10000>;
485                         clocks = <&syscrg JH7110_SYSCLK_SPI1_APB>,
486                                  <&syscrg JH7110_SYSCLK_SPI1_APB>;
487                         clock-names = "sspclk", "apb_pclk";
488                         resets = <&syscrg JH7110_SYSRST_SPI1_APB>;
489                         interrupts = <39>;
490                         arm,primecell-periphid = <0x00041022>;
491                         num-cs = <1>;
492                         #address-cells = <1>;
493                         #size-cells = <0>;
494                         status = "disabled";
495                 };
496 
497                 spi2: spi@10080000 {
498                         compatible = "arm,pl022", "arm,primecell";
499                         reg = <0x0 0x10080000 0x0 0x10000>;
500                         clocks = <&syscrg JH7110_SYSCLK_SPI2_APB>,
501                                  <&syscrg JH7110_SYSCLK_SPI2_APB>;
502                         clock-names = "sspclk", "apb_pclk";
503                         resets = <&syscrg JH7110_SYSRST_SPI2_APB>;
504                         interrupts = <40>;
505                         arm,primecell-periphid = <0x00041022>;
506                         num-cs = <1>;
507                         #address-cells = <1>;
508                         #size-cells = <0>;
509                         status = "disabled";
510                 };
511 
512                 tdm: tdm@10090000 {
513                         compatible = "starfive,jh7110-tdm";
514                         reg = <0x0 0x10090000 0x0 0x1000>;
515                         clocks = <&syscrg JH7110_SYSCLK_TDM_AHB>,
516                                  <&syscrg JH7110_SYSCLK_TDM_APB>,
517                                  <&syscrg JH7110_SYSCLK_TDM_INTERNAL>,
518                                  <&syscrg JH7110_SYSCLK_TDM_TDM>,
519                                  <&syscrg JH7110_SYSCLK_MCLK_INNER>,
520                                  <&tdm_ext>;
521                         clock-names = "tdm_ahb", "tdm_apb",
522                                       "tdm_internal", "tdm",
523                                       "mclk_inner", "tdm_ext";
524                         resets = <&syscrg JH7110_SYSRST_TDM_AHB>,
525                                  <&syscrg JH7110_SYSRST_TDM_APB>,
526                                  <&syscrg JH7110_SYSRST_TDM_CORE>;
527                         dmas = <&dma 20>, <&dma 21>;
528                         dma-names = "rx","tx";
529                         #sound-dai-cells = <0>;
530                         status = "disabled";
531                 };
532 
533                 i2srx: i2s@100e0000 {
534                         compatible = "starfive,jh7110-i2srx";
535                         reg = <0x0 0x100e0000 0x0 0x1000>;
536                         clocks = <&syscrg JH7110_SYSCLK_I2SRX_BCLK_MST>,
537                                  <&syscrg JH7110_SYSCLK_I2SRX_APB>,
538                                  <&syscrg JH7110_SYSCLK_MCLK>,
539                                  <&syscrg JH7110_SYSCLK_MCLK_INNER>,
540                                  <&mclk_ext>,
541                                  <&syscrg JH7110_SYSCLK_I2SRX_BCLK>,
542                                  <&syscrg JH7110_SYSCLK_I2SRX_LRCK>,
543                                  <&i2srx_bclk_ext>,
544                                  <&i2srx_lrck_ext>;
545                         clock-names = "i2sclk", "apb", "mclk",
546                                       "mclk_inner", "mclk_ext", "bclk",
547                                       "lrck", "bclk_ext", "lrck_ext";
548                         resets = <&syscrg JH7110_SYSRST_I2SRX_APB>,
549                                  <&syscrg JH7110_SYSRST_I2SRX_BCLK>;
550                         dmas = <0>, <&dma 24>;
551                         dma-names = "tx", "rx";
552                         starfive,syscon = <&sys_syscon 0x18 0x2>;
553                         #sound-dai-cells = <0>;
554                         status = "disabled";
555                 };
556 
557                 pwmdac: pwmdac@100b0000 {
558                         compatible = "starfive,jh7110-pwmdac";
559                         reg = <0x0 0x100b0000 0x0 0x1000>;
560                         clocks = <&syscrg JH7110_SYSCLK_PWMDAC_APB>,
561                                  <&syscrg JH7110_SYSCLK_PWMDAC_CORE>;
562                         clock-names = "apb", "core";
563                         resets = <&syscrg JH7110_SYSRST_PWMDAC_APB>;
564                         dmas = <&dma 22>;
565                         dma-names = "tx";
566                         #sound-dai-cells = <0>;
567                         status = "disabled";
568                 };
569 
570                 usb0: usb@10100000 {
571                         compatible = "starfive,jh7110-usb";
572                         ranges = <0x0 0x0 0x10100000 0x100000>;
573                         #address-cells = <1>;
574                         #size-cells = <1>;
575                         starfive,stg-syscon = <&stg_syscon 0x4>;
576                         clocks = <&stgcrg JH7110_STGCLK_USB0_LPM>,
577                                  <&stgcrg JH7110_STGCLK_USB0_STB>,
578                                  <&stgcrg JH7110_STGCLK_USB0_APB>,
579                                  <&stgcrg JH7110_STGCLK_USB0_AXI>,
580                                  <&stgcrg JH7110_STGCLK_USB0_UTMI_APB>;
581                         clock-names = "lpm", "stb", "apb", "axi", "utmi_apb";
582                         resets = <&stgcrg JH7110_STGRST_USB0_PWRUP>,
583                                  <&stgcrg JH7110_STGRST_USB0_APB>,
584                                  <&stgcrg JH7110_STGRST_USB0_AXI>,
585                                  <&stgcrg JH7110_STGRST_USB0_UTMI_APB>;
586                         reset-names = "pwrup", "apb", "axi", "utmi_apb";
587                         status = "disabled";
588 
589                         usb_cdns3: usb@0 {
590                                 compatible = "cdns,usb3";
591                                 reg = <0x0 0x10000>,
592                                       <0x10000 0x10000>,
593                                       <0x20000 0x10000>;
594                                 reg-names = "otg", "xhci", "dev";
595                                 interrupts = <100>, <108>, <110>;
596                                 interrupt-names = "host", "peripheral", "otg";
597                                 phys = <&usbphy0>;
598                                 phy-names = "cdns3,usb2-phy";
599                         };
600                 };
601 
602                 usbphy0: phy@10200000 {
603                         compatible = "starfive,jh7110-usb-phy";
604                         reg = <0x0 0x10200000 0x0 0x10000>;
605                         clocks = <&syscrg JH7110_SYSCLK_USB_125M>,
606                                  <&stgcrg JH7110_STGCLK_USB0_APP_125>;
607                         clock-names = "125m", "app_125m";
608                         #phy-cells = <0>;
609                 };
610 
611                 pciephy0: phy@10210000 {
612                         compatible = "starfive,jh7110-pcie-phy";
613                         reg = <0x0 0x10210000 0x0 0x10000>;
614                         #phy-cells = <0>;
615                 };
616 
617                 pciephy1: phy@10220000 {
618                         compatible = "starfive,jh7110-pcie-phy";
619                         reg = <0x0 0x10220000 0x0 0x10000>;
620                         #phy-cells = <0>;
621                 };
622 
623                 stgcrg: clock-controller@10230000 {
624                         compatible = "starfive,jh7110-stgcrg";
625                         reg = <0x0 0x10230000 0x0 0x10000>;
626                         clocks = <&osc>,
627                                  <&syscrg JH7110_SYSCLK_HIFI4_CORE>,
628                                  <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
629                                  <&syscrg JH7110_SYSCLK_USB_125M>,
630                                  <&syscrg JH7110_SYSCLK_CPU_BUS>,
631                                  <&syscrg JH7110_SYSCLK_HIFI4_AXI>,
632                                  <&syscrg JH7110_SYSCLK_NOCSTG_BUS>,
633                                  <&syscrg JH7110_SYSCLK_APB_BUS>;
634                         clock-names = "osc", "hifi4_core",
635                                       "stg_axiahb", "usb_125m",
636                                       "cpu_bus", "hifi4_axi",
637                                       "nocstg_bus", "apb_bus";
638                         #clock-cells = <1>;
639                         #reset-cells = <1>;
640                 };
641 
642                 stg_syscon: syscon@10240000 {
643                         compatible = "starfive,jh7110-stg-syscon", "syscon";
644                         reg = <0x0 0x10240000 0x0 0x1000>;
645                 };
646 
647                 uart3: serial@12000000 {
648                         compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
649                         reg = <0x0 0x12000000 0x0 0x10000>;
650                         clocks = <&syscrg JH7110_SYSCLK_UART3_CORE>,
651                                  <&syscrg JH7110_SYSCLK_UART3_APB>;
652                         clock-names = "baudclk", "apb_pclk";
653                         resets = <&syscrg JH7110_SYSRST_UART3_APB>,
654                                  <&syscrg JH7110_SYSRST_UART3_CORE>;
655                         interrupts = <45>;
656                         reg-io-width = <4>;
657                         reg-shift = <2>;
658                         status = "disabled";
659                 };
660 
661                 uart4: serial@12010000 {
662                         compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
663                         reg = <0x0 0x12010000 0x0 0x10000>;
664                         clocks = <&syscrg JH7110_SYSCLK_UART4_CORE>,
665                                  <&syscrg JH7110_SYSCLK_UART4_APB>;
666                         clock-names = "baudclk", "apb_pclk";
667                         resets = <&syscrg JH7110_SYSRST_UART4_APB>,
668                                  <&syscrg JH7110_SYSRST_UART4_CORE>;
669                         interrupts = <46>;
670                         reg-io-width = <4>;
671                         reg-shift = <2>;
672                         status = "disabled";
673                 };
674 
675                 uart5: serial@12020000 {
676                         compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
677                         reg = <0x0 0x12020000 0x0 0x10000>;
678                         clocks = <&syscrg JH7110_SYSCLK_UART5_CORE>,
679                                  <&syscrg JH7110_SYSCLK_UART5_APB>;
680                         clock-names = "baudclk", "apb_pclk";
681                         resets = <&syscrg JH7110_SYSRST_UART5_APB>,
682                                  <&syscrg JH7110_SYSRST_UART5_CORE>;
683                         interrupts = <47>;
684                         reg-io-width = <4>;
685                         reg-shift = <2>;
686                         status = "disabled";
687                 };
688 
689                 i2c3: i2c@12030000 {
690                         compatible = "snps,designware-i2c";
691                         reg = <0x0 0x12030000 0x0 0x10000>;
692                         clocks = <&syscrg JH7110_SYSCLK_I2C3_APB>;
693                         clock-names = "ref";
694                         resets = <&syscrg JH7110_SYSRST_I2C3_APB>;
695                         interrupts = <48>;
696                         #address-cells = <1>;
697                         #size-cells = <0>;
698                         status = "disabled";
699                 };
700 
701                 i2c4: i2c@12040000 {
702                         compatible = "snps,designware-i2c";
703                         reg = <0x0 0x12040000 0x0 0x10000>;
704                         clocks = <&syscrg JH7110_SYSCLK_I2C4_APB>;
705                         clock-names = "ref";
706                         resets = <&syscrg JH7110_SYSRST_I2C4_APB>;
707                         interrupts = <49>;
708                         #address-cells = <1>;
709                         #size-cells = <0>;
710                         status = "disabled";
711                 };
712 
713                 i2c5: i2c@12050000 {
714                         compatible = "snps,designware-i2c";
715                         reg = <0x0 0x12050000 0x0 0x10000>;
716                         clocks = <&syscrg JH7110_SYSCLK_I2C5_APB>;
717                         clock-names = "ref";
718                         resets = <&syscrg JH7110_SYSRST_I2C5_APB>;
719                         interrupts = <50>;
720                         #address-cells = <1>;
721                         #size-cells = <0>;
722                         status = "disabled";
723                 };
724 
725                 i2c6: i2c@12060000 {
726                         compatible = "snps,designware-i2c";
727                         reg = <0x0 0x12060000 0x0 0x10000>;
728                         clocks = <&syscrg JH7110_SYSCLK_I2C6_APB>;
729                         clock-names = "ref";
730                         resets = <&syscrg JH7110_SYSRST_I2C6_APB>;
731                         interrupts = <51>;
732                         #address-cells = <1>;
733                         #size-cells = <0>;
734                         status = "disabled";
735                 };
736 
737                 spi3: spi@12070000 {
738                         compatible = "arm,pl022", "arm,primecell";
739                         reg = <0x0 0x12070000 0x0 0x10000>;
740                         clocks = <&syscrg JH7110_SYSCLK_SPI3_APB>,
741                                  <&syscrg JH7110_SYSCLK_SPI3_APB>;
742                         clock-names = "sspclk", "apb_pclk";
743                         resets = <&syscrg JH7110_SYSRST_SPI3_APB>;
744                         interrupts = <52>;
745                         arm,primecell-periphid = <0x00041022>;
746                         num-cs = <1>;
747                         #address-cells = <1>;
748                         #size-cells = <0>;
749                         status = "disabled";
750                 };
751 
752                 spi4: spi@12080000 {
753                         compatible = "arm,pl022", "arm,primecell";
754                         reg = <0x0 0x12080000 0x0 0x10000>;
755                         clocks = <&syscrg JH7110_SYSCLK_SPI4_APB>,
756                                  <&syscrg JH7110_SYSCLK_SPI4_APB>;
757                         clock-names = "sspclk", "apb_pclk";
758                         resets = <&syscrg JH7110_SYSRST_SPI4_APB>;
759                         interrupts = <53>;
760                         arm,primecell-periphid = <0x00041022>;
761                         num-cs = <1>;
762                         #address-cells = <1>;
763                         #size-cells = <0>;
764                         status = "disabled";
765                 };
766 
767                 spi5: spi@12090000 {
768                         compatible = "arm,pl022", "arm,primecell";
769                         reg = <0x0 0x12090000 0x0 0x10000>;
770                         clocks = <&syscrg JH7110_SYSCLK_SPI5_APB>,
771                                  <&syscrg JH7110_SYSCLK_SPI5_APB>;
772                         clock-names = "sspclk", "apb_pclk";
773                         resets = <&syscrg JH7110_SYSRST_SPI5_APB>;
774                         interrupts = <54>;
775                         arm,primecell-periphid = <0x00041022>;
776                         num-cs = <1>;
777                         #address-cells = <1>;
778                         #size-cells = <0>;
779                         status = "disabled";
780                 };
781 
782                 spi6: spi@120a0000 {
783                         compatible = "arm,pl022", "arm,primecell";
784                         reg = <0x0 0x120A0000 0x0 0x10000>;
785                         clocks = <&syscrg JH7110_SYSCLK_SPI6_APB>,
786                                  <&syscrg JH7110_SYSCLK_SPI6_APB>;
787                         clock-names = "sspclk", "apb_pclk";
788                         resets = <&syscrg JH7110_SYSRST_SPI6_APB>;
789                         interrupts = <55>;
790                         arm,primecell-periphid = <0x00041022>;
791                         num-cs = <1>;
792                         #address-cells = <1>;
793                         #size-cells = <0>;
794                         status = "disabled";
795                 };
796 
797                 i2stx0: i2s@120b0000 {
798                         compatible = "starfive,jh7110-i2stx0";
799                         reg = <0x0 0x120b0000 0x0 0x1000>;
800                         clocks = <&syscrg JH7110_SYSCLK_I2STX0_BCLK_MST>,
801                                  <&syscrg JH7110_SYSCLK_I2STX0_APB>,
802                                  <&syscrg JH7110_SYSCLK_MCLK>,
803                                  <&syscrg JH7110_SYSCLK_MCLK_INNER>,
804                                  <&mclk_ext>;
805                         clock-names = "i2sclk", "apb", "mclk",
806                                       "mclk_inner","mclk_ext";
807                         resets = <&syscrg JH7110_SYSRST_I2STX0_APB>,
808                                  <&syscrg JH7110_SYSRST_I2STX0_BCLK>;
809                         dmas = <&dma 47>;
810                         dma-names = "tx";
811                         #sound-dai-cells = <0>;
812                         status = "disabled";
813                 };
814 
815                 i2stx1: i2s@120c0000 {
816                         compatible = "starfive,jh7110-i2stx1";
817                         reg = <0x0 0x120c0000 0x0 0x1000>;
818                         clocks = <&syscrg JH7110_SYSCLK_I2STX1_BCLK_MST>,
819                                  <&syscrg JH7110_SYSCLK_I2STX1_APB>,
820                                  <&syscrg JH7110_SYSCLK_MCLK>,
821                                  <&syscrg JH7110_SYSCLK_MCLK_INNER>,
822                                  <&mclk_ext>,
823                                  <&syscrg JH7110_SYSCLK_I2STX1_BCLK>,
824                                  <&syscrg JH7110_SYSCLK_I2STX1_LRCK>,
825                                  <&i2stx_bclk_ext>,
826                                  <&i2stx_lrck_ext>;
827                         clock-names = "i2sclk", "apb", "mclk",
828                                       "mclk_inner", "mclk_ext", "bclk",
829                                       "lrck", "bclk_ext", "lrck_ext";
830                         resets = <&syscrg JH7110_SYSRST_I2STX1_APB>,
831                                  <&syscrg JH7110_SYSRST_I2STX1_BCLK>;
832                         dmas = <&dma 48>;
833                         dma-names = "tx";
834                         #sound-dai-cells = <0>;
835                         status = "disabled";
836                 };
837 
838                 pwm: pwm@120d0000 {
839                         compatible = "starfive,jh7110-pwm", "opencores,pwm-v1";
840                         reg = <0x0 0x120d0000 0x0 0x10000>;
841                         clocks = <&syscrg JH7110_SYSCLK_PWM_APB>;
842                         resets = <&syscrg JH7110_SYSRST_PWM_APB>;
843                         #pwm-cells = <3>;
844                         status = "disabled";
845                 };
846 
847                 sfctemp: temperature-sensor@120e0000 {
848                         compatible = "starfive,jh7110-temp";
849                         reg = <0x0 0x120e0000 0x0 0x10000>;
850                         clocks = <&syscrg JH7110_SYSCLK_TEMP_CORE>,
851                                  <&syscrg JH7110_SYSCLK_TEMP_APB>;
852                         clock-names = "sense", "bus";
853                         resets = <&syscrg JH7110_SYSRST_TEMP_CORE>,
854                                  <&syscrg JH7110_SYSRST_TEMP_APB>;
855                         reset-names = "sense", "bus";
856                         #thermal-sensor-cells = <0>;
857                 };
858 
859                 qspi: spi@13010000 {
860                         compatible = "starfive,jh7110-qspi", "cdns,qspi-nor";
861                         reg = <0x0 0x13010000 0x0 0x10000>,
862                               <0x0 0x21000000 0x0 0x400000>;
863                         interrupts = <25>;
864                         clocks = <&syscrg JH7110_SYSCLK_QSPI_REF>,
865                                  <&syscrg JH7110_SYSCLK_QSPI_AHB>,
866                                  <&syscrg JH7110_SYSCLK_QSPI_APB>;
867                         clock-names = "ref", "ahb", "apb";
868                         resets = <&syscrg JH7110_SYSRST_QSPI_APB>,
869                                  <&syscrg JH7110_SYSRST_QSPI_AHB>,
870                                  <&syscrg JH7110_SYSRST_QSPI_REF>;
871                         reset-names = "qspi", "qspi-ocp", "rstc_ref";
872                         cdns,fifo-depth = <256>;
873                         cdns,fifo-width = <4>;
874                         cdns,trigger-address = <0x0>;
875                         status = "disabled";
876                 };
877 
878                 syscrg: clock-controller@13020000 {
879                         compatible = "starfive,jh7110-syscrg";
880                         reg = <0x0 0x13020000 0x0 0x10000>;
881                         clocks = <&osc>, <&gmac1_rmii_refin>,
882                                  <&gmac1_rgmii_rxin>,
883                                  <&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
884                                  <&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
885                                  <&tdm_ext>, <&mclk_ext>,
886                                  <&pllclk JH7110_PLLCLK_PLL0_OUT>,
887                                  <&pllclk JH7110_PLLCLK_PLL1_OUT>,
888                                  <&pllclk JH7110_PLLCLK_PLL2_OUT>;
889                         clock-names = "osc", "gmac1_rmii_refin",
890                                       "gmac1_rgmii_rxin",
891                                       "i2stx_bclk_ext", "i2stx_lrck_ext",
892                                       "i2srx_bclk_ext", "i2srx_lrck_ext",
893                                       "tdm_ext", "mclk_ext",
894                                       "pll0_out", "pll1_out", "pll2_out";
895                         #clock-cells = <1>;
896                         #reset-cells = <1>;
897                 };
898 
899                 sys_syscon: syscon@13030000 {
900                         compatible = "starfive,jh7110-sys-syscon", "syscon", "simple-mfd";
901                         reg = <0x0 0x13030000 0x0 0x1000>;
902 
903                         pllclk: clock-controller {
904                                 compatible = "starfive,jh7110-pll";
905                                 clocks = <&osc>;
906                                 #clock-cells = <1>;
907                         };
908                 };
909 
910                 sysgpio: pinctrl@13040000 {
911                         compatible = "starfive,jh7110-sys-pinctrl";
912                         reg = <0x0 0x13040000 0x0 0x10000>;
913                         clocks = <&syscrg JH7110_SYSCLK_IOMUX_APB>;
914                         resets = <&syscrg JH7110_SYSRST_IOMUX_APB>;
915                         interrupts = <86>;
916                         interrupt-controller;
917                         #interrupt-cells = <2>;
918                         gpio-controller;
919                         #gpio-cells = <2>;
920                 };
921 
922                 watchdog@13070000 {
923                         compatible = "starfive,jh7110-wdt";
924                         reg = <0x0 0x13070000 0x0 0x10000>;
925                         clocks = <&syscrg JH7110_SYSCLK_WDT_APB>,
926                                  <&syscrg JH7110_SYSCLK_WDT_CORE>;
927                         clock-names = "apb", "core";
928                         resets = <&syscrg JH7110_SYSRST_WDT_APB>,
929                                  <&syscrg JH7110_SYSRST_WDT_CORE>;
930                 };
931 
932                 crypto: crypto@16000000 {
933                         compatible = "starfive,jh7110-crypto";
934                         reg = <0x0 0x16000000 0x0 0x4000>;
935                         clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>,
936                                  <&stgcrg JH7110_STGCLK_SEC_MISC_AHB>;
937                         clock-names = "hclk", "ahb";
938                         interrupts = <28>;
939                         resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
940                         dmas = <&sdma 1 2>, <&sdma 0 2>;
941                         dma-names = "tx", "rx";
942                 };
943 
944                 sdma: dma-controller@16008000 {
945                         compatible = "arm,pl080", "arm,primecell";
946                         arm,primecell-periphid = <0x00041080>;
947                         reg = <0x0 0x16008000 0x0 0x4000>;
948                         interrupts = <29>;
949                         clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>;
950                         clock-names = "apb_pclk";
951                         resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
952                         lli-bus-interface-ahb1;
953                         mem-bus-interface-ahb1;
954                         memcpy-burst-size = <256>;
955                         memcpy-bus-width = <32>;
956                         #dma-cells = <2>;
957                 };
958 
959                 rng: rng@1600c000 {
960                         compatible = "starfive,jh7110-trng";
961                         reg = <0x0 0x1600C000 0x0 0x4000>;
962                         clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>,
963                                  <&stgcrg JH7110_STGCLK_SEC_MISC_AHB>;
964                         clock-names = "hclk", "ahb";
965                         resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
966                         interrupts = <30>;
967                 };
968 
969                 mmc0: mmc@16010000 {
970                         compatible = "starfive,jh7110-mmc";
971                         reg = <0x0 0x16010000 0x0 0x10000>;
972                         clocks = <&syscrg JH7110_SYSCLK_SDIO0_AHB>,
973                                  <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>;
974                         clock-names = "biu","ciu";
975                         resets = <&syscrg JH7110_SYSRST_SDIO0_AHB>;
976                         reset-names = "reset";
977                         interrupts = <74>;
978                         fifo-depth = <32>;
979                         fifo-watermark-aligned;
980                         data-addr = <0>;
981                         starfive,sysreg = <&sys_syscon 0x14 0x1a 0x7c000000>;
982                         status = "disabled";
983                 };
984 
985                 mmc1: mmc@16020000 {
986                         compatible = "starfive,jh7110-mmc";
987                         reg = <0x0 0x16020000 0x0 0x10000>;
988                         clocks = <&syscrg JH7110_SYSCLK_SDIO1_AHB>,
989                                  <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>;
990                         clock-names = "biu","ciu";
991                         resets = <&syscrg JH7110_SYSRST_SDIO1_AHB>;
992                         reset-names = "reset";
993                         interrupts = <75>;
994                         fifo-depth = <32>;
995                         fifo-watermark-aligned;
996                         data-addr = <0>;
997                         starfive,sysreg = <&sys_syscon 0x9c 0x1 0x3e>;
998                         status = "disabled";
999                 };
1000 
1001                 gmac0: ethernet@16030000 {
1002                         compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
1003                         reg = <0x0 0x16030000 0x0 0x10000>;
1004                         clocks = <&aoncrg JH7110_AONCLK_GMAC0_AXI>,
1005                                  <&aoncrg JH7110_AONCLK_GMAC0_AHB>,
1006                                  <&syscrg JH7110_SYSCLK_GMAC0_PTP>,
1007                                  <&aoncrg JH7110_AONCLK_GMAC0_TX_INV>,
1008                                  <&syscrg JH7110_SYSCLK_GMAC0_GTXC>;
1009                         clock-names = "stmmaceth", "pclk", "ptp_ref",
1010                                       "tx", "gtx";
1011                         resets = <&aoncrg JH7110_AONRST_GMAC0_AXI>,
1012                                  <&aoncrg JH7110_AONRST_GMAC0_AHB>;
1013                         reset-names = "stmmaceth", "ahb";
1014                         interrupts = <7>, <6>, <5>;
1015                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
1016                         rx-fifo-depth = <2048>;
1017                         tx-fifo-depth = <2048>;
1018                         snps,multicast-filter-bins = <64>;
1019                         snps,perfect-filter-entries = <256>;
1020                         snps,fixed-burst;
1021                         snps,no-pbl-x8;
1022                         snps,force_thresh_dma_mode;
1023                         snps,axi-config = <&stmmac_axi_setup>;
1024                         snps,tso;
1025                         snps,en-tx-lpi-clockgating;
1026                         snps,txpbl = <16>;
1027                         snps,rxpbl = <16>;
1028                         starfive,syscon = <&aon_syscon 0xc 0x12>;
1029                         status = "disabled";
1030                 };
1031 
1032                 gmac1: ethernet@16040000 {
1033                         compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
1034                         reg = <0x0 0x16040000 0x0 0x10000>;
1035                         clocks = <&syscrg JH7110_SYSCLK_GMAC1_AXI>,
1036                                  <&syscrg JH7110_SYSCLK_GMAC1_AHB>,
1037                                  <&syscrg JH7110_SYSCLK_GMAC1_PTP>,
1038                                  <&syscrg JH7110_SYSCLK_GMAC1_TX_INV>,
1039                                  <&syscrg JH7110_SYSCLK_GMAC1_GTXC>;
1040                         clock-names = "stmmaceth", "pclk", "ptp_ref",
1041                                       "tx", "gtx";
1042                         resets = <&syscrg JH7110_SYSRST_GMAC1_AXI>,
1043                                  <&syscrg JH7110_SYSRST_GMAC1_AHB>;
1044                         reset-names = "stmmaceth", "ahb";
1045                         interrupts = <78>, <77>, <76>;
1046                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
1047                         rx-fifo-depth = <2048>;
1048                         tx-fifo-depth = <2048>;
1049                         snps,multicast-filter-bins = <64>;
1050                         snps,perfect-filter-entries = <256>;
1051                         snps,fixed-burst;
1052                         snps,no-pbl-x8;
1053                         snps,force_thresh_dma_mode;
1054                         snps,axi-config = <&stmmac_axi_setup>;
1055                         snps,tso;
1056                         snps,en-tx-lpi-clockgating;
1057                         snps,txpbl = <16>;
1058                         snps,rxpbl = <16>;
1059                         starfive,syscon = <&sys_syscon 0x90 0x2>;
1060                         status = "disabled";
1061                 };
1062 
1063                 dma: dma-controller@16050000 {
1064                         compatible = "starfive,jh7110-axi-dma";
1065                         reg = <0x0 0x16050000 0x0 0x10000>;
1066                         clocks = <&stgcrg JH7110_STGCLK_DMA1P_AXI>,
1067                                  <&stgcrg JH7110_STGCLK_DMA1P_AHB>;
1068                         clock-names = "core-clk", "cfgr-clk";
1069                         resets = <&stgcrg JH7110_STGRST_DMA1P_AXI>,
1070                                  <&stgcrg JH7110_STGRST_DMA1P_AHB>;
1071                         interrupts = <73>;
1072                         #dma-cells = <1>;
1073                         dma-channels = <4>;
1074                         snps,dma-masters = <1>;
1075                         snps,data-width = <3>;
1076                         snps,block-size = <65536 65536 65536 65536>;
1077                         snps,priority = <0 1 2 3>;
1078                         snps,axi-max-burst-len = <16>;
1079                 };
1080 
1081                 aoncrg: clock-controller@17000000 {
1082                         compatible = "starfive,jh7110-aoncrg";
1083                         reg = <0x0 0x17000000 0x0 0x10000>;
1084                         clocks = <&osc>, <&gmac0_rmii_refin>,
1085                                  <&gmac0_rgmii_rxin>,
1086                                  <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
1087                                  <&syscrg JH7110_SYSCLK_APB_BUS>,
1088                                  <&syscrg JH7110_SYSCLK_GMAC0_GTXCLK>,
1089                                  <&rtc_osc>;
1090                         clock-names = "osc", "gmac0_rmii_refin",
1091                                       "gmac0_rgmii_rxin", "stg_axiahb",
1092                                       "apb_bus", "gmac0_gtxclk",
1093                                       "rtc_osc";
1094                         #clock-cells = <1>;
1095                         #reset-cells = <1>;
1096                 };
1097 
1098                 aon_syscon: syscon@17010000 {
1099                         compatible = "starfive,jh7110-aon-syscon", "syscon";
1100                         reg = <0x0 0x17010000 0x0 0x1000>;
1101                         #power-domain-cells = <1>;
1102                 };
1103 
1104                 aongpio: pinctrl@17020000 {
1105                         compatible = "starfive,jh7110-aon-pinctrl";
1106                         reg = <0x0 0x17020000 0x0 0x10000>;
1107                         resets = <&aoncrg JH7110_AONRST_IOMUX>;
1108                         interrupts = <85>;
1109                         interrupt-controller;
1110                         #interrupt-cells = <2>;
1111                         gpio-controller;
1112                         #gpio-cells = <2>;
1113                 };
1114 
1115                 pwrc: power-controller@17030000 {
1116                         compatible = "starfive,jh7110-pmu";
1117                         reg = <0x0 0x17030000 0x0 0x10000>;
1118                         interrupts = <111>;
1119                         #power-domain-cells = <1>;
1120                 };
1121 
1122                 csi2rx: csi@19800000 {
1123                         compatible = "starfive,jh7110-csi2rx", "cdns,csi2rx";
1124                         reg = <0x0 0x19800000 0x0 0x10000>;
1125                         clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>,
1126                                  <&ispcrg JH7110_ISPCLK_VIN_APB>,
1127                                  <&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF0>,
1128                                  <&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF1>,
1129                                  <&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF2>,
1130                                  <&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF3>;
1131                         clock-names = "sys_clk", "p_clk",
1132                                       "pixel_if0_clk", "pixel_if1_clk",
1133                                       "pixel_if2_clk", "pixel_if3_clk";
1134                         resets = <&ispcrg JH7110_ISPRST_VIN_SYS>,
1135                                  <&ispcrg JH7110_ISPRST_VIN_APB>,
1136                                  <&ispcrg JH7110_ISPRST_VIN_PIXEL_IF0>,
1137                                  <&ispcrg JH7110_ISPRST_VIN_PIXEL_IF1>,
1138                                  <&ispcrg JH7110_ISPRST_VIN_PIXEL_IF2>,
1139                                  <&ispcrg JH7110_ISPRST_VIN_PIXEL_IF3>;
1140                         reset-names = "sys", "reg_bank",
1141                                       "pixel_if0", "pixel_if1",
1142                                       "pixel_if2", "pixel_if3";
1143                         phys = <&csi_phy>;
1144                         phy-names = "dphy";
1145                         status = "disabled";
1146                 };
1147 
1148                 ispcrg: clock-controller@19810000 {
1149                         compatible = "starfive,jh7110-ispcrg";
1150                         reg = <0x0 0x19810000 0x0 0x10000>;
1151                         clocks = <&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
1152                                  <&syscrg JH7110_SYSCLK_ISP_TOP_AXI>,
1153                                  <&syscrg JH7110_SYSCLK_NOC_BUS_ISP_AXI>,
1154                                  <&dvp_clk>;
1155                         clock-names = "isp_top_core", "isp_top_axi",
1156                                       "noc_bus_isp_axi", "dvp_clk";
1157                         resets = <&syscrg JH7110_SYSRST_ISP_TOP>,
1158                                  <&syscrg JH7110_SYSRST_ISP_TOP_AXI>,
1159                                  <&syscrg JH7110_SYSRST_NOC_BUS_ISP_AXI>;
1160                         #clock-cells = <1>;
1161                         #reset-cells = <1>;
1162                         power-domains = <&pwrc JH7110_PD_ISP>;
1163                 };
1164 
1165                 csi_phy: phy@19820000 {
1166                         compatible = "starfive,jh7110-dphy-rx";
1167                         reg = <0x0 0x19820000 0x0 0x10000>;
1168                         clocks = <&ispcrg JH7110_ISPCLK_M31DPHY_CFG_IN>,
1169                                  <&ispcrg JH7110_ISPCLK_M31DPHY_REF_IN>,
1170                                  <&ispcrg JH7110_ISPCLK_M31DPHY_TX_ESC_LAN0>;
1171                         clock-names = "cfg", "ref", "tx";
1172                         resets = <&ispcrg JH7110_ISPRST_M31DPHY_HW>,
1173                                  <&ispcrg JH7110_ISPRST_M31DPHY_B09_AON>;
1174                         power-domains = <&aon_syscon JH7110_AON_PD_DPHY_RX>;
1175                         #phy-cells = <0>;
1176                 };
1177 
1178                 camss: isp@19840000 {
1179                         compatible = "starfive,jh7110-camss";
1180                         reg = <0x0 0x19840000 0x0 0x10000>,
1181                               <0x0 0x19870000 0x0 0x30000>;
1182                         reg-names = "syscon", "isp";
1183                         clocks = <&ispcrg JH7110_ISPCLK_DOM4_APB_FUNC>,
1184                                  <&ispcrg JH7110_ISPCLK_ISPV2_TOP_WRAPPER_C>,
1185                                  <&ispcrg JH7110_ISPCLK_DVP_INV>,
1186                                  <&ispcrg JH7110_ISPCLK_VIN_P_AXI_WR>,
1187                                  <&ispcrg JH7110_ISPCLK_MIPI_RX0_PXL>,
1188                                  <&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
1189                                  <&syscrg JH7110_SYSCLK_ISP_TOP_AXI>;
1190                         clock-names = "apb_func", "wrapper_clk_c", "dvp_inv",
1191                                       "axiwr", "mipi_rx0_pxl", "ispcore_2x",
1192                                       "isp_axi";
1193                         resets = <&ispcrg JH7110_ISPRST_ISPV2_TOP_WRAPPER_P>,
1194                                  <&ispcrg JH7110_ISPRST_ISPV2_TOP_WRAPPER_C>,
1195                                  <&ispcrg JH7110_ISPRST_VIN_P_AXI_RD>,
1196                                  <&ispcrg JH7110_ISPRST_VIN_P_AXI_WR>,
1197                                  <&syscrg JH7110_SYSRST_ISP_TOP>,
1198                                  <&syscrg JH7110_SYSRST_ISP_TOP_AXI>;
1199                         reset-names = "wrapper_p", "wrapper_c", "axird",
1200                                       "axiwr", "isp_top_n", "isp_top_axi";
1201                         power-domains = <&pwrc JH7110_PD_ISP>;
1202                         interrupts = <92>, <87>, <90>, <88>;
1203                         status = "disabled";
1204                 };
1205 
1206                 voutcrg: clock-controller@295c0000 {
1207                         compatible = "starfive,jh7110-voutcrg";
1208                         reg = <0x0 0x295c0000 0x0 0x10000>;
1209                         clocks = <&syscrg JH7110_SYSCLK_VOUT_SRC>,
1210                                  <&syscrg JH7110_SYSCLK_VOUT_TOP_AHB>,
1211                                  <&syscrg JH7110_SYSCLK_VOUT_TOP_AXI>,
1212                                  <&syscrg JH7110_SYSCLK_VOUT_TOP_HDMITX0_MCLK>,
1213                                  <&syscrg JH7110_SYSCLK_I2STX0_BCLK>,
1214                                  <&hdmitx0_pixelclk>;
1215                         clock-names = "vout_src", "vout_top_ahb",
1216                                       "vout_top_axi", "vout_top_hdmitx0_mclk",
1217                                       "i2stx0_bclk", "hdmitx0_pixelclk";
1218                         resets = <&syscrg JH7110_SYSRST_VOUT_TOP_SRC>;
1219                         #clock-cells = <1>;
1220                         #reset-cells = <1>;
1221                         power-domains = <&pwrc JH7110_PD_VOUT>;
1222                 };
1223 
1224                 pcie0: pcie@940000000 {
1225                         compatible = "starfive,jh7110-pcie";
1226                         reg = <0x9 0x40000000 0x0 0x1000000>,
1227                               <0x0 0x2b000000 0x0 0x100000>;
1228                         reg-names = "cfg", "apb";
1229                         linux,pci-domain = <0>;
1230                         #address-cells = <3>;
1231                         #size-cells = <2>;
1232                         #interrupt-cells = <1>;
1233                         ranges = <0x82000000  0x0 0x30000000  0x0 0x30000000 0x0 0x08000000>,
1234                                  <0xc3000000  0x9 0x00000000  0x9 0x00000000 0x0 0x40000000>;
1235                         interrupts = <56>;
1236                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1237                         interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>,
1238                                         <0x0 0x0 0x0 0x2 &pcie_intc0 0x2>,
1239                                         <0x0 0x0 0x0 0x3 &pcie_intc0 0x3>,
1240                                         <0x0 0x0 0x0 0x4 &pcie_intc0 0x4>;
1241                         msi-controller;
1242                         device_type = "pci";
1243                         starfive,stg-syscon = <&stg_syscon>;
1244                         bus-range = <0x0 0xff>;
1245                         clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
1246                                  <&stgcrg JH7110_STGCLK_PCIE0_TL>,
1247                                  <&stgcrg JH7110_STGCLK_PCIE0_AXI_MST0>,
1248                                  <&stgcrg JH7110_STGCLK_PCIE0_APB>;
1249                         clock-names = "noc", "tl", "axi_mst0", "apb";
1250                         resets = <&stgcrg JH7110_STGRST_PCIE0_AXI_MST0>,
1251                                  <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV0>,
1252                                  <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV>,
1253                                  <&stgcrg JH7110_STGRST_PCIE0_BRG>,
1254                                  <&stgcrg JH7110_STGRST_PCIE0_CORE>,
1255                                  <&stgcrg JH7110_STGRST_PCIE0_APB>;
1256                         reset-names = "mst0", "slv0", "slv", "brg",
1257                                       "core", "apb";
1258                         status = "disabled";
1259 
1260                         pcie_intc0: interrupt-controller {
1261                                 #address-cells = <0>;
1262                                 #interrupt-cells = <1>;
1263                                 interrupt-controller;
1264                         };
1265                 };
1266 
1267                 pcie1: pcie@9c0000000 {
1268                         compatible = "starfive,jh7110-pcie";
1269                         reg = <0x9 0xc0000000 0x0 0x1000000>,
1270                               <0x0 0x2c000000 0x0 0x100000>;
1271                         reg-names = "cfg", "apb";
1272                         linux,pci-domain = <1>;
1273                         #address-cells = <3>;
1274                         #size-cells = <2>;
1275                         #interrupt-cells = <1>;
1276                         ranges = <0x82000000  0x0 0x38000000  0x0 0x38000000 0x0 0x08000000>,
1277                                  <0xc3000000  0x9 0x80000000  0x9 0x80000000 0x0 0x40000000>;
1278                         interrupts = <57>;
1279                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1280                         interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc1 0x1>,
1281                                         <0x0 0x0 0x0 0x2 &pcie_intc1 0x2>,
1282                                         <0x0 0x0 0x0 0x3 &pcie_intc1 0x3>,
1283                                         <0x0 0x0 0x0 0x4 &pcie_intc1 0x4>;
1284                         msi-controller;
1285                         device_type = "pci";
1286                         starfive,stg-syscon = <&stg_syscon>;
1287                         bus-range = <0x0 0xff>;
1288                         clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
1289                                  <&stgcrg JH7110_STGCLK_PCIE1_TL>,
1290                                  <&stgcrg JH7110_STGCLK_PCIE1_AXI_MST0>,
1291                                  <&stgcrg JH7110_STGCLK_PCIE1_APB>;
1292                         clock-names = "noc", "tl", "axi_mst0", "apb";
1293                         resets = <&stgcrg JH7110_STGRST_PCIE1_AXI_MST0>,
1294                                  <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV0>,
1295                                  <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV>,
1296                                  <&stgcrg JH7110_STGRST_PCIE1_BRG>,
1297                                  <&stgcrg JH7110_STGRST_PCIE1_CORE>,
1298                                  <&stgcrg JH7110_STGRST_PCIE1_APB>;
1299                         reset-names = "mst0", "slv0", "slv", "brg",
1300                                       "core", "apb";
1301                         status = "disabled";
1302 
1303                         pcie_intc1: interrupt-controller {
1304                                 #address-cells = <0>;
1305                                 #interrupt-cells = <1>;
1306                                 interrupt-controller;
1307                         };
1308                 };
1309         };
1310 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php