dts: starfive: enhance SD card io Output Drive Strength
[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 Hal Feng <hal.feng@starfivetech.com>
5  */
6
7 /dts-v1/;
8 #include "jh7110-clk.dtsi"
9 #include <dt-bindings/reset/starfive-jh7110.h>
10 #include <dt-bindings/clock/starfive-jh7110-clkgen.h>
11 #include <dt-bindings/clock/starfive-jh7110-vout.h>
12 #include <dt-bindings/clock/starfive-jh7110-isp.h>
13 #include <dt-bindings/power/jh7110-power.h>
14
15 / {
16         compatible = "starfive,jh7110";
17         #address-cells = <2>;
18         #size-cells = <2>;
19
20         cluster0_opp: opp-table-0 {
21                         compatible = "operating-points-v2";
22                         opp-shared;
23                         opp-375000000 {
24                                         opp-hz = /bits/ 64 <375000000>;
25                                         opp-microvolt = <880000>;
26                         };
27                         opp-500000000 {
28                                         opp-hz = /bits/ 64 <500000000>;
29                                         opp-microvolt = <880000>;
30                         };
31                         opp-750000000 {
32                                         opp-hz = /bits/ 64 <750000000>;
33                                         opp-microvolt = <880000>;
34                         };
35                         opp-1500000000 {
36                                         opp-hz = /bits/ 64 <1500000000>;
37                                         opp-microvolt = <1000000>;
38                         };
39         };
40
41         cpus {
42                 #address-cells = <1>;
43                 #size-cells = <0>;
44
45                 cpu0: cpu@0 {
46                         compatible = "sifive,u74-mc", "riscv";
47                         reg = <0>;
48                         d-cache-block-size = <64>;
49                         d-cache-sets = <64>;
50                         d-cache-size = <8192>;
51                         d-tlb-sets = <1>;
52                         d-tlb-size = <40>;
53                         device_type = "cpu";
54                         i-cache-block-size = <64>;
55                         i-cache-sets = <64>;
56                         i-cache-size = <16384>;
57                         i-tlb-sets = <1>;
58                         i-tlb-size = <40>;
59                         mmu-type = "riscv,sv39";
60                         cpu-idle-states = <&CPU_NONRET_0_0>;
61                         next-level-cache = <&cachectrl>;
62                         riscv,isa = "rv64imac";
63                         tlb-split;
64                         status = "disabled";
65
66                         cpu0intctrl: interrupt-controller {
67                                 #interrupt-cells = <1>;
68                                 compatible = "riscv,cpu-intc";
69                                 interrupt-controller;
70                         };
71                 };
72
73                 cpu1: cpu@1 {
74                         compatible = "sifive,u74-mc", "riscv";
75                         reg = <1>;
76                         d-cache-block-size = <64>;
77                         d-cache-sets = <64>;
78                         d-cache-size = <32768>;
79                         d-tlb-sets = <1>;
80                         d-tlb-size = <40>;
81                         device_type = "cpu";
82                         i-cache-block-size = <64>;
83                         i-cache-sets = <64>;
84                         i-cache-size = <32768>;
85                         i-tlb-sets = <1>;
86                         i-tlb-size = <40>;
87                         mmu-type = "riscv,sv39";
88                         cpu-idle-states = <&CPU_NONRET_0_0>;
89                         next-level-cache = <&cachectrl>;
90                         riscv,isa = "rv64imafdc";
91                         tlb-split;
92                         status = "okay";
93                         operating-points-v2 = <&cluster0_opp>;
94
95                         cpu1intctrl: interrupt-controller {
96                                 #interrupt-cells = <1>;
97                                 compatible = "riscv,cpu-intc";
98                                 interrupt-controller;
99                         };
100                 };
101
102                 cpu2: cpu@2 {
103                         compatible = "sifive,u74-mc", "riscv";
104                         reg = <2>;
105                         d-cache-block-size = <64>;
106                         d-cache-sets = <64>;
107                         d-cache-size = <32768>;
108                         d-tlb-sets = <1>;
109                         d-tlb-size = <40>;
110                         device_type = "cpu";
111                         i-cache-block-size = <64>;
112                         i-cache-sets = <64>;
113                         i-cache-size = <32768>;
114                         i-tlb-sets = <1>;
115                         i-tlb-size = <40>;
116                         mmu-type = "riscv,sv39";
117                         cpu-idle-states = <&CPU_NONRET_0_0>;
118                         next-level-cache = <&cachectrl>;
119                         riscv,isa = "rv64imafdc";
120                         tlb-split;
121                         status = "okay";
122                         operating-points-v2 = <&cluster0_opp>;
123
124                         cpu2intctrl: interrupt-controller {
125                                 #interrupt-cells = <1>;
126                                 compatible = "riscv,cpu-intc";
127                                 interrupt-controller;
128                         };
129                 };
130
131                 cpu3: cpu@3 {
132                         compatible = "sifive,u74-mc", "riscv";
133                         reg = <3>;
134                         d-cache-block-size = <64>;
135                         d-cache-sets = <64>;
136                         d-cache-size = <32768>;
137                         d-tlb-sets = <1>;
138                         d-tlb-size = <40>;
139                         device_type = "cpu";
140                         i-cache-block-size = <64>;
141                         i-cache-sets = <64>;
142                         i-cache-size = <32768>;
143                         i-tlb-sets = <1>;
144                         i-tlb-size = <40>;
145                         mmu-type = "riscv,sv39";
146                         cpu-idle-states = <&CPU_NONRET_0_0>;
147                         next-level-cache = <&cachectrl>;
148                         riscv,isa = "rv64imafdc";
149                         tlb-split;
150                         status = "okay";
151                         operating-points-v2 = <&cluster0_opp>;
152
153                         cpu3intctrl: interrupt-controller {
154                                 #interrupt-cells = <1>;
155                                 compatible = "riscv,cpu-intc";
156                                 interrupt-controller;
157                         };
158                 };
159
160                 cpu4: cpu@4 {
161                         compatible = "sifive,u74-mc", "riscv";
162                         reg = <4>;
163                         d-cache-block-size = <64>;
164                         d-cache-sets = <64>;
165                         d-cache-size = <32768>;
166                         d-tlb-sets = <1>;
167                         d-tlb-size = <40>;
168                         device_type = "cpu";
169                         i-cache-block-size = <64>;
170                         i-cache-sets = <64>;
171                         i-cache-size = <32768>;
172                         i-tlb-sets = <1>;
173                         i-tlb-size = <40>;
174                         mmu-type = "riscv,sv39";
175                         cpu-idle-states = <&CPU_NONRET_0_0>;
176                         next-level-cache = <&cachectrl>;
177                         riscv,isa = "rv64imafdc";
178                         tlb-split;
179                         status = "okay";
180                         operating-points-v2 = <&cluster0_opp>;
181
182                         cpu4intctrl: interrupt-controller {
183                                 #interrupt-cells = <1>;
184                                 compatible = "riscv,cpu-intc";
185                                 interrupt-controller;
186                         };
187                 };
188         };
189
190         idle-states {
191                 CPU_NONRET_0_0: cpu-nonretentive-0-0 {
192                         compatible = "riscv,idle-state";
193                         riscv,sbi-suspend-param = <0x80000000>;
194                         entry-latency-us = <600>;
195                         exit-latency-us = <1100>;
196                         min-residency-us = <2700>;
197                         wakeup-latency-us = <1500>;
198                 };
199         };
200
201         soc: soc {
202                 compatible = "simple-bus";
203                 interrupt-parent = <&plic>;
204                 #address-cells = <2>;
205                 #size-cells = <2>;
206                 #clock-cells = <1>;
207                 ranges;
208
209                 cachectrl: cache-controller@2010000 {
210                         compatible = "sifive,fu740-c000-ccache", "cache";
211                         reg = <0x0 0x2010000 0x0 0x4000 0x0 0x8000000 0x0 0x2000000>;
212                         reg-names = "control", "sideband";
213                         interrupts = <1 3 4 2>;
214                         cache-block-size = <64>;
215                         cache-level = <2>;
216                         cache-sets = <2048>;
217                         cache-size = <2097152>;
218                         cache-unified;
219                 };
220
221                 aon_syscon: aon_syscon@17010000 {
222                         compatible = "syscon";
223                         reg = <0x0 0x17010000 0x0 0x1000>;
224                 };
225
226                 stg_syscon: stg_syscon@10240000 {
227                         compatible = "syscon";
228                         reg = <0x0 0x10240000 0x0 0x1000>;
229                 };
230
231                 sys_syscon: sys_syscon@13030000 {
232                         compatible = "syscon";
233                         reg = <0x0 0x13030000 0x0 0x1000>;
234                 };
235
236                 clint: clint@2000000 {
237                         compatible = "riscv,clint0";
238                         reg = <0x0 0x2000000 0x0 0x10000>;
239                         reg-names = "control";
240                         interrupts-extended = <&cpu0intctrl 3 &cpu0intctrl 7
241                                                 &cpu1intctrl 3 &cpu1intctrl 7
242                                                 &cpu2intctrl 3 &cpu2intctrl 7
243                                                 &cpu3intctrl 3 &cpu3intctrl 7
244                                                 &cpu4intctrl 3 &cpu4intctrl 7>;
245                         #interrupt-cells = <1>;
246                 };
247
248                 plic: plic@c000000 {
249                         compatible = "riscv,plic0";
250                         reg = <0x0 0xc000000 0x0 0x4000000>;
251                         reg-names = "control";
252                         interrupts-extended = <&cpu0intctrl 11
253                                                 &cpu1intctrl 11 &cpu1intctrl 9
254                                                 &cpu2intctrl 11 &cpu2intctrl 9
255                                                 &cpu3intctrl 11 &cpu3intctrl 9
256                                                 &cpu4intctrl 11 &cpu4intctrl 9>;
257                         interrupt-controller;
258                         #interrupt-cells = <1>;
259                         riscv,max-priority = <7>;
260                         riscv,ndev = <136>;
261                 };
262
263                 clkgen: clock-controller {
264                         compatible = "starfive,jh7110-clkgen";
265                         reg = <0x0 0x13020000 0x0 0x10000>,
266                                 <0x0 0x10230000 0x0 0x10000>,
267                                 <0x0 0x17000000 0x0 0x10000>;
268                         reg-names = "sys", "stg", "aon";
269                         clocks = <&osc>, <&gmac1_rmii_refin>,
270                                  <&gmac1_rgmii_rxin>,
271                                  <&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
272                                  <&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
273                                  <&tdm_ext>, <&mclk_ext>,
274                                  <&jtag_tck_inner>, <&bist_apb>,
275                                  <&clk_rtc>,
276                                  <&gmac0_rmii_refin>, <&gmac0_rgmii_rxin>;
277                         clock-names = "osc", "gmac1_rmii_refin",
278                                 "gmac1_rgmii_rxin",
279                                 "i2stx_bclk_ext", "i2stx_lrck_ext",
280                                 "i2srx_bclk_ext", "i2srx_lrck_ext",
281                                 "tdm_ext", "mclk_ext",
282                                 "jtag_tck_inner", "bist_apb",
283                                 "clk_rtc",
284                                 "gmac0_rmii_refin", "gmac0_rgmii_rxin";
285                         #clock-cells = <1>;
286                         starfive,sys-syscon = <&sys_syscon 0x18 0x1c
287                                         0x20 0x24 0x28 0x2c 0x30 0x34>;
288                         status = "okay";
289                 };
290
291                 clkvout: clock-controller@295C0000 {
292                         compatible = "starfive,jh7110-clk-vout";
293                         reg = <0x0 0x295C0000 0x0 0x10000>;
294                         reg-names = "vout";
295                         clocks = <&hdmitx0_pixelclk>,
296                                  <&mipitx_dphy_rxesc>,
297                                  <&mipitx_dphy_txbytehs>,
298                                  <&clkgen JH7110_VOUT_SRC>,
299                                  <&clkgen JH7110_VOUT_TOP_CLK_VOUT_AHB>;
300                         clock-names = "hdmitx0_pixelclk",
301                                       "mipitx_dphy_rxesc",
302                                       "mipitx_dphy_txbytehs",
303                                       "vout_src",
304                                       "vout_top_ahb";
305                         resets = <&rstgen RSTN_U0_DOM_VOUT_TOP_SRC>;
306                         reset-names = "vout_src";
307                         #clock-cells = <1>;
308                         power-domains = <&pwrc JH7110_PD_VOUT>;
309                         status = "okay";
310                 };
311
312                 clkisp: clock-controller@19810000 {
313                         compatible = "starfive,jh7110-clk-isp";
314                         reg = <0x0 0x19810000 0x0 0x10000>;
315                         reg-names = "isp";
316                         #clock-cells = <1>;
317                         clocks = <&clkgen JH7110_ISP_TOP_CLK_DVP>,
318                                  <&clkgen JH7110_ISP_TOP_CLK_ISPCORE_2X>,
319                                  <&clkgen JH7110_ISP_TOP_CLK_ISP_AXI>,
320                                  <&clkgen JH7110_NOC_BUS_CLK_ISP_AXI>;
321                         clock-names = "u0_dom_isp_top_clk_dom_isp_top_clk_dvp",
322                                       "u0_dom_isp_top_clk_dom_isp_top_clk_ispcore_2x",
323                                       "u0_dom_isp_top_clk_dom_isp_top_clk_isp_axi",
324                                       "u0_sft7110_noc_bus_clk_isp_axi";
325                         resets = <&rstgen RSTN_U0_DOM_ISP_TOP_N>,
326                                  <&rstgen RSTN_U0_DOM_ISP_TOP_AXI>,
327                                  <&rstgen RSTN_U0_NOC_BUS_ISP_AXI_N>;
328                         reset-names = "rst_isp_top_n", "rst_isp_top_axi",
329                                       "rst_isp_noc_bus_n";
330                         power-domains = <&pwrc JH7110_PD_ISP>;
331                         status = "okay";
332                 };
333
334                 qspi: spi@13010000 {
335                         compatible = "cdns,qspi-nor";
336                         #address-cells = <1>;
337                         #size-cells = <0>;
338                         reg = <0x0 0x13010000 0x0 0x10000
339                                 0x0 0x21000000 0x0 0x400000>;
340                         clocks = <&clkgen JH7110_QSPI_CLK_REF>;
341                         clock-names = "clk_ref";
342                         resets = <&rstgen RSTN_U0_CDNS_QSPI_APB>,
343                                  <&rstgen RSTN_U0_CDNS_QSPI_AHB>,
344                                  <&rstgen RSTN_U0_CDNS_QSPI_REF>;
345                         resets-names = "rst_apb", "rst_ahb", "rst_ref";
346                         cdns,fifo-depth = <256>;
347                         cdns,fifo-width = <4>;
348                         spi-max-frequency = <250000000>;
349
350                         nor_flash: nor-flash@0 {
351                                 compatible = "jedec,spi-nor";
352                                 reg=<0>;
353                                 spi-max-frequency = <100000000>;
354                                 cdns,tshsl-ns = <1>;
355                                 cdns,tsd2d-ns = <1>;
356                                 cdns,tchsh-ns = <1>;
357                                 cdns,tslch-ns = <1>;
358                         };
359                 };
360
361                 otp: otp@17050000 {
362                         compatible = "starfive,jh7110-otp";
363                         reg = <0x0 0x17050000 0x0 0x10000>;
364                         clock-frequency = <4000000>;
365                         clocks = <&clkgen JH7110_OTPC_CLK_APB>;
366                         clock-names = "apb";
367                 };
368
369                 usbdrd30: usbdrd{
370                         compatible = "starfive,jh7110-cdns3";
371                         reg = <0x0 0x10210000 0x0 0x1000>,
372                               <0x0 0x10200000 0x0 0x1000>;
373                         clocks = <&clkgen JH7110_USB_125M>,
374                                  <&clkgen JH7110_USB0_CLK_APP_125>,
375                                  <&clkgen JH7110_USB0_CLK_LPM>,
376                                  <&clkgen JH7110_USB0_CLK_STB>,
377                                  <&clkgen JH7110_USB0_CLK_USB_APB>,
378                                  <&clkgen JH7110_USB0_CLK_AXI>,
379                                  <&clkgen JH7110_USB0_CLK_UTMI_APB>,
380                                  <&clkgen JH7110_PCIE0_CLK_APB>;
381                         clock-names = "125m","app","lpm","stb","apb","axi","utmi", "phy";
382                         resets = <&rstgen RSTN_U0_CDN_USB_PWRUP>,
383                                  <&rstgen RSTN_U0_CDN_USB_APB>,
384                                  <&rstgen RSTN_U0_CDN_USB_AXI>,
385                                  <&rstgen RSTN_U0_CDN_USB_UTMI_APB>,
386                                  <&rstgen RSTN_U0_PLDA_PCIE_APB>;
387                         reset-names = "pwrup","apb","axi","utmi", "phy";
388                         starfive,stg-syscon = <&stg_syscon 0x4 0xc4 0x148 0x1f4>;
389                         starfive,sys-syscon = <&sys_syscon 0x18>;
390                         status = "disabled";
391                         #address-cells = <2>;
392                         #size-cells = <2>;
393                         #interrupt-cells = <1>;
394                         ranges;
395                         usbdrd_cdns3: usb@10100000 {
396                                 compatible = "cdns,usb3";
397                                 reg = <0x0 0x10100000 0x0 0x10000>,
398                                       <0x0 0x10110000 0x0 0x10000>,
399                                       <0x0 0x10120000 0x0 0x10000>;
400                                 reg-names = "otg", "xhci", "dev";
401                                 interrupts = <100>, <108>, <110>;
402                                 interrupt-names = "host", "peripheral", "otg";
403                                 phy-names = "cdns3,usb3-phy", "cnds3,usb2-phy";
404                                 maximum-speed = "super-speed";
405                         };
406                 };
407
408                 timer: timer@13050000 {
409                         compatible = "starfive,jh7110-timers";
410                         reg = <0x0 0x13050000 0x0 0x10000>;
411                         interrupts = <69>, <70>, <71> ,<72>;
412                         interrupt-names = "timer0", "timer1",
413                                           "timer2", "timer3";
414                         clocks = <&clkgen JH7110_TIMER_CLK_TIMER0>,
415                                  <&clkgen JH7110_TIMER_CLK_TIMER1>,
416                                  <&clkgen JH7110_TIMER_CLK_TIMER2>,
417                                  <&clkgen JH7110_TIMER_CLK_TIMER3>,
418                                  <&clkgen JH7110_TIMER_CLK_APB>;
419                         clock-names = "timer0", "timer1",
420                                       "timer2", "timer3", "apb_clk";
421                         resets = <&rstgen RSTN_U0_TIMER_TIMER0>,
422                                  <&rstgen RSTN_U0_TIMER_TIMER1>,
423                                  <&rstgen RSTN_U0_TIMER_TIMER2>,
424                                  <&rstgen RSTN_U0_TIMER_TIMER3>,
425                                  <&rstgen RSTN_U0_TIMER_APB>;
426                         reset-names = "timer0", "timer1",
427                                       "timer2", "timer3", "apb_rst";
428                         clock-frequency = <24000000>;
429                         status = "okay";
430                 };
431
432                 wdog: wdog@13070000 {
433                         compatible = "starfive,jh7110-wdt";
434                         reg = <0x0 0x13070000 0x0 0x10000>;
435                         interrupts = <68>;
436                         interrupt-names = "wdog";
437                         clocks = <&clkgen JH7110_DSKIT_WDT_CLK_WDT>,
438                                  <&clkgen JH7110_DSKIT_WDT_CLK_APB>;
439                         clock-names = "core_clk", "apb_clk";
440                         resets = <&rstgen RSTN_U0_DSKIT_WDT_APB>,
441                                  <&rstgen RSTN_U0_DSKIT_WDT_CORE>;
442                         reset-names = "rst_apb", "rst_core";
443                         timeout-sec = <15>;
444                         status = "okay";
445                 };
446
447                 rtc: rtc@17040000 {
448                         compatible = "starfive,jh7110-rtc";
449                         reg = <0x0 0x17040000 0x0 0x10000>;
450                         interrupts = <10>, <11>, <12>;
451                         interrupt-names = "rtc_ms_pulse", "rtc_sec_pulse", "rtc";
452                         clocks = <&clkgen JH7110_RTC_HMS_CLK_APB>,
453                                  <&clkgen JH7110_RTC_HMS_CLK_CAL>;
454                         clock-names = "pclk", "cal_clk";
455                         resets = <&rstgen RSTN_U0_RTC_HMS_OSC32K>,
456                                  <&rstgen RSTN_U0_RTC_HMS_APB>,
457                                  <&rstgen RSTN_U0_RTC_HMS_CAL>;
458                         reset-names = "rst_osc", "rst_apb", "rst_cal";
459                         rtc,cal-clock-freq = <1000000>;
460                         status = "okay";
461                 };
462
463                 pwrc: power-controller@17030000 {
464                         compatible = "starfive,jh7110-pmu";
465                         reg = <0x0 0x17030000 0x0 0x10000>;
466                         interrupts = <111>;
467                         #power-domain-cells = <1>;
468                         status = "okay";
469                 };
470
471                 uart0: serial@10000000 {
472                         compatible = "snps,dw-apb-uart";
473                         reg = <0x0 0x10000000 0x0 0x10000>;
474                         reg-io-width = <4>;
475                         reg-shift = <2>;
476                         clocks = <&clkgen JH7110_UART0_CLK_CORE>,
477                                  <&clkgen JH7110_UART0_CLK_APB>;
478                         clock-names = "baudclk", "apb_pclk";
479                         resets = <&rstgen RSTN_U0_DW_UART_APB>,
480                                 <&rstgen RSTN_U0_DW_UART_CORE>;
481                         interrupts = <32>;
482                         status = "disabled";
483                 };
484
485                 uart1: serial@10010000 {
486                         compatible = "snps,dw-apb-uart";
487                         reg = <0x0 0x10010000 0x0 0x10000>;
488                         reg-io-width = <4>;
489                         reg-shift = <2>;
490                         clocks = <&clkgen JH7110_UART1_CLK_CORE>,
491                                  <&clkgen JH7110_UART1_CLK_APB>;
492                         clock-names = "baudclk", "apb_pclk";
493                         resets = <&rstgen RSTN_U1_DW_UART_APB>,
494                                 <&rstgen RSTN_U1_DW_UART_CORE>;
495                         interrupts = <33>;
496                         status = "disabled";
497                 };
498
499                 uart2: serial@10020000 {
500                         compatible = "snps,dw-apb-uart";
501                         reg = <0x0 0x10020000 0x0 0x10000>;
502                         reg-io-width = <4>;
503                         reg-shift = <2>;
504                         clocks = <&clkgen JH7110_UART2_CLK_CORE>,
505                                  <&clkgen JH7110_UART2_CLK_APB>;
506                         clock-names = "baudclk", "apb_pclk";
507                         resets = <&rstgen RSTN_U2_DW_UART_APB>,
508                                 <&rstgen RSTN_U2_DW_UART_CORE>;
509                         interrupts = <34>;
510                         status = "disabled";
511                 };
512
513                 uart3: serial@12000000 {
514                         compatible = "snps,dw-apb-uart";
515                         reg = <0x0 0x12000000 0x0 0x10000>;
516                         reg-io-width = <4>;
517                         reg-shift = <2>;
518                         clocks = <&clkgen JH7110_UART3_CLK_CORE>,
519                                  <&clkgen JH7110_UART3_CLK_APB>;
520                         clock-names = "baudclk", "apb_pclk";
521                         resets = <&rstgen RSTN_U3_DW_UART_APB>,
522                                 <&rstgen RSTN_U3_DW_UART_CORE>;
523                         interrupts = <45>;
524                         status = "disabled";
525                 };
526
527                 uart4: serial@12010000 {
528                         compatible = "snps,dw-apb-uart";
529                         reg = <0x0 0x12010000 0x0 0x10000>;
530                         reg-io-width = <4>;
531                         reg-shift = <2>;
532                         clocks = <&clkgen JH7110_UART4_CLK_CORE>,
533                                  <&clkgen JH7110_UART4_CLK_APB>;
534                         clock-names = "baudclk", "apb_pclk";
535                         resets = <&rstgen RSTN_U4_DW_UART_APB>,
536                                 <&rstgen RSTN_U4_DW_UART_CORE>;
537                         interrupts = <46>;
538                         status = "disabled";
539                 };
540
541                 uart5: serial@12020000 {
542                         compatible = "snps,dw-apb-uart";
543                         reg = <0x0 0x12020000 0x0 0x10000>;
544                         reg-io-width = <4>;
545                         reg-shift = <2>;
546                         clocks = <&clkgen JH7110_UART5_CLK_CORE>,
547                                  <&clkgen JH7110_UART5_CLK_APB>;
548                         clock-names = "baudclk", "apb_pclk";
549                         resets = <&rstgen RSTN_U5_DW_UART_APB>,
550                                 <&rstgen RSTN_U5_DW_UART_CORE>;
551                         interrupts = <47>;
552                         status = "disabled";
553                 };
554
555                 dma: dma-controller@16050000 {
556                         compatible = "starfive,jh7110-dma", "snps,axi-dma-1.01a";
557                         reg = <0x0 0x16050000 0x0 0x10000>;
558                         clocks = <&clkgen JH7110_DMA1P_CLK_AXI>,
559                                  <&clkgen JH7110_DMA1P_CLK_AHB>;
560                         clock-names = "core-clk", "cfgr-clk";
561                         resets = <&rstgen RSTN_U0_DW_DMA1P_AXI>,
562                                  <&rstgen RSTN_U0_DW_DMA1P_AHB>;
563                         reset-names = "rst_axi", "rst_ahb";
564                         interrupts = <73>;
565                         #dma-cells = <2>;
566                         dma-channels = <4>;
567                         snps,dma-masters = <1>;
568                         snps,data-width = <3>;
569                         snps,num-hs-if = <56>;
570                         snps,block-size = <65536 65536 65536 65536>;
571                         snps,priority = <0 1 2 3>;
572                         snps,axi-max-burst-len = <16>;
573                         status = "disabled";
574                 };
575
576                 gpio: gpio@13040000 {
577                         compatible = "starfive,jh7110-sys-pinctrl";
578                         reg = <0x0 0x13040000 0x0 0x10000>;
579                         reg-names = "control";
580                         clocks = <&clkgen JH7110_SYS_IOMUX_PCLK>;
581                         resets = <&rstgen RSTN_U0_SYS_IOMUX_PRESETN>;
582                         interrupts = <86>;
583                         interrupt-controller;
584                         #gpio-cells = <2>;
585                         ngpios = <64>;
586                         status = "okay";
587                 };
588
589                 gpioa: gpio@17020000 {
590                         compatible = "starfive,jh7110-aon-pinctrl";
591                         reg = <0x0 0x17020000 0x0 0x10000>;
592                         reg-names = "control";
593                         resets = <&rstgen RSTN_U0_AON_IOMUX_PRESETN>;
594                         interrupts = <85>;
595                         interrupt-controller;
596                         #gpio-cells = <2>;
597                         ngpios = <4>;
598                         status = "okay";
599                 };
600
601                 sfctemp: tmon@120e0000  {
602                         compatible = "starfive,jh7110-temp";
603                         reg = <0x0 0x120e0000 0x0 0x10000>;
604                         interrupts = <81>;
605                         clocks = <&clkgen JH7110_TEMP_SENSOR_CLK_TEMP>,
606                                  <&clkgen JH7110_TEMP_SENSOR_CLK_APB>;
607                         clock-names = "sense", "bus";
608                         resets = <&rstgen RSTN_U0_TEMP_SENSOR_TEMP>,
609                                  <&rstgen RSTN_U0_TEMP_SENSOR_APB>;
610                         reset-names = "sense", "bus";
611                         #thermal-sensor-cells = <0>;
612                         status = "disabled";
613                 };
614
615                 thermal-zones {
616                         cpu-thermal {
617                                 polling-delay-passive = <250>;
618                                 polling-delay = <15000>;
619
620                                 thermal-sensors = <&sfctemp>;
621
622                                 cooling-maps {
623                                 };
624
625                                 trips {
626                                         cpu_alert0: cpu_alert0 {
627                                                 /* milliCelsius */
628                                                 temperature = <75000>;
629                                                 hysteresis = <2000>;
630                                                 type = "passive";
631                                         };
632
633                                         cpu_crit: cpu_crit {
634                                                 /* milliCelsius */
635                                                 temperature = <90000>;
636                                                 hysteresis = <2000>;
637                                                 type = "critical";
638                                         };
639                                 };
640                         };
641                 };
642
643                 trng: trng@1600C000 {
644                         compatible = "starfive,jh7110-trng";
645                         reg = <0x0 0x1600C000 0x0 0x4000>;
646                         clocks = <&clkgen JH7110_SEC_HCLK>,
647                                  <&clkgen JH7110_SEC_MISCAHB_CLK>;
648                         clock-names = "hclk", "miscahb_clk";
649                         resets = <&rstgen RSTN_U0_SEC_TOP_HRESETN>;
650                         interrupts = <30>;
651                         status = "disabled";
652                 };
653
654                 sec_dma: sec_dma@16008000 {
655                         compatible = "arm,pl080", "arm,primecell";
656                         arm,primecell-periphid = <0x00041080>;
657                         reg = <0x0 0x16008000 0x0 0x4000>;
658                         reg-names = "sec_dma";
659                         interrupts = <29>;
660                         clocks = <&clkgen JH7110_SEC_HCLK>,
661                                  <&clkgen JH7110_SEC_MISCAHB_CLK>;
662                         clock-names = "sec_hclk","apb_pclk";
663                         resets = <&rstgen RSTN_U0_SEC_TOP_HRESETN>;
664                         reset-names = "sec_hre";
665                         lli-bus-interface-ahb1;
666                         mem-bus-interface-ahb1;
667                         memcpy-burst-size = <256>;
668                         memcpy-bus-width = <32>;
669                         #dma-cells = <2>;
670                         status = "disabled";
671                 };
672
673                 crypto: crypto@16000000 {
674                         compatible = "starfive,jh7110-sec";
675                         reg = <0x0 0x16000000 0x0 0x4000>,
676                               <0x0 0x16008000 0x0 0x4000>;
677                         reg-names = "secreg","secdma";
678                         interrupts = <28>, <29>;
679                         interrupt-names = "secirq", "dmairq";
680                         clocks = <&clkgen JH7110_SEC_HCLK>,
681                                  <&clkgen JH7110_SEC_MISCAHB_CLK>;
682                         clock-names = "sec_hclk","sec_ahb";
683                         resets = <&rstgen RSTN_U0_SEC_TOP_HRESETN>;
684                         reset-names = "sec_hre";
685                         enable-side-channel-mitigation = "true";
686                         enable-dma = "true";
687                         dmas = <&sec_dma 1 2>,
688                                <&sec_dma 0 2>;
689                         dma-names = "sec_m","sec_p";
690                         status = "disabled";
691                 };
692
693                 i2c0: i2c@10030000 {
694                         compatible = "snps,designware-i2c";
695                         reg = <0x0 0x10030000 0x0 0x10000>;
696                         clocks = <&clkgen JH7110_I2C0_CLK_CORE>,
697                                  <&clkgen JH7110_I2C0_CLK_APB>;
698                         clock-names = "ref", "pclk";
699                         resets = <&rstgen RSTN_U0_DW_I2C_APB>;
700                         interrupts = <35>;
701                         #address-cells = <1>;
702                         #size-cells = <0>;
703                         status = "disabled";
704                 };
705
706                 i2c1: i2c@10040000 {
707                         compatible = "snps,designware-i2c";
708                         reg = <0x0 0x10040000 0x0 0x10000>;
709                         clocks = <&clkgen JH7110_I2C1_CLK_CORE>,
710                                  <&clkgen JH7110_I2C1_CLK_APB>;
711                         clock-names = "ref", "pclk";
712                         resets = <&rstgen RSTN_U1_DW_I2C_APB>;
713                         interrupts = <36>;
714                         #address-cells = <1>;
715                         #size-cells = <0>;
716                         status = "disabled";
717                 };
718
719                 i2c2: i2c@10050000 {
720                         compatible = "snps,designware-i2c";
721                         reg = <0x0 0x10050000 0x0 0x10000>;
722                         clocks = <&clkgen JH7110_I2C2_CLK_CORE>,
723                                  <&clkgen JH7110_I2C2_CLK_APB>;
724                         clock-names = "ref", "pclk";
725                         resets = <&rstgen RSTN_U2_DW_I2C_APB>;
726                         interrupts = <37>;
727                         #address-cells = <1>;
728                         #size-cells = <0>;
729                         status = "disabled";
730                 };
731
732                 i2c3: i2c@12030000 {
733                         compatible = "snps,designware-i2c";
734                         reg = <0x0 0x12030000 0x0 0x10000>;
735                         clocks = <&clkgen JH7110_I2C3_CLK_CORE>,
736                                  <&clkgen JH7110_I2C3_CLK_APB>;
737                         clock-names = "ref", "pclk";
738                         resets = <&rstgen RSTN_U3_DW_I2C_APB>;
739                         interrupts = <48>;
740                         #address-cells = <1>;
741                         #size-cells = <0>;
742                         status = "disabled";
743                 };
744
745                 i2c4: i2c@12040000 {
746                         compatible = "snps,designware-i2c";
747                         reg = <0x0 0x12040000 0x0 0x10000>;
748                         clocks = <&clkgen JH7110_I2C4_CLK_CORE>,
749                                  <&clkgen JH7110_I2C4_CLK_APB>;
750                         clock-names = "ref", "pclk";
751                         resets = <&rstgen RSTN_U4_DW_I2C_APB>;
752                         interrupts = <49>;
753                         #address-cells = <1>;
754                         #size-cells = <0>;
755                         status = "disabled";
756                 };
757
758                 i2c5: i2c@12050000 {
759                         compatible = "snps,designware-i2c";
760                         reg = <0x0 0x12050000 0x0 0x10000>;
761                         clocks = <&clkgen JH7110_I2C5_CLK_CORE>,
762                                  <&clkgen JH7110_I2C5_CLK_APB>;
763                         clock-names = "ref", "pclk";
764                         resets = <&rstgen RSTN_U5_DW_I2C_APB>;
765                         interrupts = <50>;
766                         #address-cells = <1>;
767                         #size-cells = <0>;
768                         status = "disabled";
769                 };
770
771                 i2c6: i2c@12060000 {
772                         compatible = "snps,designware-i2c";
773                         reg = <0x0 0x12060000 0x0 0x10000>;
774                         clocks = <&clkgen JH7110_I2C6_CLK_CORE>,
775                                  <&clkgen JH7110_I2C6_CLK_APB>;
776                         clock-names = "ref", "pclk";
777                         resets = <&rstgen RSTN_U6_DW_I2C_APB>;
778                         interrupts = <51>;
779                         #address-cells = <1>;
780                         #size-cells = <0>;
781                         status = "disabled";
782                 };
783
784                 /* unremovable emmc as mmcblk0 */
785                 sdio0: sdio0@16010000 {
786                         compatible = "starfive,jh7110-sdio";
787                         reg = <0x0 0x16010000 0x0 0x10000>;
788                         clocks = <&clkgen JH7110_SDIO0_CLK_AHB>,
789                                  <&clkgen JH7110_SDIO0_CLK_SDCARD>;
790                         clock-names = "biu","ciu";
791                         resets = <&rstgen RSTN_U0_DW_SDIO_AHB>;
792                         reset-names = "reset";
793                         interrupts = <74>;
794                         fifo-depth = <32>;
795                         fifo-watermark-aligned;
796                         data-addr = <0>;
797                         starfive,sys-syscon = <&sys_syscon 0x14 0x1a 0x7c000000>;
798                         status = "disabled";
799                 };
800
801                 sdio1: sdio1@16020000 {
802                         compatible = "starfive,jh7110-sdio";
803                         reg = <0x0 0x16020000 0x0 0x10000>;
804                         clocks = <&clkgen JH7110_SDIO1_CLK_AHB>,
805                                  <&clkgen JH7110_SDIO1_CLK_SDCARD>;
806                         clock-names = "biu","ciu";
807                         resets = <&rstgen RSTN_U1_DW_SDIO_AHB>;
808                         reset-names = "reset";
809                         interrupts = <75>;
810                         fifo-depth = <32>;
811                         fifo-watermark-aligned;
812                         data-addr = <0>;
813                         starfive,sys-syscon = <&sys_syscon 0x9c 0x1 0x3e>;
814                         status = "disabled";
815                 };
816
817                 vin_sysctl: vin_sysctl@19800000 {
818                         compatible = "starfive,jh7110-vin";
819                         reg = <0x0 0x19800000 0x0 0x10000>,
820                                 <0x0 0x19810000 0x0 0x10000>,
821                                 <0x0 0x19820000 0x0 0x10000>,
822                                 <0x0 0x19840000 0x0 0x10000>,
823                                 <0x0 0x19870000 0x0 0x30000>,
824                                 <0x0 0x11840000 0x0 0x10000>,
825                                 <0x0 0x17030000 0x0 0x10000>,
826                                 <0x0 0x13020000 0x0 0x10000>;
827                         reg-names = "csi2rx", "vclk", "vrst", "sctrl",
828                                 "isp", "trst", "pmu", "syscrg";
829                         clocks = <&clkisp JH7110_DOM4_APB_FUNC>,
830                                  <&clkisp JH7110_U0_VIN_PCLK>,
831                                  <&clkisp JH7110_U0_VIN_SYS_CLK>,
832                                  <&clkisp JH7110_U0_ISPV2_TOP_WRAPPER_CLK_C>,
833                                  <&clkisp JH7110_DVP_INV>,
834                                  <&clkisp JH7110_U0_VIN_CLK_P_AXIWR>,
835                                  <&clkisp JH7110_MIPI_RX0_PXL>,
836                                  <&clkisp JH7110_U0_VIN_PIXEL_CLK_IF0>,
837                                  <&clkisp JH7110_U0_VIN_PIXEL_CLK_IF1>,
838                                  <&clkisp JH7110_U0_VIN_PIXEL_CLK_IF2>,
839                                  <&clkisp JH7110_U0_VIN_PIXEL_CLK_IF3>,
840                                  <&clkisp JH7110_U0_M31DPHY_CFGCLK_IN>,
841                                  <&clkisp JH7110_U0_M31DPHY_REFCLK_IN>,
842                                  <&clkisp JH7110_U0_M31DPHY_TXCLKESC_LAN0>,
843                                  <&clkgen JH7110_ISP_TOP_CLK_ISPCORE_2X>,
844                                  <&clkgen JH7110_ISP_TOP_CLK_ISP_AXI>;
845                         clock-names = "clk_apb_func", "clk_pclk", "clk_sys_clk",
846                                 "clk_wrapper_clk_c", "clk_dvp_inv", "clk_axiwr",
847                                 "clk_mipi_rx0_pxl", "clk_pixel_clk_if0",
848                                 "clk_pixel_clk_if1", "clk_pixel_clk_if2",
849                                 "clk_pixel_clk_if3", "clk_m31dphy_cfgclk_in",
850                                 "clk_m31dphy_refclk_in", "clk_m31dphy_txclkesc_lan0",
851                                 "clk_ispcore_2x", "clk_isp_axi";
852                         resets = <&rstgen RSTN_U0_ISPV2_TOP_WRAPPER_P>,
853                                  <&rstgen RSTN_U0_ISPV2_TOP_WRAPPER_C>,
854                                  <&rstgen RSTN_U0_VIN_N_PCLK>,
855                                  <&rstgen RSTN_U0_VIN_N_SYS_CLK>,
856                                  <&rstgen RSTN_U0_VIN_P_AXIRD>,
857                                  <&rstgen RSTN_U0_VIN_P_AXIWR>,
858                                  <&rstgen RSTN_U0_VIN_N_PIXEL_CLK_IF0>,
859                                  <&rstgen RSTN_U0_VIN_N_PIXEL_CLK_IF1>,
860                                  <&rstgen RSTN_U0_VIN_N_PIXEL_CLK_IF2>,
861                                  <&rstgen RSTN_U0_VIN_N_PIXEL_CLK_IF3>,
862                                  <&rstgen RSTN_U0_M31DPHY_HW>,
863                                  <&rstgen RSTN_U0_M31DPHY_B09_ALWAYS_ON>,
864                                  <&rstgen RSTN_U0_DOM_ISP_TOP_N>,
865                                  <&rstgen RSTN_U0_DOM_ISP_TOP_AXI>;
866                         reset-names = "rst_wrapper_p", "rst_wrapper_c", "rst_pclk",
867                                 "rst_sys_clk", "rst_axird", "rst_axiwr", "rst_pixel_clk_if0",
868                                 "rst_pixel_clk_if1", "rst_pixel_clk_if2", "rst_pixel_clk_if3",
869                                 "rst_m31dphy_hw", "rst_m31dphy_b09_always_on",
870                                 "rst_isp_top_n", "rst_isp_top_axi";
871                         starfive,aon-syscon = <&aon_syscon 0x00>;
872                         power-domains = <&pwrc JH7110_PD_ISP>;
873                         /* irq nr: vin, isp, isp_csi, isp_scd, isp_csiline */
874                         interrupts = <92 87 88 89 90>;
875                         status = "disabled";
876                 };
877
878                 jpu: jpu@11900000 {
879                         compatible = "starfive,jpu";
880                         reg = <0x0 0x13090000 0x0 0x300>;
881                         interrupts = <14>;
882                         clocks = <&clkgen JH7110_CODAJ12_CLK_AXI>,
883                                  <&clkgen JH7110_CODAJ12_CLK_CORE>,
884                                  <&clkgen JH7110_CODAJ12_CLK_APB>,
885                                  <&clkgen JH7110_NOC_BUS_CLK_VDEC_AXI>;
886                         clock-names = "axi_clk", "core_clk",
887                                       "apb_clk", "noc_bus";
888                         resets = <&rstgen RSTN_U0_CODAJ12_AXI>,
889                                  <&rstgen RSTN_U0_CODAJ12_CORE>,
890                                  <&rstgen RSTN_U0_CODAJ12_APB>;
891                         reset-names = "rst_axi", "rst_core", "rst_apb";
892                         power-domains = <&pwrc JH7110_PD_VDEC>;
893                         status = "disabled";
894                 };
895
896                 vpu_dec: vpu_dec@130A0000 {
897                         compatible = "starfive,vdec";
898                         reg = <0x0 0x130A0000 0x0 0x10000>;
899                         interrupts = <13>;
900                         clocks = <&clkgen JH7110_WAVE511_CLK_AXI>,
901                                  <&clkgen JH7110_WAVE511_CLK_BPU>,
902                                  <&clkgen JH7110_WAVE511_CLK_VCE>,
903                                  <&clkgen JH7110_WAVE511_CLK_APB>,
904                                  <&clkgen JH7110_NOC_BUS_CLK_VDEC_AXI>;
905                         clock-names = "axi_clk", "bpu_clk", "vce_clk",
906                                       "apb_clk", "noc_bus";
907                         resets = <&rstgen RSTN_U0_WAVE511_AXI>,
908                                 <&rstgen RSTN_U0_WAVE511_BPU>,
909                                 <&rstgen RSTN_U0_WAVE511_VCE>,
910                                 <&rstgen RSTN_U0_WAVE511_APB>,
911                                 <&rstgen RSTN_U0_AXIMEM_128B_AXI>;
912                         reset-names = "rst_axi", "rst_bpu", "rst_vce",
913                                       "rst_apb", "rst_sram";
914                         starfive,vdec_noc_ctrl;
915                         power-domains = <&pwrc JH7110_PD_VDEC>;
916                         status = "disabled";
917                 };
918
919                 vpu_enc: vpu_enc@130B0000 {
920                         compatible = "starfive,venc";
921                         reg = <0x0 0x130B0000 0x0 0x10000>;
922                         interrupts = <15>;
923                         clocks = <&clkgen JH7110_WAVE420L_CLK_AXI>,
924                                  <&clkgen JH7110_WAVE420L_CLK_BPU>,
925                                  <&clkgen JH7110_WAVE420L_CLK_VCE>,
926                                  <&clkgen JH7110_WAVE420L_CLK_APB>,
927                                  <&clkgen JH7110_NOC_BUS_CLK_VENC_AXI>;
928                         clock-names = "axi_clk", "bpu_clk", "vce_clk",
929                                       "apb_clk", "noc_bus";
930                         resets = <&rstgen RSTN_U0_WAVE420L_AXI>,
931                                  <&rstgen RSTN_U0_WAVE420L_BPU>,
932                                  <&rstgen RSTN_U0_WAVE420L_VCE>,
933                                  <&rstgen RSTN_U0_WAVE420L_APB>,
934                                  <&rstgen RSTN_U1_AXIMEM_128B_AXI>;
935                         reset-names = "rst_axi", "rst_bpu", "rst_vce",
936                                       "rst_apb", "rst_sram";
937                         starfive,venc_noc_ctrl;
938                         power-domains = <&pwrc JH7110_PD_VENC>;
939                         status = "disabled";
940                 };
941
942                 rstgen: reset-controller {
943                         compatible = "starfive,jh7110-reset";
944                         reg = <0x0 0x13020000 0x0 0x10000>,
945                                 <0x0 0x10230000 0x0 0x10000>,
946                                 <0x0 0x17000000 0x0 0x10000>,
947                                 <0x0 0x19810000 0x0 0x10000>,
948                                 <0x0 0x295C0000 0x0 0x10000>;
949                         reg-names = "syscrg", "stgcrg", "aoncrg", "ispcrg", "voutcrg";
950                         #reset-cells = <1>;
951                         status = "okay";
952                 };
953
954                 stmmac_axi_setup: stmmac-axi-config {
955                         snps,wr_osr_lmt = <0xf>;
956                         snps,rd_osr_lmt = <0xf>;
957                         snps,blen = <256 128 64 32 0 0 0>;
958                 };
959
960                 gmac0: ethernet@16030000 {
961                         compatible = "starfive,dwmac","snps,dwmac-5.10a";
962                         reg = <0x0 0x16030000 0x0 0x10000>;
963                         clock-names = "gtx",
964                                 "tx",
965                                 "ptp_ref",
966                                 "stmmaceth",
967                                 "pclk",
968                                 "gtxc";
969                         clocks = <&clkgen JH7110_GMAC0_GTXCLK>,
970                                  <&clkgen JH7110_U0_GMAC5_CLK_TX>,
971                                  <&clkgen JH7110_GMAC0_PTP>,
972                                  <&clkgen JH7110_U0_GMAC5_CLK_AHB>,
973                                  <&clkgen JH7110_U0_GMAC5_CLK_AXI>,
974                                  <&clkgen JH7110_GMAC0_GTXC>;
975                         resets = <&rstgen RSTN_U0_DW_GMAC5_AXI64_AHB>,
976                                  <&rstgen RSTN_U0_DW_GMAC5_AXI64_AXI>;
977                         reset-names = "ahb", "stmmaceth";
978                         interrupts = <7>, <6>, <5> ;
979                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
980                         max-frame-size = <9000>;
981                         phy-mode = "rgmii-id";
982                         snps,multicast-filter-bins = <64>;
983                         snps,perfect-filter-entries = <128>;
984                         rx-fifo-depth = <2048>;
985                         tx-fifo-depth = <2048>;
986                         snps,fixed-burst;
987                         snps,no-pbl-x8;
988                         snps,force_thresh_dma_mode;
989                         snps,axi-config = <&stmmac_axi_setup>;
990                         snps,tso;
991                         snps,en-tx-lpi-clockgating;
992                         snps,en-lpi;
993                         snps,write-requests = <4>;
994                         snps,read-requests = <4>;
995                         snps,burst-map = <0x7>;
996                         snps,txpbl = <16>;
997                         snps,rxpbl = <16>;
998                         status = "disabled";
999                 };
1000
1001                 gmac1: ethernet@16040000 {
1002                         compatible = "starfive,dwmac","snps,dwmac-5.10a";
1003                         reg = <0x0 0x16040000 0x0 0x10000>;
1004                         clock-names = "gtx",
1005                                 "tx",
1006                                 "ptp_ref",
1007                                 "stmmaceth",
1008                                 "pclk",
1009                                 "gtxc";
1010                         clocks = <&clkgen JH7110_GMAC1_GTXCLK>,
1011                                  <&clkgen JH7110_GMAC5_CLK_TX>,
1012                                  <&clkgen JH7110_GMAC5_CLK_PTP>,
1013                                  <&clkgen JH7110_GMAC5_CLK_AHB>,
1014                                  <&clkgen JH7110_GMAC5_CLK_AXI>,
1015                                  <&clkgen JH7110_GMAC1_GTXC>;
1016                         resets = <&rstgen RSTN_U1_DW_GMAC5_AXI64_H_N>,
1017                                  <&rstgen RSTN_U1_DW_GMAC5_AXI64_A_I>;
1018                         reset-names = "ahb", "stmmaceth";
1019                         interrupts = <78>, <77>, <76> ;
1020                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
1021                         max-frame-size = <9000>;
1022                         phy-mode = "rgmii-id";
1023                         snps,multicast-filter-bins = <64>;
1024                         snps,perfect-filter-entries = <128>;
1025                         rx-fifo-depth = <2048>;
1026                         tx-fifo-depth = <2048>;
1027                         snps,fixed-burst;
1028                         snps,no-pbl-x8;
1029                         snps,force_thresh_dma_mode;
1030                         snps,axi-config = <&stmmac_axi_setup>;
1031                         snps,tso;
1032                         snps,en-tx-lpi-clockgating;
1033                         snps,en-lpi;
1034                         snps,write-requests = <4>;
1035                         snps,read-requests = <4>;
1036                         snps,burst-map = <0x7>;
1037                         snps,txpbl = <16>;
1038                         snps,rxpbl = <16>;
1039                         status = "disabled";
1040                 };
1041
1042                 gpu: gpu@18000000 {
1043                         compatible = "img-gpu";
1044                         reg = <0x0 0x18000000 0x0 0x100000>,
1045                                 <0x0 0x130C000 0x0 0x10000>;
1046                         clocks = <&clkgen JH7110_GPU_CORE>,
1047                                  <&clkgen JH7110_GPU_CLK_APB>,
1048                                  <&clkgen JH7110_GPU_RTC_TOGGLE>,
1049                                  <&clkgen JH7110_GPU_CORE_CLK>,
1050                                  <&clkgen JH7110_GPU_SYS_CLK>,
1051                                  <&clkgen JH7110_NOC_BUS_CLK_GPU_AXI>;
1052                         clock-names = "clk_bv", "clk_apb", "clk_rtc",
1053                                         "clk_core", "clk_sys", "clk_axi";
1054                         resets = <&rstgen RSTN_U0_IMG_GPU_APB>,
1055                                  <&rstgen RSTN_U0_IMG_GPU_DOMA>;
1056                         reset-names = "rst_apb", "rst_doma";
1057                         power-domains = <&pwrc JH7110_PD_GPUA>;
1058                         interrupts = <82>;
1059                         current-clock = <8000000>;
1060                         status = "disabled";
1061                 };
1062
1063                 can0: can@130d0000 {
1064                         compatible = "starfive,jh7110-can", "ipms,can";
1065                         reg = <0x0 0x130d0000 0x0 0x1000>;
1066                         interrupts = <112>;
1067                         clocks = <&clkgen JH7110_CAN0_CTRL_CLK_APB>,
1068                                  <&clkgen JH7110_CAN0_CTRL_CLK_CAN>,
1069                                  <&clkgen JH7110_CAN0_CTRL_CLK_TIMER>;
1070                         clock-names = "apb_clk", "core_clk", "timer_clk";
1071                         resets = <&rstgen RSTN_U0_CAN_CTRL_APB>,
1072                                  <&rstgen RSTN_U0_CAN_CTRL_CORE>,
1073                                  <&rstgen RSTN_U0_CAN_CTRL_TIMER>;
1074                         reset-names = "rst_apb", "rst_core", "rst_timer";
1075                         frequency = <40000000>;
1076                         starfive,sys-syscon = <&sys_syscon 0x10 0x3 0x8>;
1077                         syscon,can_or_canfd = <0>;
1078                         status = "disabled";
1079                 };
1080
1081                 can1: can@130e0000 {
1082                         compatible = "starfive,jh7110-can", "ipms,can";
1083                         reg = <0x0 0x130e0000 0x0 0x1000>;
1084                         interrupts = <113>;
1085                         clocks = <&clkgen JH7110_CAN1_CTRL_CLK_APB>,
1086                                  <&clkgen JH7110_CAN1_CTRL_CLK_CAN>,
1087                                  <&clkgen JH7110_CAN1_CTRL_CLK_TIMER>;
1088                         clock-names = "apb_clk", "core_clk", "timer_clk";
1089                         resets = <&rstgen RSTN_U1_CAN_CTRL_APB>,
1090                                  <&rstgen RSTN_U1_CAN_CTRL_CORE>,
1091                                  <&rstgen RSTN_U1_CAN_CTRL_TIMER>;
1092                         reset-names = "rst_apb", "rst_core", "rst_timer";
1093                         frequency = <40000000>;
1094                         starfive,sys-syscon = <&sys_syscon 0x88 0x12 0x40000>;
1095                         syscon,can_or_canfd = <1>;
1096                         status = "disabled";
1097                 };
1098
1099                 tdm: tdm@10090000 {
1100                         compatible = "starfive,jh7110-tdm";
1101                         reg = <0x0 0x10090000 0x0 0x1000>;
1102                         reg-names = "tdm";
1103                         clocks = <&clkgen JH7110_AHB0>,
1104                                  <&clkgen JH7110_TDM_CLK_AHB>,
1105                                  <&clkgen JH7110_APB0>,
1106                                  <&clkgen JH7110_TDM_CLK_APB>,
1107                                  <&clkgen JH7110_TDM_INTERNAL>,
1108                                  <&tdm_ext>,
1109                                  <&clkgen JH7110_TDM_CLK_TDM>,
1110                                  <&clkgen JH7110_MCLK_INNER>;
1111                         clock-names = "clk_ahb0", "clk_tdm_ahb",
1112                                       "clk_apb0", "clk_tdm_apb",
1113                                       "clk_tdm_internal", "clk_tdm_ext",
1114                                       "clk_tdm", "mclk_inner";
1115                         resets = <&rstgen RSTN_U0_TDM16SLOT_AHB>,
1116                                  <&rstgen RSTN_U0_TDM16SLOT_APB>,
1117                                  <&rstgen RSTN_U0_TDM16SLOT_TDM>;
1118                         reset-names = "tdm_ahb", "tdm_apb", "tdm_rst";
1119                         dmas = <&dma 20 1>, <&dma 21 1>;
1120                         dma-names = "rx","tx";
1121                         #sound-dai-cells = <0>;
1122                         status = "disabled";
1123                 };
1124
1125                 spdif0: spdif0@100a0000 {
1126                         compatible = "starfive,jh7110-spdif";
1127                         reg = <0x0 0x100a0000 0x0 0x1000>;
1128                         clocks = <&clkgen JH7110_SPDIF_CLK_APB>,
1129                                  <&clkgen JH7110_SPDIF_CLK_CORE>,
1130                                  <&clkgen JH7110_AUDIO_ROOT>,
1131                                  <&clkgen JH7110_MCLK_INNER>,
1132                                  <&mclk_ext>, <&clkgen JH7110_MCLK>;
1133                         clock-names = "spdif-apb", "spdif-core",
1134                                       "audroot", "mclk_inner",
1135                                       "mclk_ext", "mclk";
1136                         resets = <&rstgen RSTN_U0_CDNS_SPDIF_APB>;
1137                         reset-names = "rst_apb";
1138                         interrupts = <84>;
1139                         interrupt-names = "tx";
1140                         #sound-dai-cells = <0>;
1141                         status = "disabled";
1142                 };
1143
1144                 pwmdac: pwmdac@100b0000 {
1145                         compatible = "starfive,jh7110-pwmdac";
1146                         reg = <0x0 0x100b0000 0x0 0x1000>;
1147                         clocks = <&clkgen JH7110_APB0>,
1148                                  <&clkgen JH7110_PWMDAC_CLK_APB>,
1149                                  <&clkgen JH7110_PWMDAC_CLK_CORE>;
1150                         clock-names = "apb0", "pwmdac-apb", "pwmdac-core";
1151                         resets = <&rstgen RSTN_U0_PWMDAC_APB>;
1152                         reset-names = "rst-apb";
1153                         dmas = <&dma 22 1>;
1154                         dma-names = "tx";
1155                         #sound-dai-cells = <0>;
1156                         status = "disabled";
1157                 };
1158
1159                 i2stx: i2stx@100c0000 {
1160                         compatible = "snps,designware-i2stx";
1161                         reg = <0x0 0x100c0000 0x0 0x1000>;
1162                         interrupt-names = "tx";
1163                         #sound-dai-cells = <0>;
1164                         dmas = <&dma 28 1>;
1165                         dma-names = "rx";
1166                         status = "disabled";
1167                 };
1168
1169                 pdm: pdm@100d0000 {
1170                         compatible = "starfive,jh7110-pdm";
1171                         reg = <0x0 0x100d0000 0x0 0x1000>;
1172                         reg-names = "pdm";
1173                         clocks = <&clkgen JH7110_PDM_CLK_DMIC>,
1174                                  <&clkgen JH7110_APB0>,
1175                                  <&clkgen JH7110_PDM_CLK_APB>,
1176                                  <&clkgen JH7110_MCLK>,
1177                                  <&mclk_ext>;
1178                         clock-names = "pdm_mclk", "clk_apb0",
1179                                       "pdm_apb", "clk_mclk",
1180                                       "mclk_ext";
1181                         resets = <&rstgen RSTN_U0_PDM_4MIC_DMIC>,
1182                                  <&rstgen RSTN_U0_PDM_4MIC_APB>;
1183                         reset-names = "pdm_dmic", "pdm_apb";
1184                         #sound-dai-cells = <0>;
1185                 };
1186
1187                 i2srx_mst: i2srx_mst@100e0000 {
1188                         compatible = "starfive,jh7110-i2srx-master";
1189                         reg = <0x0 0x100e0000 0x0 0x1000>;
1190                         clocks = <&clkgen JH7110_APB0>,
1191                                  <&clkgen JH7110_I2SRX0_3CH_CLK_APB>,
1192                                  <&clkgen JH7110_I2SRX_3CH_BCLK_MST>,
1193                                  <&clkgen JH7110_I2SRX_3CH_LRCK_MST>,
1194                                  <&clkgen JH7110_I2SRX0_3CH_BCLK>,
1195                                  <&clkgen JH7110_I2SRX0_3CH_LRCK>;
1196                         clock-names = "apb0", "i2srx_apb",
1197                                       "i2srx_bclk_mst", "i2srx_lrck_mst",
1198                                       "i2srx_bclk", "i2srx_lrck";
1199                         resets = <&rstgen RSTN_U0_I2SRX_3CH_APB>,
1200                                  <&rstgen RSTN_U0_I2SRX_3CH_BCLK>;
1201                         reset-names = "rst_apb_rx", "rst_bclk_rx";
1202                         dmas = <&dma 24 1>;
1203                         dma-names = "rx";
1204                         starfive,sys-syscon = <&sys_syscon 0x18 0x34>;
1205                         #sound-dai-cells = <0>;
1206                         status = "disabled";
1207                 };
1208
1209                 i2srx_3ch: i2srx_3ch@100e0000 {
1210                         compatible = "starfive,jh7110-i2srx", "snps,designware-i2s";
1211                         reg = <0x0 0x100e0000 0x0 0x1000>;
1212                         clocks = <&clkgen JH7110_APB0>,
1213                                  <&clkgen JH7110_I2SRX0_3CH_CLK_APB>,
1214                                  <&clkgen JH7110_AUDIO_ROOT>,
1215                                  <&clkgen JH7110_MCLK_INNER>,
1216                                  <&clkgen JH7110_I2SRX_3CH_BCLK_MST>,
1217                                  <&clkgen JH7110_I2SRX_3CH_LRCK_MST>,
1218                                  <&clkgen JH7110_I2SRX0_3CH_BCLK>,
1219                                  <&clkgen JH7110_I2SRX0_3CH_LRCK>,
1220                                  <&clkgen JH7110_MCLK>,
1221                                  <&i2srx_bclk_ext>,
1222                                  <&i2srx_lrck_ext>;
1223                         clock-names = "apb0", "3ch-apb",
1224                                       "audioroot", "mclk-inner",
1225                                       "bclk_mst", "3ch-lrck",
1226                                       "rx-bclk", "rx-lrck",
1227                                       "mclk", "bclk-ext",
1228                                       "lrck-ext";
1229                         resets = <&rstgen RSTN_U0_I2SRX_3CH_APB>,
1230                                  <&rstgen RSTN_U0_I2SRX_3CH_BCLK>;
1231                         dmas = <&dma 24 1>;
1232                         dma-names = "rx";
1233                         starfive,sys-syscon = <&sys_syscon 0x18 0x34>;
1234                         #sound-dai-cells = <0>;
1235                         status = "disabled";
1236                 };
1237
1238                 i2stx_4ch0: i2stx_4ch0@120b0000 {
1239                         compatible = "starfive,jh7110-i2stx-4ch0", "snps,designware-i2s";
1240                         reg = <0x0 0x120b0000 0x0 0x1000>;
1241                         clocks = <&clkgen JH7110_MCLK_INNER>,
1242                                  <&clkgen JH7110_I2STX_4CH0_BCLK_MST>,
1243                                  <&clkgen JH7110_I2STX_4CH0_LRCK_MST>,
1244                                  <&clkgen JH7110_MCLK>,
1245                                  <&clkgen JH7110_I2STX0_4CHBCLK>,
1246                                  <&clkgen JH7110_I2STX0_4CHLRCK>,
1247                                  <&clkgen JH7110_I2STX0_4CHCLK_APB>,
1248                                  <&mclk_ext>;
1249                         clock-names = "inner", "bclk-mst",
1250                                         "lrck-mst", "mclk",
1251                                         "bclk0", "lrck0",
1252                                         "i2s_apb", "mclk_ext";
1253                         resets = <&rstgen RSTN_U0_I2STX_4CH_APB>,
1254                                  <&rstgen RSTN_U0_I2STX_4CH_BCLK>;
1255                         reset-names = "rst_apb", "rst_bclk";
1256                         dmas = <&dma 47 1>;
1257                         dma-names = "tx";
1258                         #sound-dai-cells = <0>;
1259                         status = "disabled";
1260                 };
1261
1262                 i2stx_4ch1: i2stx_4ch1@120c0000 {
1263                         compatible = "starfive,jh7110-i2stx-4ch1", "snps,designware-i2s";
1264                         reg = <0x0 0x120c0000 0x0 0x1000>;
1265                         clocks = <&clkgen JH7110_AUDIO_ROOT>,
1266                                  <&clkgen JH7110_MCLK_INNER>,
1267                                  <&clkgen JH7110_I2STX_4CH1_BCLK_MST>,
1268                                  <&clkgen JH7110_I2STX_4CH1_LRCK_MST>,
1269                                  <&clkgen JH7110_MCLK>,
1270                                  <&clkgen JH7110_I2STX1_4CHBCLK>,
1271                                  <&clkgen JH7110_I2STX1_4CHLRCK>,
1272                                  <&clkgen JH7110_MCLK_OUT>,
1273                                  <&clkgen JH7110_APB0>,
1274                                  <&clkgen JH7110_I2STX1_4CHCLK_APB>,
1275                                  <&mclk_ext>,
1276                                  <&i2stx_bclk_ext>,
1277                                  <&i2stx_lrck_ext>;
1278                         clock-names = "audroot", "mclk_inner", "bclk_mst",
1279                                       "lrck_mst", "mclk", "4chbclk",
1280                                       "4chlrck", "mclk_out",
1281                                       "apb0", "clk_apb",
1282                                       "mclk_ext", "bclk_ext", "lrck_ext";
1283                         resets = <&rstgen RSTN_U1_I2STX_4CH_APB>,
1284                                  <&rstgen RSTN_U1_I2STX_4CH_BCLK>;
1285                         dmas = <&dma 48 1>;
1286                         dma-names = "tx";
1287                         #sound-dai-cells = <0>;
1288                         status = "disabled";
1289                 };
1290
1291                 ptc: pwm@120d0000 {
1292                         compatible = "starfive,jh7110-pwm";
1293                         reg = <0x0 0x120d0000 0x0 0x10000>;
1294                         reg-names = "control";
1295                         clocks = <&clkgen JH7110_PWM_CLK_APB>;
1296                         resets = <&rstgen RSTN_U0_PWM_8CH_APB>;
1297                         starfive,approx-freq = <2000000>;
1298                         #pwm-cells=<3>;
1299                         starfive,npwm = <8>;
1300                         status = "disabled";
1301                 };
1302
1303                 spdif_transmitter: spdif_transmitter {
1304                         compatible = "linux,spdif-dit";
1305                         #sound-dai-cells = <0>;
1306                         status = "disabled";
1307                 };
1308
1309                 pwmdac_codec: pwmdac-transmitter {
1310                         compatible = "starfive,jh7110-pwmdac-dit";
1311                         #sound-dai-cells = <0>;
1312                         status = "disabled";
1313                 };
1314
1315                 dmic_codec: dmic_codec {
1316                         compatible = "dmic-codec";
1317                         #sound-dai-cells = <0>;
1318                         status = "disabled";
1319                 };
1320
1321                 spi0: spi@10060000 {
1322                         compatible = "arm,pl022", "arm,primecell";
1323                         reg = <0x0 0x10060000 0x0 0x10000>;
1324                         clocks = <&clkgen JH7110_SPI0_CLK_APB>;
1325                         clock-names = "apb_pclk";
1326                         resets = <&rstgen RSTN_U0_SSP_SPI_APB>;
1327                         reset-names = "rst_apb";
1328                         interrupts = <38>;
1329                         /* shortage of dma channel that not be used */
1330                         /*dmas = <&dma 14 1>, <&dma 15 1>;*/
1331                         /*dma-names = "rx","tx";*/
1332                         arm,primecell-periphid = <0x00041022>;
1333                         num-cs = <1>;
1334                         #address-cells = <1>;
1335                         #size-cells = <0>;
1336                         status = "disabled";
1337                 };
1338
1339                 spi1: spi@10070000 {
1340                         compatible = "arm,pl022", "arm,primecell";
1341                         reg = <0x0 0x10070000 0x0 0x10000>;
1342                         clocks = <&clkgen JH7110_SPI1_CLK_APB>;
1343                         clock-names = "apb_pclk";
1344                         resets = <&rstgen RSTN_U1_SSP_SPI_APB>;
1345                         reset-names = "rst_apb";
1346                         interrupts = <39>;
1347                         /* shortage of dma channel that not be used */
1348                         /*dmas = <&dma 16 1>, <&dma 17 1>;*/
1349                         /*dma-names = "rx","tx";*/
1350                         arm,primecell-periphid = <0x00041022>;
1351                         num-cs = <1>;
1352                         #address-cells = <1>;
1353                         #size-cells = <0>;
1354                         status = "disabled";
1355                 };
1356
1357                 spi2: spi@10080000 {
1358                         compatible = "arm,pl022", "arm,primecell";
1359                         reg = <0x0 0x10080000 0x0 0x10000>;
1360                         clocks = <&clkgen JH7110_SPI2_CLK_APB>;
1361                         clock-names = "apb_pclk";
1362                         resets = <&rstgen RSTN_U2_SSP_SPI_APB>;
1363                         reset-names = "rst_apb";
1364                         interrupts = <40>;
1365                         /* shortage of dma channel that not be used */
1366                         /*dmas = <&dma 18 1>, <&dma 19 1>;*/
1367                         /*dma-names = "rx","tx";*/
1368                         arm,primecell-periphid = <0x00041022>;
1369                         num-cs = <1>;
1370                         #address-cells = <1>;
1371                         #size-cells = <0>;
1372                         status = "disabled";
1373                 };
1374
1375                 spi3: spi@12070000 {
1376                         compatible = "arm,pl022", "arm,primecell";
1377                         reg = <0x0 0x12070000 0x0 0x10000>;
1378                         clocks = <&clkgen JH7110_SPI3_CLK_APB>;
1379                         clock-names = "apb_pclk";
1380                         resets = <&rstgen RSTN_U3_SSP_SPI_APB>;
1381                         reset-names = "rst_apb";
1382                         interrupts = <52>;
1383                         /* shortage of dma channel that not be used */
1384                         /*dmas = <&dma 39 1>, <&dma 40 1>;*/
1385                         /*dma-names = "rx","tx";*/
1386                         arm,primecell-periphid = <0x00041022>;
1387                         num-cs = <1>;
1388                         #address-cells = <1>;
1389                         #size-cells = <0>;
1390                         status = "disabled";
1391                 };
1392
1393                 spi4: spi@12080000 {
1394                         compatible = "arm,pl022", "arm,primecell";
1395                         reg = <0x0 0x12080000 0x0 0x10000>;
1396                         clocks = <&clkgen JH7110_SPI4_CLK_APB>;
1397                         clock-names = "apb_pclk";
1398                         resets = <&rstgen RSTN_U4_SSP_SPI_APB>;
1399                         reset-names = "rst_apb";
1400                         interrupts = <53>;
1401                         /* shortage of dma channel that not be used */
1402                         /*dmas = <&dma 41 1>, <&dma 42 1>;*/
1403                         /*dma-names = "rx","tx";*/
1404                         arm,primecell-periphid = <0x00041022>;
1405                         num-cs = <1>;
1406                         #address-cells = <1>;
1407                         #size-cells = <0>;
1408                         status = "disabled";
1409                 };
1410
1411                 spi5: spi@12090000 {
1412                         compatible = "arm,pl022", "arm,primecell";
1413                         reg = <0x0 0x12090000 0x0 0x10000>;
1414                         clocks = <&clkgen JH7110_SPI5_CLK_APB>;
1415                         clock-names = "apb_pclk";
1416                         resets = <&rstgen RSTN_U5_SSP_SPI_APB>;
1417                         reset-names = "rst_apb";
1418                         interrupts = <54>;
1419                         /* shortage of dma channel that not be used */
1420                         /*dmas = <&dma 43 1>, <&dma 44 1>;*/
1421                         /*dma-names = "rx","tx";*/
1422                         arm,primecell-periphid = <0x00041022>;
1423                         num-cs = <1>;
1424                         #address-cells = <1>;
1425                         #size-cells = <0>;
1426                         status = "disabled";
1427                 };
1428
1429                 spi6: spi@120A0000 {
1430                         compatible = "arm,pl022", "arm,primecell";
1431                         reg = <0x0 0x120A0000 0x0 0x10000>;
1432                         clocks = <&clkgen JH7110_SPI6_CLK_APB>;
1433                         clock-names = "apb_pclk";
1434                         resets = <&rstgen RSTN_U6_SSP_SPI_APB>;
1435                         reset-names = "rst_apb";
1436                         interrupts = <55>;
1437                         /* shortage of dma channel that not be used */
1438                         /*dmas = <&dma 45 1>, <&dma 46 1>;*/
1439                         /*dma-names = "rx","tx";*/
1440                         arm,primecell-periphid = <0x00041022>;
1441                         num-cs = <1>;
1442                         #address-cells = <1>;
1443                         #size-cells = <0>;
1444                         status = "disabled";
1445                 };
1446
1447                 pcie0: pcie@2B000000 {
1448                         compatible = "starfive,jh7110-pcie","plda,pci-xpressrich3-axi";
1449                         #address-cells = <3>;
1450                         #size-cells = <2>;
1451                         #interrupt-cells = <1>;
1452                         reg = <0x0 0x2B000000 0x0 0x1000000
1453                                0x9 0x40000000 0x0 0x10000000>;
1454                         reg-names = "reg", "config";
1455                         device_type = "pci";
1456                         starfive,stg-syscon = <&stg_syscon 0xc0 0xc4 0x130 0x1b8>;
1457                         bus-range = <0x0 0xff>;
1458                         ranges = <0x82000000  0x0 0x30000000  0x0 0x30000000 0x0 0x08000000>,
1459                                  <0xc3000000  0x9 0x00000000  0x9 0x00000000 0x0 0x40000000>;
1460                         msi-parent = <&plic>;
1461                         interrupts = <56>;
1462                         interrupt-controller;
1463                         interrupt-names = "msi";
1464                         interrupt-parent = <&plic>;
1465                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1466                         interrupt-map = <0x0 0x0 0x0 0x1 &plic 0x1>,
1467                                         <0x0 0x0 0x0 0x2 &plic 0x2>,
1468                                         <0x0 0x0 0x0 0x3 &plic 0x3>,
1469                                         <0x0 0x0 0x0 0x4 &plic 0x4>;
1470                         resets = <&rstgen RSTN_U0_PLDA_PCIE_AXI_MST0>,
1471                                  <&rstgen RSTN_U0_PLDA_PCIE_AXI_SLV0>,
1472                                  <&rstgen RSTN_U0_PLDA_PCIE_AXI_SLV>,
1473                                  <&rstgen RSTN_U0_PLDA_PCIE_BRG>,
1474                                  <&rstgen RSTN_U0_PLDA_PCIE_CORE>,
1475                                  <&rstgen RSTN_U0_PLDA_PCIE_APB>;
1476                         reset-names = "rst_mst0", "rst_slv0", "rst_slv",
1477                                       "rst_brg", "rst_core", "rst_apb";
1478                         clocks = <&clkgen JH7110_NOC_BUS_CLK_STG_AXI>,
1479                                  <&clkgen JH7110_PCIE0_CLK_TL>,
1480                                  <&clkgen JH7110_PCIE0_CLK_AXI_MST0>,
1481                                  <&clkgen JH7110_PCIE0_CLK_APB>;
1482                         clock-names = "noc", "tl", "axi_mst0", "apb";
1483                         status = "disabled";
1484                 };
1485
1486                 pcie1: pcie@2C000000 {
1487                         compatible = "starfive,jh7110-pcie","plda,pci-xpressrich3-axi";
1488                         #address-cells = <3>;
1489                         #size-cells = <2>;
1490                         #interrupt-cells = <1>;
1491                         reg = <0x0 0x2C000000 0x0 0x1000000
1492                                0x9 0xc0000000 0x0 0x10000000>;
1493                         reg-names = "reg", "config";
1494                         device_type = "pci";
1495                         starfive,stg-syscon = <&stg_syscon 0x270 0x274 0x2e0 0x368>;
1496                         bus-range = <0x0 0xff>;
1497                         ranges = <0x82000000  0x0 0x38000000  0x0 0x38000000 0x0 0x08000000>,
1498                                  <0xc3000000  0x9 0x80000000  0x9 0x80000000 0x0 0x40000000>;
1499                         msi-parent = <&plic>;
1500                         interrupts = <57>;
1501                         interrupt-controller;
1502                         interrupt-names = "msi";
1503                         interrupt-parent = <&plic>;
1504                         interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1505                         interrupt-map = <0x0 0x0 0x0 0x1 &plic 0x1>,
1506                                         <0x0 0x0 0x0 0x2 &plic 0x2>,
1507                                         <0x0 0x0 0x0 0x3 &plic 0x3>,
1508                                         <0x0 0x0 0x0 0x4 &plic 0x4>;
1509                         resets = <&rstgen RSTN_U1_PLDA_PCIE_AXI_MST0>,
1510                                  <&rstgen RSTN_U1_PLDA_PCIE_AXI_SLV0>,
1511                                  <&rstgen RSTN_U1_PLDA_PCIE_AXI_SLV>,
1512                                  <&rstgen RSTN_U1_PLDA_PCIE_BRG>,
1513                                  <&rstgen RSTN_U1_PLDA_PCIE_CORE>,
1514                                  <&rstgen RSTN_U1_PLDA_PCIE_APB>;
1515                         reset-names = "rst_mst0", "rst_slv0", "rst_slv",
1516                                       "rst_brg", "rst_core", "rst_apb";
1517                         clocks = <&clkgen JH7110_NOC_BUS_CLK_STG_AXI>,
1518                                  <&clkgen JH7110_PCIE1_CLK_TL>,
1519                                  <&clkgen JH7110_PCIE1_CLK_AXI_MST0>,
1520                                  <&clkgen JH7110_PCIE1_CLK_APB>;
1521                         clock-names = "noc", "tl", "axi_mst0", "apb";
1522                         status = "disabled";
1523                 };
1524
1525                 mailbox_contrl0: mailbox@0 {
1526                         compatible = "starfive,mail_box";
1527                         reg = <0x0 0x13060000 0x0 0x0001000>;
1528                         clocks = <&clkgen JH7110_MAILBOX_CLK_APB>;
1529                         clock-names = "clk_apb";
1530                         resets = <&rstgen RSTN_U0_MAILBOX_RRESETN>;
1531                         reset-names = "mbx_rre";
1532                         interrupts = <26 27>;
1533                         #mbox-cells = <2>;
1534                         status = "disabled";
1535                 };
1536
1537                 mailbox_client0: mailbox_client@0 {
1538                         compatible = "starfive,mailbox-test";
1539                         mbox-names = "rx", "tx";
1540                         mboxes = <&mailbox_contrl0 0 1>,<&mailbox_contrl0 1 0>;
1541                         status = "disabled";
1542                 };
1543
1544                 display: display-subsystem {
1545                         compatible = "starfive,jh7110-display","verisilicon,display-subsystem";
1546                         ports = <&dc_out_dpi0>;
1547                         status = "disabled";
1548                 };
1549
1550                 dssctrl: dssctrl@295B0000 {
1551                         compatible = "starfive,jh7110-dssctrl","verisilicon,dss-ctrl", "syscon";
1552                         reg = <0 0x295B0000 0 0x90>;
1553                 };
1554
1555                 tda988x_pin: tda988x_pin {
1556                         compatible = "starfive,tda998x_rgb_pin";
1557                         status = "disabled";
1558                 };
1559
1560                 rgb_output: rgb-output {
1561                         compatible = "starfive,jh7110-rgb_output","verisilicon,rgb-encoder";
1562                         //verisilicon,dss-syscon = <&dssctrl>;
1563                         //verisilicon,mux-mask = <0x70 0x380>;
1564                         //verisilicon,mux-val = <0x40 0x280>;
1565                         status = "disabled";
1566                 };
1567
1568                 dc8200: dc8200@29400000 {
1569                         compatible = "starfive,jh7110-dc8200","verisilicon,dc8200";
1570                         verisilicon,dss-syscon = <&dssctrl>;//20220624 panel syscon
1571                         reg = <0x0 0x29400000 0x0 0x100>,
1572                               <0x0 0x29400800 0x0 0x2000>,
1573                               <0x0 0x17030000 0x0 0x1000>;
1574                         interrupts = <95>;
1575                         status = "disabled";
1576                         clocks = <&clkgen JH7110_NOC_BUS_CLK_CPU_AXI>,
1577                                  <&clkgen JH7110_NOC_BUS_CLK_AXICFG0_AXI>,
1578                                  <&clkgen JH7110_NOC_BUS_CLK_GPU_AXI>,
1579                                  <&clkgen JH7110_NOC_BUS_CLK_VDEC_AXI>,
1580                                  <&clkgen JH7110_NOC_BUS_CLK_VENC_AXI>,
1581                                  <&clkgen JH7110_NOC_BUS_CLK_DISP_AXI>,
1582                                  <&clkgen JH7110_NOC_BUS_CLK_ISP_AXI>,
1583                                  <&clkgen JH7110_NOC_BUS_CLK_STG_AXI>,
1584                                  <&clkgen JH7110_VOUT_SRC>,
1585                                  <&clkgen JH7110_VOUT_TOP_CLK_VOUT_AXI>,
1586                                  <&clkgen JH7110_AHB1>,
1587                                  <&clkgen JH7110_VOUT_TOP_CLK_VOUT_AHB>,
1588                                  <&clkgen JH7110_VOUT_TOP_CLK_HDMITX0_MCLK>,
1589                                  <&clkgen JH7110_I2STX_4CH0_BCLK_MST>,
1590                                  <&clkvout JH7110_U0_DC8200_CLK_PIX0>,
1591                                  <&clkvout JH7110_U0_DC8200_CLK_PIX1>,
1592                                  <&clkvout JH7110_U0_DC8200_CLK_AXI>,
1593                                  <&clkvout JH7110_U0_DC8200_CLK_CORE>,
1594                                  <&clkvout JH7110_U0_DC8200_CLK_AHB>,
1595                                  <&clkgen JH7110_VOUT_TOP_CLK_VOUT_AXI>,
1596                                  <&clkvout JH7110_DOM_VOUT_TOP_LCD_CLK>,
1597                                  <&hdmitx0_pixelclk>,
1598                                  <&clkvout JH7110_DC8200_PIX0>,
1599                                  <&clkvout JH7110_U0_DC8200_CLK_PIX0_OUT>,
1600                                  <&clkvout JH7110_U0_DC8200_CLK_PIX1_OUT>;
1601                         clock-names = "noc_cpu","noc_cfg0","noc_gpu","noc_vdec","noc_venc",
1602                                         "noc_disp","noc_isp","noc_stg","vout_src",
1603                                         "top_vout_axi","ahb1","top_vout_ahb",
1604                                         "top_vout_hdmiTX0","i2stx","pix_clk","vout_pix1",
1605                                         "axi_clk","core_clk","vout_ahb",
1606                                         "vout_top_axi","vout_top_lcd","hdmitx0_pixelclk","dc8200_pix0",
1607                                         "dc8200_pix0_out","dc8200_pix1_out";
1608                         resets = <&rstgen RSTN_U0_DOM_VOUT_TOP_SRC>,
1609                                  <&rstgen RSTN_U0_DC8200_AXI>,
1610                                  <&rstgen RSTN_U0_DC8200_AHB>,
1611                                  <&rstgen RSTN_U0_DC8200_CORE>,
1612                                  <&rstgen RSTN_U0_NOC_BUS_CPU_AXI_N>,
1613                                  <&rstgen RSTN_U0_NOC_BUS_AXICFG0_AXI_N>,
1614                                  <&rstgen RSTN_U0_NOC_BUS_APB_BUS_N>,
1615                                  <&rstgen RSTN_U0_NOC_BUS_DISP_AXI_N>,
1616                                  <&rstgen RSTN_U0_NOC_BUS_STG_AXI_N>;
1617                         reset-names = "rst_vout_src","rst_axi","rst_ahb","rst_core",
1618                                         "rst_noc_cpu","rst_noc_axicfg0","rst_noc_apb",
1619                                         "rst_noc_disp","rst_noc_stg";
1620                         power-domains = <&pwrc JH7110_PD_VOUT>;
1621                 };
1622
1623                 dsi_output: dsi-output {
1624                         compatible = "starfive,jh7110-display-encoder","verisilicon,dsi-encoder";
1625                         status = "disabled";
1626                 };
1627
1628                 mipi_dphy: mipi-dphy@295e0000{
1629                         compatible = "starfive,jh7110-mipi-dphy-tx","m31,mipi-dphy-tx";
1630                         reg = <0x0 0x295e0000 0x0 0x10000>;
1631                         clocks = <&clkvout JH7110_U0_MIPITX_DPHY_CLK_TXESC>;
1632                         clock-names = "dphy_txesc";
1633                         resets = <&rstgen RSTN_U0_MIPITX_DPHY_SYS>,
1634                                  <&rstgen RSTN_U0_MIPITX_DPHY_TXBYTEHS>;
1635                         reset-names = "dphy_sys", "dphy_txbytehs";
1636                         #phy-cells = <0>;
1637                         status = "disabled";
1638                 };
1639
1640                  mipi_dsi: mipi@295d0000 {
1641                         compatible = "starfive,jh7110-mipi_dsi","cdns,dsi";
1642                         reg = <0x0 0x295d0000 0x0 0x10000>;
1643                         interrupts = <98>;
1644                         reg-names = "dsi";
1645                         clocks = <&clkvout JH7110_U0_CDNS_DSITX_CLK_SYS>,
1646                                  <&clkvout JH7110_U0_CDNS_DSITX_CLK_APB>,
1647                                  <&clkvout JH7110_U0_CDNS_DSITX_CLK_TXESC>,
1648                                  <&clkvout JH7110_U0_CDNS_DSITX_CLK_DPI>;
1649                         clock-names = "sys", "apb", "txesc", "dpi";
1650                         resets = <&rstgen RSTN_U0_CDNS_DSITX_DPI>,
1651                                  <&rstgen RSTN_U0_CDNS_DSITX_APB>,
1652                                  <&rstgen RSTN_U0_CDNS_DSITX_RXESC>,
1653                                  <&rstgen RSTN_U0_CDNS_DSITX_SYS>,
1654                                  <&rstgen RSTN_U0_CDNS_DSITX_TXBYTEHS>,
1655                                  <&rstgen RSTN_U0_CDNS_DSITX_TXESC>;
1656                         reset-names = "dsi_dpi", "dsi_apb", "dsi_rxesc",
1657                                         "dsi_sys", "dsi_txbytehs", "dsi_txesc";
1658                         phys = <&mipi_dphy>;
1659                         phy-names = "dphy";
1660                         status = "disabled";
1661
1662                         port {
1663                                 dsi_out_port: endpoint@0 {
1664                                         remote-endpoint = <&panel_dsi_port>;
1665                                 };
1666                                 dsi_in_port: endpoint@1 {
1667                                         remote-endpoint = <&mipi_out>;
1668                                 };
1669                         };
1670
1671                         mipi_panel: panel@0 {
1672                                 /*compatible = "";*/
1673                                 status = "okay";
1674                         };
1675                 };
1676
1677                 hdmi: hdmi@29590000 {
1678                         compatible = "starfive,jh7110-hdmi","inno,hdmi";
1679                         reg = <0x0 0x29590000 0x0 0x4000>;
1680                         interrupts = <99>;
1681                         /*interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;*/
1682                         /*clocks = <&cru  PCLK_HDMI>;*/
1683                         /*clock-names = "pclk";*/
1684                         /*pinctrl-names = "default";*/
1685                         /*pinctrl-0 = <&hdmi_ctl>;*/
1686                         status = "disabled";
1687                         clocks = <&clkvout JH7110_U0_HDMI_TX_CLK_SYS>,
1688                                  <&clkvout JH7110_U0_HDMI_TX_CLK_MCLK>,
1689                                  <&clkvout JH7110_U0_HDMI_TX_CLK_BCLK>,
1690                                  <&hdmitx0_pixelclk>;
1691                         clock-names = "sysclk", "mclk", "bclk", "pclk";
1692                         resets = <&rstgen RSTN_U0_HDMI_TX_HDMI>;
1693                         reset-names = "hdmi_tx";
1694                         #sound-dai-cells = <0>;
1695                 };
1696
1697                 sound: snd-card {
1698                         compatible = "simple-audio-card";
1699                         simple-audio-card,name = "Starfive-Multi-Sound-Card";
1700                         #address-cells = <1>;
1701                         #size-cells = <0>;
1702                 };
1703
1704                 co_process: e24@0 {
1705                         compatible = "starfive,e24";
1706                         reg = <0x0 0xc0110000 0x0 0x00001000>,
1707                                 <0x0 0xc0111000 0x0 0x0001f000>;
1708                         reg-names = "ecmd", "espace";
1709                         clocks = <&clkgen JH7110_E2_RTC_CLK>,
1710                                  <&clkgen JH7110_E2_CLK_CORE>,
1711                                  <&clkgen JH7110_E2_CLK_DBG>;
1712                         clock-names = "clk_rtc", "clk_core", "clk_dbg";
1713                         resets = <&rstgen RSTN_U0_E24_CORE>;
1714                         reset-names = "e24_core";
1715                         starfive,stg-syscon = <&stg_syscon>;
1716                         interrupt-parent = <&plic>;
1717                         firmware-name = "e24_elf";
1718                         irq-mode = <1>;
1719                         mbox-names = "tx", "rx";
1720                         mboxes = <&mailbox_contrl0 0 2>,<&mailbox_contrl0 2 0>;
1721                         #address-cells = <1>;
1722                         #size-cells = <1>;
1723                         ranges = <0xc0000000 0x0 0xc0000000 0x200000>;
1724                         status = "disabled";
1725                         dsp@0 {};
1726                 };
1727
1728                 xrp: xrp@0 {
1729                         compatible = "cdns,xrp";
1730                         reg = <0x0  0x10230000 0x0 0x00010000
1731                                 0x0  0x10240000 0x0 0x00010000>;
1732                         memory-region = <&xrp_reserved>;
1733                         clocks = <&clkgen JH7110_HIFI4_CLK_CORE>;
1734                         clock-names = "core_clk";
1735                         resets = <&rstgen RSTN_U0_HIFI4_CORE>,
1736                                  <&rstgen RSTN_U0_HIFI4_AXI>;
1737                         reset-names = "rst_core","rst_axi";
1738                         starfive,stg-syscon = <&stg_syscon>;
1739                         firmware-name = "hifi4_elf";
1740                         #address-cells = <1>;
1741                         #size-cells = <1>;
1742                         ranges = <0x40000000 0x0 0x20000000 0x040000
1743                                 0xf0000000 0x0 0xf0000000 0x03000000>;
1744                         status = "disabled";
1745                         dsp@0 {
1746                         };
1747                 };
1748
1749                 starfive_cpufreq: starfive,jh7110-cpufreq {
1750                         compatible = "starfive,jh7110-cpufreq";
1751                         clocks = <&clkgen JH7110_CPU_CORE>;
1752                         clock-names = "cpu_clk";
1753                 };
1754         };
1755 };