1 // SPDX-License-Identifier: GPL-2.0 OR MIT
3 * Copyright (C) 2022 StarFive Technology Co., Ltd.
4 * Copyright (C) 2022 Hal Feng <hal.feng@starfivetech.com>
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>
15 compatible = "starfive,jh7110";
24 compatible = "sifive,u74-mc", "riscv";
26 d-cache-block-size = <64>;
28 d-cache-size = <8192>;
32 i-cache-block-size = <64>;
34 i-cache-size = <16384>;
37 mmu-type = "riscv,sv39";
38 next-level-cache = <&cachectrl>;
39 riscv,isa = "rv64imac";
43 cpu0intctrl: interrupt-controller {
44 #interrupt-cells = <1>;
45 compatible = "riscv,cpu-intc";
51 compatible = "sifive,u74-mc", "riscv";
53 d-cache-block-size = <64>;
55 d-cache-size = <32768>;
59 i-cache-block-size = <64>;
61 i-cache-size = <32768>;
64 mmu-type = "riscv,sv39";
65 next-level-cache = <&cachectrl>;
66 riscv,isa = "rv64imafdc";
70 cpu1intctrl: interrupt-controller {
71 #interrupt-cells = <1>;
72 compatible = "riscv,cpu-intc";
78 compatible = "sifive,u74-mc", "riscv";
80 d-cache-block-size = <64>;
82 d-cache-size = <32768>;
86 i-cache-block-size = <64>;
88 i-cache-size = <32768>;
91 mmu-type = "riscv,sv39";
92 next-level-cache = <&cachectrl>;
93 riscv,isa = "rv64imafdc";
97 cpu2intctrl: interrupt-controller {
98 #interrupt-cells = <1>;
99 compatible = "riscv,cpu-intc";
100 interrupt-controller;
105 compatible = "sifive,u74-mc", "riscv";
107 d-cache-block-size = <64>;
109 d-cache-size = <32768>;
113 i-cache-block-size = <64>;
115 i-cache-size = <32768>;
118 mmu-type = "riscv,sv39";
119 next-level-cache = <&cachectrl>;
120 riscv,isa = "rv64imafdc";
124 cpu3intctrl: interrupt-controller {
125 #interrupt-cells = <1>;
126 compatible = "riscv,cpu-intc";
127 interrupt-controller;
132 compatible = "sifive,u74-mc", "riscv";
134 d-cache-block-size = <64>;
136 d-cache-size = <32768>;
140 i-cache-block-size = <64>;
142 i-cache-size = <32768>;
145 mmu-type = "riscv,sv39";
146 next-level-cache = <&cachectrl>;
147 riscv,isa = "rv64imafdc";
151 cpu4intctrl: interrupt-controller {
152 #interrupt-cells = <1>;
153 compatible = "riscv,cpu-intc";
154 interrupt-controller;
160 compatible = "simple-bus";
161 interrupt-parent = <&plic>;
162 #address-cells = <2>;
167 cachectrl: cache-controller@2010000 {
168 compatible = "sifive,fu740-c000-ccache", "cache";
169 reg = <0x0 0x2010000 0x0 0x4000 0x0 0x8000000 0x0 0x2000000>;
170 reg-names = "control", "sideband";
171 interrupts = <1 3 4 2>;
172 cache-block-size = <64>;
175 cache-size = <2097152>;
179 aon_syscon: aon_syscon@17010000 {
180 compatible = "syscon";
181 reg = <0x0 0x17010000 0x0 0x1000>;
184 stg_syscon: stg_syscon@10240000 {
185 compatible = "syscon";
186 reg = <0x0 0x10240000 0x0 0x1000>;
189 sys_syscon: sys_syscon@13030000 {
190 compatible = "syscon";
191 reg = <0x0 0x13030000 0x0 0x1000>;
194 clint: clint@2000000 {
195 compatible = "riscv,clint0";
196 reg = <0x0 0x2000000 0x0 0x10000>;
197 reg-names = "control";
198 interrupts-extended = <&cpu0intctrl 3 &cpu0intctrl 7
199 &cpu1intctrl 3 &cpu1intctrl 7
200 &cpu2intctrl 3 &cpu2intctrl 7
201 &cpu3intctrl 3 &cpu3intctrl 7
202 &cpu4intctrl 3 &cpu4intctrl 7>;
203 #interrupt-cells = <1>;
207 compatible = "riscv,plic0";
208 reg = <0x0 0xc000000 0x0 0x4000000>;
209 reg-names = "control";
210 interrupts-extended = <&cpu0intctrl 11
211 &cpu1intctrl 11 &cpu1intctrl 9
212 &cpu2intctrl 11 &cpu2intctrl 9
213 &cpu3intctrl 11 &cpu3intctrl 9
214 &cpu4intctrl 11 &cpu4intctrl 9>;
215 interrupt-controller;
216 #interrupt-cells = <1>;
217 riscv,max-priority = <7>;
221 clkgen: clock-controller {
222 compatible = "starfive,jh7110-clkgen";
223 reg = <0x0 0x13020000 0x0 0x10000>,
224 <0x0 0x10230000 0x0 0x10000>,
225 <0x0 0x17000000 0x0 0x10000>;
226 reg-names = "sys", "stg", "aon";
227 clocks = <&osc>, <&gmac1_rmii_refin>,
229 <&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
230 <&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
231 <&tdm_ext>, <&mclk_ext>,
232 <&jtag_tck_inner>, <&bist_apb>,
233 <&stg_apb>, <&clk_rtc>,
234 <&gmac0_rmii_refin>, <&gmac0_rgmii_rxin>;
235 clock-names = "osc", "gmac1_rmii_refin",
237 "i2stx_bclk_ext", "i2stx_lrck_ext",
238 "i2srx_bclk_ext", "i2srx_lrck_ext",
239 "tdm_ext", "mclk_ext",
240 "jtag_tck_inner", "bist_apb",
241 "stg_apb", "clk_rtc",
242 "gmac0_rmii_refin", "gmac0_rgmii_rxin";
247 clkvout: clock-controller@295C0000 {
248 compatible = "starfive,jh7110-clk-vout";
249 reg = <0x0 0x295C0000 0x0 0x10000>;
251 clocks = <&hdmitx0_pixelclk>,
252 <&mipitx_dphy_rxesc>,
253 <&mipitx_dphy_txbytehs>;
254 clock-names = "hdmitx0_pixelclk",
256 "mipitx_dphy_txbytehs";
261 clkisp: clock-controller@19810000 {
262 compatible = "starfive,jh7110-clk-isp";
263 reg = <0x0 0x19810000 0x0 0x10000>;
266 clocks = <&clkgen JH7110_ISP_TOP_CLK_DVP>,
267 <&clkgen JH7110_ISP_TOP_CLK_ISPCORE_2X>,
268 <&clkgen JH7110_ISP_TOP_CLK_ISP_AXI>,
269 <&clkgen JH7110_NOC_BUS_CLK_ISP_AXI>;
270 clock-names = "u0_dom_isp_top_clk_dom_isp_top_clk_dvp",
271 "u0_dom_isp_top_clk_dom_isp_top_clk_ispcore_2x",
272 "u0_dom_isp_top_clk_dom_isp_top_clk_isp_axi",
273 "u0_sft7110_noc_bus_clk_isp_axi";
274 resets = <&rstgen RSTN_U0_DOM_ISP_TOP_N>,
275 <&rstgen RSTN_U0_DOM_ISP_TOP_AXI>,
276 <&rstgen RSTN_U0_NOC_BUS_ISP_AXI_N>;
277 reset-names = "rst_isp_top_n", "rst_isp_top_axi",
283 compatible = "cdns,qspi-nor";
284 #address-cells = <1>;
286 reg = <0x0 0x13010000 0x0 0x10000
287 0x0 0x21000000 0x0 0x400000>;
288 clocks = <&clkgen JH7110_QSPI_CLK_REF>;
289 clock-names = "clk_ref";
290 resets = <&rstgen RSTN_U0_CDNS_QSPI_APB>,
291 <&rstgen RSTN_U0_CDNS_QSPI_AHB>,
292 <&rstgen RSTN_U0_CDNS_QSPI_REF>;
293 resets-names = "rst_apb", "rst_ahb", "rst_ref";
294 cdns,fifo-depth = <256>;
295 cdns,fifo-width = <4>;
296 spi-max-frequency = <250000000>;
298 nor_flash: nor-flash@0 {
299 compatible = "jedec,spi-nor";
301 spi-max-frequency = <100000000>;
310 compatible = "starfive,jh7110-otp";
311 reg = <0x0 0x17050000 0x0 0x10000>;
312 clock-frequency = <4000000>;
313 clocks = <&clkgen JH7110_OTPC_CLK_APB>;
318 compatible = "starfive,jh7110-cdns3";
319 #address-cells = <2>;
321 clocks = <&clkgen JH7110_USB0_CLK_APP_125>,
322 <&clkgen JH7110_USB0_CLK_LPM>,
323 <&clkgen JH7110_USB0_CLK_STB>,
324 <&clkgen JH7110_USB0_CLK_USB_APB>,
325 <&clkgen JH7110_USB0_CLK_AXI>,
326 <&clkgen JH7110_USB0_CLK_UTMI_APB>;
327 clock-names = "app","lpm","stb","apb","axi","utmi";
328 resets = <&rstgen RSTN_U0_CDN_USB_PWRUP>,
329 <&rstgen RSTN_U0_CDN_USB_APB>,
330 <&rstgen RSTN_U0_CDN_USB_AXI>,
331 <&rstgen RSTN_U0_CDN_USB_UTMI_APB>;
332 reset-names = "pwrup","apb","axi","utmi";
333 starfive,stg-syscon = <&stg_syscon 0x4>;
334 starfive,sys-syscon = <&sys_syscon 0x18>;
337 usbdrd_cdns3: usb@10100000 {
338 compatible = "cdns,usb3";
339 reg = <0x0 0x10100000 0x0 0x10000>,
340 <0x0 0x10110000 0x0 0x10000>,
341 <0x0 0x10120000 0x0 0x10000>;
342 reg-names = "otg", "xhci", "dev";
343 interrupts = <108>, <109>, <110>;
344 interrupt-names = "host", "peripheral", "otg";
345 phy-names = "cdns3,usb3-phy", "cnds3,usb2-phy";
346 maximum-speed = "super-speed";
350 timer: timer@13050000 {
351 compatible = "starfive,si5-timers";
352 reg = <0x0 0x13050000 0x0 0x10000>;
353 interrupts = <69>, <70>, <71> ,<72>;
354 interrupt-names = "timer0", "timer1",
356 clocks = <&clkgen JH7110_TIMER_CLK_TIMER0>,
357 <&clkgen JH7110_TIMER_CLK_TIMER1>,
358 <&clkgen JH7110_TIMER_CLK_TIMER2>,
359 <&clkgen JH7110_TIMER_CLK_TIMER3>,
360 <&clkgen JH7110_TIMER_CLK_APB>;
361 clock-names = "timer0", "timer1",
362 "timer2", "timer3", "apb_clk";
363 clock-frequency = <24000000>;
367 wdog: wdog@13070000 {
368 compatible = "starfive,dskit-wdt";
369 reg = <0x0 0x13070000 0x0 0x10000>;
371 interrupt-names = "wdog";
372 clocks = <&clkgen JH7110_DSKIT_WDT_CLK_WDT>,
373 <&clkgen JH7110_DSKIT_WDT_CLK_APB>;
374 clock-names = "core_clk", "apb_clk";
375 resets = <&rstgen RSTN_U0_DSKIT_WDT_APB>,
376 <&rstgen RSTN_U0_DSKIT_WDT_CORE>;
377 reset-names = "rst_apb", "rst_core";
383 compatible = "starfive,rtc_hms";
384 reg = <0x0 0x17040000 0x0 0x10000>;
385 interrupts = <10>, <11>, <12>;
386 interrupt-names = "rtc_ms_pulse", "rtc_sec_pulse", "rtc";
387 clocks = <&clkgen JH7110_RTC_HMS_CLK_APB>,
388 <&clkgen JH7110_RTC_HMS_CLK_CAL>;
389 clock-names = "pclk", "cal_clk";
390 resets = <&rstgen RSTN_U0_RTC_HMS_APB>,
391 <&rstgen RSTN_U0_RTC_HMS_CAL>,
392 <&rstgen RSTN_U0_RTC_HMS_OSC32K>;
393 reset-names = "rst_apb", "rst_cal", "rst_osc";
394 rtc,cal-clock-freq = <1000000>;
399 compatible = "starfive,jh7110-pmu";
400 reg = <0x0 0x17030000 0x0 0x10000>;
405 uart0: serial@10000000 {
406 compatible = "snps,dw-apb-uart";
407 reg = <0x0 0x10000000 0x0 0x10000>;
410 clocks = <&clkgen JH7110_UART0_CLK_CORE>,
411 <&clkgen JH7110_UART0_CLK_APB>;
412 clock-names = "baudclk", "apb_pclk";
413 resets = <&rstgen RSTN_U0_DW_UART_APB>;
418 uart1: serial@10010000 {
419 compatible = "snps,dw-apb-uart";
420 reg = <0x0 0x10010000 0x0 0x10000>;
423 clocks = <&clkgen JH7110_UART1_CLK_CORE>,
424 <&clkgen JH7110_UART1_CLK_APB>;
425 clock-names = "baudclk", "apb_pclk";
426 resets = <&rstgen RSTN_U1_DW_UART_APB>;
431 uart2: serial@10020000 {
432 compatible = "snps,dw-apb-uart";
433 reg = <0x0 0x10020000 0x0 0x10000>;
436 clocks = <&clkgen JH7110_UART2_CLK_CORE>,
437 <&clkgen JH7110_UART2_CLK_APB>;
438 clock-names = "baudclk", "apb_pclk";
439 resets = <&rstgen RSTN_U2_DW_UART_APB>;
444 uart3: serial@12000000 {
445 compatible = "snps,dw-apb-uart";
446 reg = <0x0 0x12000000 0x0 0x10000>;
449 clocks = <&clkgen JH7110_UART3_CLK_CORE>,
450 <&clkgen JH7110_UART3_CLK_APB>;
451 clock-names = "baudclk", "apb_pclk";
452 resets = <&rstgen RSTN_U3_DW_UART_APB>;
457 uart4: serial@12010000 {
458 compatible = "snps,dw-apb-uart";
459 reg = <0x0 0x12010000 0x0 0x10000>;
462 clocks = <&clkgen JH7110_UART4_CLK_CORE>,
463 <&clkgen JH7110_UART4_CLK_APB>;
464 clock-names = "baudclk", "apb_pclk";
465 resets = <&rstgen RSTN_U4_DW_UART_APB>;
470 uart5: serial@12020000 {
471 compatible = "snps,dw-apb-uart";
472 reg = <0x0 0x12020000 0x0 0x10000>;
475 clocks = <&clkgen JH7110_UART5_CLK_CORE>,
476 <&clkgen JH7110_UART5_CLK_APB>;
477 clock-names = "baudclk", "apb_pclk";
478 resets = <&rstgen RSTN_U5_DW_UART_APB>;
483 dma: dma-controller@16050000 {
484 compatible = "starfive,axi-dma";
485 reg = <0x0 0x16050000 0x0 0x10000>;
486 clocks = <&clkgen JH7110_DMA1P_CLK_AXI>,
487 <&clkgen JH7110_DMA1P_CLK_AHB>;
488 clock-names = "core-clk", "cfgr-clk";
489 resets = <&rstgen RSTN_U0_DW_DMA1P_AXI>,
490 <&rstgen RSTN_U0_DW_DMA1P_AHB>;
491 reset-names = "rst_axi", "rst_ahb";
495 snps,dma-masters = <1>;
496 snps,data-width = <3>;
497 snps,num-hs-if = <56>;
498 snps,block-size = <65536 65536 65536 65536>;
499 snps,priority = <0 1 2 3>;
500 snps,axi-max-burst-len = <16>;
504 gpio: gpio@13040000 {
505 compatible = "starfive_jh7110-sys-pinctrl";
506 reg = <0x0 0x13040000 0x0 0x10000>;
507 reg-names = "control";
509 interrupt-controller;
515 gpioa: gpio@17020000 {
516 compatible = "starfive_jh7110-aon-pinctrl";
517 reg = <0x0 0x17020000 0x0 0x10000>;
518 reg-names = "control";
520 interrupt-controller;
526 sfctemp: tmon@120e0000 {
527 compatible = "starfive,jh7110-temp";
528 reg = <0x0 0x120e0000 0x0 0x10000>;
530 clocks = <&clkgen JH7110_TEMP_SENSOR_CLK_TEMP>,
531 <&clkgen JH7110_TEMP_SENSOR_CLK_APB>;
532 clock-names = "sense", "bus";
533 resets = <&rstgen RSTN_U0_TEMP_SENSOR_TEMP>,
534 <&rstgen RSTN_U0_TEMP_SENSOR_APB>;
535 reset-names = "sense", "bus";
536 #thermal-sensor-cells = <0>;
542 polling-delay-passive = <250>;
543 polling-delay = <15000>;
545 thermal-sensors = <&sfctemp>;
551 cpu_alert0: cpu_alert0 {
553 temperature = <75000>;
560 temperature = <90000>;
568 trng: trng@1600C000 {
569 compatible = "starfive,trng";
570 reg = <0x0 0x1600C000 0x0 0x4000>;
571 clocks = <&clkgen JH7110_SEC_HCLK>,
572 <&clkgen JH7110_SEC_MISCAHB_CLK>;
573 clock-names = "hclk", "miscahb_clk";
574 resets = <&rstgen RSTN_U0_SEC_TOP_HRESETN>;
579 sec_dma: sec_dma@16008000 {
580 /*compatible = "arm,pl080", "arm,primecell";*/
581 compatible = "starfive,pl080";
582 reg = <0x0 0x16008000 0x0 0x4000>;
583 reg-names = "sec_dma";
585 clocks = <&clkgen JH7110_SEC_HCLK>,
586 <&clkgen JH7110_SEC_MISCAHB_CLK>;
587 clock-names = "sec_hclk","sec_ahb";
588 resets = <&rstgen RSTN_U0_SEC_TOP_HRESETN>;
589 reset-names = "sec_hre";
590 lli-bus-interface-ahb1;
591 mem-bus-interface-ahb1;
592 memcpy-burst-size = <256>;
593 memcpy-bus-width = <32>;
598 crypto: crypto@16000000 {
599 compatible = "starfive,jh7110-sec";
600 reg = <0x0 0x16000000 0x0 0x4000>,
601 <0x0 0x16008000 0x0 0x4000>;
602 reg-names = "secreg","secdma";
603 interrupts = <28>, <29>;
604 interrupt-names = "secirq", "dmairq";
605 clocks = <&clkgen JH7110_SEC_HCLK>,
606 <&clkgen JH7110_SEC_MISCAHB_CLK>;
607 clock-names = "sec_hclk","sec_ahb";
608 resets = <&rstgen RSTN_U0_SEC_TOP_HRESETN>;
609 reset-names = "sec_hre";
611 dmas = <&sec_dma 1 2>,
613 dma-names = "sec_m","sec_p";
618 compatible = "snps,designware-i2c";
619 reg = <0x0 0x10030000 0x0 0x10000>;
620 clocks = <&clkgen JH7110_I2C0_CLK_CORE>,
621 <&clkgen JH7110_I2C0_CLK_APB>;
622 clock-names = "ref", "pclk";
623 resets = <&rstgen RSTN_U0_DW_I2C_APB>;
625 #address-cells = <1>;
631 compatible = "snps,designware-i2c";
632 reg = <0x0 0x10040000 0x0 0x10000>;
633 clocks = <&clkgen JH7110_I2C1_CLK_CORE>,
634 <&clkgen JH7110_I2C1_CLK_APB>;
635 clock-names = "ref", "pclk";
636 resets = <&rstgen RSTN_U1_DW_I2C_APB>;
638 #address-cells = <1>;
644 compatible = "snps,designware-i2c";
645 reg = <0x0 0x10050000 0x0 0x10000>;
646 clocks = <&clkgen JH7110_I2C2_CLK_CORE>,
647 <&clkgen JH7110_I2C2_CLK_APB>;
648 clock-names = "ref", "pclk";
649 resets = <&rstgen RSTN_U2_DW_I2C_APB>;
651 #address-cells = <1>;
657 compatible = "snps,designware-i2c";
658 reg = <0x0 0x12030000 0x0 0x10000>;
659 clocks = <&clkgen JH7110_I2C3_CLK_CORE>,
660 <&clkgen JH7110_I2C3_CLK_APB>;
661 clock-names = "ref", "pclk";
662 resets = <&rstgen RSTN_U3_DW_I2C_APB>;
664 #address-cells = <1>;
670 compatible = "snps,designware-i2c";
671 reg = <0x0 0x12040000 0x0 0x10000>;
672 clocks = <&clkgen JH7110_I2C4_CLK_CORE>,
673 <&clkgen JH7110_I2C4_CLK_APB>;
674 clock-names = "ref", "pclk";
675 resets = <&rstgen RSTN_U4_DW_I2C_APB>;
677 #address-cells = <1>;
683 compatible = "snps,designware-i2c";
684 reg = <0x0 0x12050000 0x0 0x10000>;
685 clocks = <&clkgen JH7110_I2C5_CLK_CORE>,
686 <&clkgen JH7110_I2C5_CLK_APB>;
687 clock-names = "ref", "pclk";
688 resets = <&rstgen RSTN_U5_DW_I2C_APB>;
690 #address-cells = <1>;
696 compatible = "snps,designware-i2c";
697 reg = <0x0 0x12060000 0x0 0x10000>;
698 clocks = <&clkgen JH7110_I2C6_CLK_CORE>,
699 <&clkgen JH7110_I2C6_CLK_APB>;
700 clock-names = "ref", "pclk";
701 resets = <&rstgen RSTN_U6_DW_I2C_APB>;
703 #address-cells = <1>;
708 /* unremovable emmc as mmcblk0 */
709 sdio0: sdio0@16010000 {
710 compatible = "snps,dw-mshc";
711 reg = <0x0 0x16010000 0x0 0x10000>;
712 clocks = <&clkgen JH7110_SDIO0_CLK_AHB>,
713 <&clkgen JH7110_SDIO0_CLK_SDCARD>;
714 clock-names = "biu","ciu";
715 resets = <&rstgen RSTN_U0_DW_SDIO_AHB>;
716 reset-names = "reset";
719 fifo-watermark-aligned;
724 sdio1: sdio1@16020000 {
725 compatible = "snps,dw-mshc";
726 reg = <0x0 0x16020000 0x0 0x10000>;
727 clocks = <&clkgen JH7110_SDIO1_CLK_AHB>,
728 <&clkgen JH7110_SDIO1_CLK_SDCARD>;
729 clock-names = "biu","ciu";
730 resets = <&rstgen RSTN_U1_DW_SDIO_AHB>;
731 reset-names = "reset";
734 fifo-watermark-aligned;
739 vin_sysctl: vin_sysctl@19800000 {
740 compatible = "starfive,stf-vin";
741 reg = <0x0 0x19800000 0x0 0x10000>,
742 <0x0 0x19810000 0x0 0x10000>,
743 <0x0 0x19820000 0x0 0x10000>,
744 <0x0 0x19830000 0x0 0x10000>,
745 <0x0 0x19840000 0x0 0x10000>,
746 <0x0 0x19870000 0x0 0x30000>,
747 <0x0 0x198a0000 0x0 0x30000>,
748 <0x0 0x11840000 0x0 0x10000>,
749 <0x0 0x17030000 0x0 0x10000>,
750 <0x0 0x13020000 0x0 0x10000>;
751 reg-names = "mipi0", "vclk", "vrst", "mipi1", "sctrl",
752 "isp0", "isp1", "trst", "pmu", "syscrg";
753 clocks = <&clkisp JH7110_DOM4_APB_FUNC>,
754 <&clkisp JH7110_U0_VIN_PCLK>,
755 <&clkisp JH7110_U0_VIN_SYS_CLK>,
756 <&clkisp JH7110_U0_ISPV2_TOP_WRAPPER_CLK_C>,
757 <&clkisp JH7110_DVP_INV>,
758 <&clkisp JH7110_U0_VIN_CLK_P_AXIWR>,
759 <&clkisp JH7110_MIPI_RX0_PXL>,
760 <&clkisp JH7110_U0_VIN_PIXEL_CLK_IF0>,
761 <&clkisp JH7110_U0_VIN_PIXEL_CLK_IF1>,
762 <&clkisp JH7110_U0_VIN_PIXEL_CLK_IF2>,
763 <&clkisp JH7110_U0_VIN_PIXEL_CLK_IF3>;
764 clock-names = "clk_apb_func", "clk_pclk", "clk_sys_clk",
765 "clk_wrapper_clk_c", "clk_dvp_inv", "clk_axiwr",
766 "clk_mipi_rx0_pxl", "clk_pixel_clk_if0",
767 "clk_pixel_clk_if1", "clk_pixel_clk_if2",
769 resets = <&rstgen RSTN_U0_ISPV2_TOP_WRAPPER_P>,
770 <&rstgen RSTN_U0_ISPV2_TOP_WRAPPER_C>,
771 <&rstgen RSTN_U0_VIN_N_PCLK>,
772 <&rstgen RSTN_U0_VIN_N_SYS_CLK>,
773 <&rstgen RSTN_U0_VIN_P_AXIRD>,
774 <&rstgen RSTN_U0_VIN_P_AXIWR>,
775 <&rstgen RSTN_U0_VIN_N_PIXEL_CLK_IF0>,
776 <&rstgen RSTN_U0_VIN_N_PIXEL_CLK_IF1>,
777 <&rstgen RSTN_U0_VIN_N_PIXEL_CLK_IF2>,
778 <&rstgen RSTN_U0_VIN_N_PIXEL_CLK_IF3>,
779 <&rstgen RSTN_U0_M31DPHY_HW>,
780 <&rstgen RSTN_U0_M31DPHY_B09_ALWAYS_ON>;
781 reset-names = "rst_wrapper_p", "rst_wrapper_c", "rst_pclk",
782 "rst_sys_clk", "rst_axird", "rst_axiwr", "rst_pixel_clk_if0",
783 "rst_pixel_clk_if1", "rst_pixel_clk_if2", "rst_pixel_clk_if3",
784 "rst_m31dphy_hw", "rst_m31dphy_b09_always_on";
785 interrupts = <92 87 86>;
790 compatible = "starfive,jpu";
791 reg = <0x0 0x13090000 0x0 0x300>;
793 clocks = <&clkgen JH7110_CODAJ12_CLK_AXI>,
794 <&clkgen JH7110_CODAJ12_CLK_CORE>,
795 <&clkgen JH7110_CODAJ12_CLK_APB>,
796 <&clkgen JH7110_NOC_BUS_CLK_VDEC_AXI>;
797 clock-names = "axi_clk", "core_clk",
798 "apb_clk", "noc_bus";
799 resets = <&rstgen RSTN_U0_CODAJ12_AXI>,
800 <&rstgen RSTN_U0_CODAJ12_CORE>,
801 <&rstgen RSTN_U0_CODAJ12_APB>;
802 reset-names = "rst_axi", "rst_core", "rst_apb";
806 vpu_dec: vpu_dec@130A0000 {
807 compatible = "starfive,vdec";
808 reg = <0x0 0x130A0000 0x0 0x10000>;
810 clocks = <&clkgen JH7110_WAVE511_CLK_AXI>,
811 <&clkgen JH7110_WAVE511_CLK_BPU>,
812 <&clkgen JH7110_WAVE511_CLK_VCE>,
813 <&clkgen JH7110_WAVE511_CLK_APB>,
814 <&clkgen JH7110_NOC_BUS_CLK_VDEC_AXI>;
815 clock-names = "axi_clk", "bpu_clk", "vce_clk",
816 "apb_clk", "noc_bus";
817 resets = <&rstgen RSTN_U0_WAVE511_AXI>,
818 <&rstgen RSTN_U0_WAVE511_BPU>,
819 <&rstgen RSTN_U0_WAVE511_VCE>,
820 <&rstgen RSTN_U0_WAVE511_APB>,
821 <&rstgen RSTN_U0_AXIMEM_128B_AXI>;
822 reset-names = "rst_axi", "rst_bpu", "rst_vce",
823 "rst_apb", "rst_sram";
824 starfive,vdec_noc_ctrl;
828 vpu_enc: vpu_enc@130B0000 {
829 compatible = "starfive,venc";
830 reg = <0x0 0x130B0000 0x0 0x10000>;
832 clocks = <&clkgen JH7110_WAVE420L_CLK_AXI>,
833 <&clkgen JH7110_WAVE420L_CLK_BPU>,
834 <&clkgen JH7110_WAVE420L_CLK_VCE>,
835 <&clkgen JH7110_WAVE420L_CLK_APB>,
836 <&clkgen JH7110_NOC_BUS_CLK_VENC_AXI>;
837 clock-names = "axi_clk", "bpu_clk", "vce_clk",
838 "apb_clk", "noc_bus";
839 resets = <&rstgen RSTN_U0_WAVE420L_AXI>,
840 <&rstgen RSTN_U0_WAVE420L_BPU>,
841 <&rstgen RSTN_U0_WAVE420L_VCE>,
842 <&rstgen RSTN_U0_WAVE420L_APB>,
843 <&rstgen RSTN_U1_AXIMEM_128B_AXI>;
844 reset-names = "rst_axi", "rst_bpu", "rst_vce",
845 "rst_apb", "rst_sram";
846 starfive,venc_noc_ctrl;
850 rstgen: reset-controller {
851 compatible = "starfive,jh7110-reset";
852 reg = <0x0 0x13020000 0x0 0x10000>,
853 <0x0 0x10230000 0x0 0x10000>,
854 <0x0 0x17000000 0x0 0x10000>,
855 <0x0 0x19810000 0x0 0x10000>,
856 <0x0 0x295C0000 0x0 0x10000>;
857 reg-names = "syscrg", "stgcrg", "aoncrg", "ispcrg", "voutcrg";
862 stmmac_axi_setup: stmmac-axi-config {
863 snps,wr_osr_lmt = <0xf>;
864 snps,rd_osr_lmt = <0xf>;
865 snps,blen = <256 128 64 32 0 0 0>;
868 gmac0: ethernet@16030000 {
869 compatible = "starfive,jh7110-eqos-5.20";
870 reg = <0x0 0x16030000 0x0 0x10000>;
877 clocks = <&clkgen JH7110_GMAC0_GTXCLK>,
878 <&clkgen JH7110_U0_GMAC5_CLK_TX>,
879 <&clkgen JH7110_GMAC0_PTP>,
880 <&clkgen JH7110_U0_GMAC5_CLK_AHB>,
881 <&clkgen JH7110_U0_GMAC5_CLK_AXI>,
882 <&clkgen JH7110_GMAC0_GTXC>;
883 resets = <&rstgen RSTN_U0_DW_GMAC5_AXI64_AHB>,
884 <&rstgen RSTN_U0_DW_GMAC5_AXI64_AXI>;
885 reset-names = "ahb", "stmmaceth";
886 interrupts = <7>, <6>, <5> ;
887 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
888 max-frame-size = <9000>;
889 phy-mode = "rgmii-id";
890 snps,multicast-filter-bins = <64>;
891 snps,perfect-filter-entries = <128>;
892 rx-fifo-depth = <2048>;
893 tx-fifo-depth = <2048>;
896 snps,force_thresh_dma_mode;
897 snps,axi-config = <&stmmac_axi_setup>;
899 snps,en-tx-lpi-clockgating;
901 snps,write-requests = <4>;
902 snps,read-requests = <4>;
903 snps,burst-map = <0x7>;
909 gmac1: ethernet@16040000 {
910 compatible = "starfive,jh7110-eqos-5.20";
911 reg = <0x0 0x16040000 0x0 0x10000>;
918 clocks = <&clkgen JH7110_GMAC1_GTXCLK>,
919 <&clkgen JH7110_GMAC5_CLK_TX>,
920 <&clkgen JH7110_GMAC5_CLK_PTP>,
921 <&clkgen JH7110_GMAC5_CLK_AHB>,
922 <&clkgen JH7110_GMAC5_CLK_AXI>,
923 <&clkgen JH7110_GMAC1_GTXC>;
924 resets = <&rstgen RSTN_U1_DW_GMAC5_AXI64_H_N>,
925 <&rstgen RSTN_U1_DW_GMAC5_AXI64_A_I>;
926 reset-names = "ahb", "stmmaceth";
927 interrupts = <78>, <77>, <76> ;
928 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
929 max-frame-size = <9000>;
930 phy-mode = "rgmii-id";
931 snps,multicast-filter-bins = <64>;
932 snps,perfect-filter-entries = <128>;
933 rx-fifo-depth = <2048>;
934 tx-fifo-depth = <2048>;
937 snps,force_thresh_dma_mode;
938 snps,axi-config = <&stmmac_axi_setup>;
940 snps,en-tx-lpi-clockgating;
942 snps,write-requests = <4>;
943 snps,read-requests = <4>;
944 snps,burst-map = <0x7>;
951 compatible = "img-gpu";
952 reg = <0x0 0x18000000 0x0 0x100000>,
953 <0x0 0x130C000 0x0 0x10000>;
954 clocks = <&clkgen JH7110_GPU_CLK_APB>,
955 <&clkgen JH7110_GPU_RTC_TOGGLE>,
956 <&clkgen JH7110_GPU_CORE_CLK>,
957 <&clkgen JH7110_GPU_SYS_CLK>,
958 <&clkgen JH7110_NOC_BUS_CLK_GPU_AXI>;
959 clock-names = "clk_apb", "clk_rtc", "clk_core",
960 "clk_sys", "clk_axi";
961 resets = <&rstgen RSTN_U0_IMG_GPU_APB>,
962 <&rstgen RSTN_U0_IMG_GPU_DOMA>;
963 reset-names = "rst_apb", "rst_doma";
965 current-clock = <8000000>;
970 compatible = "ipms,can";
971 reg = <0x0 0x130d0000 0x0 0x1000>;
973 clocks = <&clkgen JH7110_CAN0_CTRL_CLK_APB>,
974 <&clkgen JH7110_CAN0_CTRL_CLK_CAN>,
975 <&clkgen JH7110_CAN0_CTRL_CLK_TIMER>;
976 clock-names = "apb_clk", "core_clk", "timer_clk";
977 resets = <&rstgen RSTN_U0_CAN_CTRL_APB>,
978 <&rstgen RSTN_U0_CAN_CTRL_CORE>,
979 <&rstgen RSTN_U0_CAN_CTRL_TIMER>;
980 reset-names = "rst_apb", "rst_core", "rst_timer";
981 starfive,sys-syscon = <&sys_syscon 0x10 0x3 0x8>;
982 syscon,can_or_canfd = <0>;
987 compatible = "ipms,can";
988 reg = <0x0 0x130e0000 0x0 0x1000>;
990 clocks = <&clkgen JH7110_CAN1_CTRL_CLK_APB>,
991 <&clkgen JH7110_CAN1_CTRL_CLK_CAN>,
992 <&clkgen JH7110_CAN1_CTRL_CLK_TIMER>;
993 clock-names = "apb_clk", "core_clk", "timer_clk";
994 resets = <&rstgen RSTN_U1_CAN_CTRL_APB>,
995 <&rstgen RSTN_U1_CAN_CTRL_CORE>,
996 <&rstgen RSTN_U1_CAN_CTRL_TIMER>;
997 reset-names = "rst_apb", "rst_core", "rst_timer";
998 starfive,sys-syscon = <&sys_syscon 0x88 0x12 0x40000>;
999 syscon,can_or_canfd = <0>;
1000 status = "disabled";
1004 compatible = "starfive,sf-tdm";
1005 reg = <0x0 0x10090000 0x0 0x1000>;
1007 clocks = <&clkgen JH7110_AHB0>,
1008 <&clkgen JH7110_TDM_CLK_AHB>,
1009 <&clkgen JH7110_APB0>,
1010 <&clkgen JH7110_TDM_CLK_APB>,
1011 <&clkgen JH7110_TDM_INTERNAL>;
1012 clock-names = "clk_ahb0", "clk_tdm_ahb",
1013 "clk_apb0", "clk_tdm_apb",
1015 resets = <&rstgen RSTN_U0_TDM16SLOT_AHB>,
1016 <&rstgen RSTN_U0_TDM16SLOT_APB>,
1017 <&rstgen RSTN_U0_TDM16SLOT_TDM>;
1018 reset-names = "tdm_ahb", "tdm_apb", "tdm_rst";
1019 dmas = <&dma 20 1>, <&dma 21 1>;
1020 dma-names = "rx","tx";
1021 #sound-dai-cells = <0>;
1022 status = "disabled";
1025 spdif0: spdif0@100a0000 {
1026 compatible = "starfive,sf-spdif";
1027 reg = <0x0 0x100a0000 0x0 0x1000>;
1028 clocks = <&clkgen JH7110_SPDIF_CLK_APB>,
1029 <&clkgen JH7110_SPDIF_CLK_CORE>,
1030 <&clkgen JH7110_MCLK>;
1031 clock-names = "spdif-apb", "spdif-core", "audioclk";
1032 resets = <&rstgen RSTN_U0_CDNS_SPDIF_APB>;
1033 reset-names = "rst_apb";
1035 interrupt-names = "tx";
1036 #sound-dai-cells = <0>;
1037 status = "disabled";
1040 pwmdac: pwmdac@100b0000 {
1041 compatible = "starfive,pwmdac";
1042 reg = <0x0 0x100b0000 0x0 0x1000>;
1043 clocks = <&clkgen JH7110_APB0>,
1044 <&clkgen JH7110_PWMDAC_CLK_APB>,
1045 <&clkgen JH7110_PWMDAC_CLK_CORE>;
1046 clock-names = "apb0", "pwmdac-apb", "pwmdac-core";
1047 resets = <&rstgen RSTN_U0_PWMDAC_APB>;
1048 reset-names = "rst-apb";
1051 #sound-dai-cells = <0>;
1052 status = "disabled";
1055 i2stx: i2stx@100c0000 {
1056 compatible = "snps,designware-i2stx";
1057 reg = <0x0 0x100c0000 0x0 0x1000>;
1058 interrupt-names = "tx";
1059 #sound-dai-cells = <0>;
1062 status = "disabled";
1066 compatible = "starfive,sf-pdm";
1067 reg = <0x0 0x100d0000 0x0 0x1000>;
1069 clocks = <&clkgen JH7110_PDM_CLK_DMIC>,
1070 <&clkgen JH7110_APB0>,
1071 <&clkgen JH7110_PDM_CLK_APB>,
1072 <&clkgen JH7110_PDM_CLK_DMIC0_BCLK_SLV>,
1073 <&clkgen JH7110_PDM_CLK_DMIC0_LRCK_SLV>,
1074 <&clkgen JH7110_PDM_CLK_DMIC1_BCLK_SLV>,
1075 <&clkgen JH7110_PDM_CLK_DMIC1_LRCK_SLV>,
1076 <&clkgen JH7110_I2SRX0_3CH_BCLK>;
1077 clock-names = "pdm_dmic", "clk_apb0", "pdm_apb",
1078 "pdm_dmic0_bclk", "pdm_dmic0_lrck",
1079 "pdm_dmic1_bclk", "pdm_dmic1_lrck",
1080 "u0_i2srx_3ch_bclk";
1081 resets = <&rstgen RSTN_U0_PDM_4MIC_DMIC>,
1082 <&rstgen RSTN_U0_PDM_4MIC_APB>;
1083 reset-names = "pdm_dmic", "pdm_apb";
1084 #sound-dai-cells = <0>;
1087 i2srx_3ch: i2srx_3ch@100e0000 {
1088 compatible = "snps,designware-i2srx";
1089 reg = <0x0 0x100e0000 0x0 0x1000>;
1090 clocks = <&clkgen JH7110_APB0>,
1091 <&clkgen JH7110_I2SRX0_3CH_CLK_APB>,
1092 <&clkgen JH7110_I2SRX_3CH_BCLK_MST>;
1093 clock-names = "apb0", "3ch-apb",
1095 resets = <&rstgen RSTN_U0_I2SRX_3CH_APB>,
1096 <&rstgen RSTN_U0_I2SRX_3CH_BCLK>;
1097 reset-names = "rst_apb_rx", "rst_bclk_rx";
1099 interrupt-names = "rx";
1102 #sound-dai-cells = <0>;
1103 status = "disabled";
1106 i2stx_4ch0: i2stx_4ch0@120b0000 {
1107 compatible = "snps,designware-i2stx-4ch0";
1108 reg = <0x0 0x120b0000 0x0 0x1000>;
1109 clocks = <&clkgen JH7110_MCLK_INNER>,
1110 <&clkgen JH7110_I2STX_4CH0_BCLK_MST>,
1111 <&clkgen JH7110_I2STX_4CH0_LRCK_MST>,
1112 <&clkgen JH7110_MCLK>,
1113 <&clkgen JH7110_I2STX0_4CHBCLK>,
1114 <&clkgen JH7110_I2STX0_4CHLRCK>;
1115 clock-names = "inner", "bclk-mst",
1118 resets = <&rstgen RSTN_U0_I2STX_4CH_APB>,
1119 <&rstgen RSTN_U0_I2STX_4CH_BCLK>;
1120 reset-names = "rst_apb0", "rst_bclk0";
1122 interrupt-names = "tx";
1125 #sound-dai-cells = <0>;
1126 status = "disabled";
1129 i2stx_4ch1: i2stx_4ch1@120c0000 {
1130 compatible = "snps,designware-i2stx-4ch1";
1131 reg = <0x0 0x120c0000 0x0 0x1000>;
1132 clocks = <&clkgen JH7110_MCLK_INNER>,
1133 <&clkgen JH7110_I2STX_4CH1_BCLK_MST>,
1134 <&clkgen JH7110_I2STX_4CH1_LRCK_MST>,
1135 <&clkgen JH7110_MCLK>,
1136 <&clkgen JH7110_I2STX1_4CHBCLK>,
1137 <&clkgen JH7110_I2STX1_4CHLRCK>;
1138 clock-names = "inner", "bclk-mst1",
1139 "lrck-mst1", "mclk",
1141 resets = <&rstgen RSTN_U1_I2STX_4CH_APB>,
1142 <&rstgen RSTN_U1_I2STX_4CH_BCLK>;
1143 reset-names = "rst_apb1", "rst_bclk1";
1145 interrupt-names = "tx";
1148 #sound-dai-cells = <0>;
1149 status = "disabled";
1153 compatible = "starfive,pwm0";
1154 reg = <0x0 0x120d0000 0x0 0x10000>;
1155 reg-names = "control";
1156 clocks = <&clkgen JH7110_PWM_CLK_APB>;
1157 resets = <&rstgen RSTN_U0_PWM_8CH_APB>;
1158 starfive,approx-period = <2000000>;
1160 starfive,npwm = <8>;
1161 status = "disabled";
1164 spdif_transmitter: spdif_transmitter {
1165 compatible = "linux,spdif-dit";
1166 #sound-dai-cells = <0>;
1167 status = "disabled";
1170 spdif_receiver: spdif_receiver {
1171 compatible = "linux,spdif-dir";
1172 #sound-dai-cells = <0>;
1173 status = "disabled";
1176 pwmdac_codec: pwmdac-transmitter {
1177 compatible = "linux,pwmdac-dit";
1178 #sound-dai-cells = <0>;
1179 status = "disabled";
1182 dmic_codec: dmic_codec {
1183 compatible = "dmic-codec";
1184 #sound-dai-cells = <0>;
1185 status = "disabled";
1188 spi0: spi@10060000 {
1189 compatible = "arm,pl022", "arm,primecell";
1190 reg = <0x0 0x10060000 0x0 0x10000>;
1191 clocks = <&clkgen JH7110_SPI0_CLK_APB>;
1192 clock-names = "apb_pclk";
1193 resets = <&rstgen RSTN_U0_SSP_SPI_APB>;
1194 reset-names = "rst_apb";
1196 dmas = <&dma 14 1>, <&dma 15 1>;
1197 dma-names = "rx","tx";
1198 arm,primecell-periphid = <0x00041022>;
1200 #address-cells = <1>;
1202 status = "disabled";
1205 pcie0: pcie@2B000000 {
1206 compatible = "plda,pci-xpressrich3-axi";
1207 #address-cells = <3>;
1209 #interrupt-cells = <1>;
1210 reg = <0x0 0x2B000000 0x0 0x1000000
1211 0x9 0x40000000 0x0 0x10000000>;
1212 reg-names = "reg", "config";
1213 device_type = "pci";
1214 starfive,stg-syscon = <&stg_syscon 0xc0 0xc4 0x130>;
1215 bus-range = <0x0 0xff>;
1216 ranges = <0x82000000 0x0 0x30000000 0x0 0x30000000 0x0 0x06000000>;
1217 msi-parent = <&plic>;
1219 interrupt-controller;
1220 interrupt-names = "msi";
1221 interrupt-parent = <&plic>;
1222 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1223 interrupt-map = <0x0 0x0 0x0 0x1 &plic 0x1>,
1224 <0x0 0x0 0x0 0x2 &plic 0x2>,
1225 <0x0 0x0 0x0 0x3 &plic 0x3>,
1226 <0x0 0x0 0x0 0x4 &plic 0x4>;
1227 resets = <&rstgen RSTN_U0_PLDA_PCIE_AXI_MST0>,
1228 <&rstgen RSTN_U0_PLDA_PCIE_AXI_SLV0>,
1229 <&rstgen RSTN_U0_PLDA_PCIE_AXI_SLV>,
1230 <&rstgen RSTN_U0_PLDA_PCIE_BRG>,
1231 <&rstgen RSTN_U0_PLDA_PCIE_CORE>,
1232 <&rstgen RSTN_U0_PLDA_PCIE_APB>;
1233 reset-names = "rst_mst0", "rst_slv0", "rst_slv",
1234 "rst_brg", "rst_core", "rst_apb";
1235 clocks = <&clkgen JH7110_PCIE0_CLK_TL>,
1236 <&clkgen JH7110_PCIE0_CLK_AXI_MST0>,
1237 <&clkgen JH7110_PCIE0_CLK_APB>;
1238 clock-names = "tl", "axi_mst0", "apb";
1239 status = "disabled";
1242 pcie1: pcie@2C000000 {
1243 compatible = "plda,pci-xpressrich3-axi";
1244 #address-cells = <3>;
1246 #interrupt-cells = <1>;
1247 reg = <0x0 0x2C000000 0x0 0x1000000
1248 0x9 0xc0000000 0x0 0x10000000>;
1249 reg-names = "reg", "config";
1250 device_type = "pci";
1251 starfive,stg-syscon = <&stg_syscon 0x270 0x274 0x2e0>;
1252 bus-range = <0x0 0xff>;
1253 ranges = <0x82000000 0x0 0x38000000 0x0 0x38000000 0x0 0x06000000>;
1254 msi-parent = <&plic>;
1256 interrupt-controller;
1257 interrupt-names = "msi";
1258 interrupt-parent = <&plic>;
1259 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1260 interrupt-map = <0x0 0x0 0x0 0x1 &plic 0x1>,
1261 <0x0 0x0 0x0 0x2 &plic 0x2>,
1262 <0x0 0x0 0x0 0x3 &plic 0x3>,
1263 <0x0 0x0 0x0 0x4 &plic 0x4>;
1264 resets = <&rstgen RSTN_U1_PLDA_PCIE_AXI_MST0>,
1265 <&rstgen RSTN_U1_PLDA_PCIE_AXI_SLV0>,
1266 <&rstgen RSTN_U1_PLDA_PCIE_AXI_SLV>,
1267 <&rstgen RSTN_U1_PLDA_PCIE_BRG>,
1268 <&rstgen RSTN_U1_PLDA_PCIE_CORE>,
1269 <&rstgen RSTN_U1_PLDA_PCIE_APB>;
1270 reset-names = "rst_mst0", "rst_slv0", "rst_slv",
1271 "rst_brg", "rst_core", "rst_apb";
1272 clocks = <&clkgen JH7110_PCIE1_CLK_TL>,
1273 <&clkgen JH7110_PCIE1_CLK_AXI_MST0>,
1274 <&clkgen JH7110_PCIE1_CLK_APB>;
1275 clock-names = "tl", "axi_mst0", "apb";
1276 status = "disabled";
1279 mailbox_contrl0: mailbox@0 {
1280 compatible = "starfive,mail_box";
1281 reg = <0x0 0x13060000 0x0 0x0001000>;
1282 clocks = <&clkgen JH7110_MAILBOX_CLK_APB>;
1283 clock-names = "clk_apb";
1284 resets = <&rstgen RSTN_U0_MAILBOX_RRESETN>;
1285 reset-names = "mbx_rre";
1286 interrupts = <26 27>;
1288 status = "disabled";
1291 mailbox_client0: mailbox_client@0 {
1292 compatible = "starfive,mailbox-test";
1293 mbox-names = "rx", "tx";
1294 mboxes = <&mailbox_contrl0 0 1>,<&mailbox_contrl0 1 0>;
1295 status = "disabled";
1298 display: display-subsystem {
1299 compatible = "verisilicon,display-subsystem";
1300 ports = <&dc_out_dpi0>;
1301 status = "disabled";
1304 dssctrl: dssctrl@295B0000 {
1305 compatible = "verisilicon,dss-ctrl", "syscon";
1306 reg = <0 0x295B0000 0 0x90>;
1309 hdmi_output: hdmi-output {
1310 compatible = "verisilicon,hdmi-encoder";
1311 verisilicon,dss-syscon = <&dssctrl>;
1312 verisilicon,mux-mask = <0x70 0x380>;
1313 verisilicon,mux-val = <0x40 0x280>;
1314 status = "disabled";
1317 dc8200: dc8200@29400000 {
1318 compatible = "verisilicon,dc8200";
1319 reg = <0x0 0x29400000 0x0 0x100>,
1320 <0x0 0x29400800 0x0 0x2000>,
1321 <0x0 0x17030000 0x0 0x1000>;
1323 status = "disabled";
1324 clocks = <&clkgen JH7110_NOC_BUS_CLK_CPU_AXI>,
1325 <&clkgen JH7110_NOC_BUS_CLK_AXICFG0_AXI>,
1326 <&clkgen JH7110_NOC_BUS_CLK_GPU_AXI>,
1327 <&clkgen JH7110_NOC_BUS_CLK_VDEC_AXI>,
1328 <&clkgen JH7110_NOC_BUS_CLK_VENC_AXI>,
1329 <&clkgen JH7110_NOC_BUS_CLK_DISP_AXI>,
1330 <&clkgen JH7110_NOC_BUS_CLK_ISP_AXI>,
1331 <&clkgen JH7110_NOC_BUS_CLK_STG_AXI>,
1332 <&clkgen JH7110_VOUT_SRC>,
1333 <&clkgen JH7110_VOUT_TOP_CLK_VOUT_AXI>,
1334 <&clkgen JH7110_AHB1>,
1335 <&clkgen JH7110_VOUT_TOP_CLK_VOUT_AHB>,
1336 <&clkgen JH7110_VOUT_TOP_CLK_HDMITX0_MCLK>,
1337 <&clkgen JH7110_I2STX_4CH0_BCLK_MST>,
1338 <&clkvout JH7110_U0_DC8200_CLK_PIX0>,
1339 <&clkvout JH7110_U0_DC8200_CLK_PIX1>,
1340 <&clkvout JH7110_U0_DC8200_CLK_AXI>,
1341 <&clkvout JH7110_U0_DC8200_CLK_CORE>,
1342 <&clkvout JH7110_U0_DC8200_CLK_AHB>;
1343 clock-names = "noc_cpu","noc_cfg0","noc_gpu","noc_vdec","noc_venc",
1344 "noc_disp","noc_isp","noc_stg","vout_src",
1345 "top_vout_axi","ahb1","top_vout_ahb",
1346 "top_vout_hdmiTX0","i2stx","pix_clk","vout_pix1",
1347 "axi_clk","core_clk","vout_ahb";
1349 resets = <&rstgen RSTN_U0_DOM_VOUT_TOP_SRC>,
1350 <&rstgen RSTN_U0_DC8200_AXI>,
1351 <&rstgen RSTN_U0_DC8200_AHB>,
1352 <&rstgen RSTN_U0_DC8200_CORE>,
1353 <&rstgen RSTN_U0_NOC_BUS_CPU_AXI_N>,
1354 <&rstgen RSTN_U0_NOC_BUS_AXICFG0_AXI_N>,
1355 <&rstgen RSTN_U0_NOC_BUS_APB_BUS_N>,
1356 <&rstgen RSTN_U0_NOC_BUS_GPU_AXI_N>,
1357 <&rstgen RSTN_U0_NOC_BUS_VDEC_AXI_N>,
1358 <&rstgen RSTN_U0_JTAG2APB_PRESETN>,
1359 <&rstgen RSTN_U0_NOC_BUS_DISP_AXI_N>,
1360 <&rstgen RSTN_U0_NOC_BUS_ISP_AXI_N>,
1361 <&rstgen RSTN_U0_NOC_BUS_STG_AXI_N>,
1362 <&rstgen RSTN_U0_NOC_BUS_DDRC_N>;
1363 reset-names = "rst_vout_src","rst_axi","rst_ahb","rst_core",
1364 "rst_noc_cpu","rst_noc_axicfg0","rst_noc_apb",
1365 "rst_noc_gpu","rst_noc_vdec","rst_jtag2apb",
1366 "rst_noc_disp","rst_noc_isp","rst_noc_stg","rst_noc_ddrc";
1369 mipi_dphy: mipi-dphy@295e0000{
1370 compatible = "starfive,jh7100-mipi-dphy-tx";
1371 reg = <0x0 0x295e0000 0x0 0x10000>;
1372 clocks = <&clkvout JH7110_U0_MIPITX_DPHY_CLK_TXESC>;
1373 clock-names = "dphy_txesc";
1374 resets = <&rstgen RSTN_U0_MIPITX_DPHY_SYS>,
1375 <&rstgen RSTN_U0_MIPITX_DPHY_TXBYTEHS>;
1376 reset-names = "dphy_sys", "dphy_txbytehs";
1378 status = "disabled";
1381 mipi_dsi: mipi@295d0000 {
1382 compatible = "cdns,dsi";
1383 reg = <0x0 0x295d0000 0x0 0x10000>;
1385 clocks = <&clkvout JH7110_U0_CDNS_DSITX_CLK_SYS>,
1386 <&clkvout JH7110_U0_CDNS_DSITX_CLK_APB>,
1387 <&clkvout JH7110_U0_CDNS_DSITX_CLK_TXESC>,
1388 <&clkvout JH7110_U0_CDNS_DSITX_CLK_DPI>;
1389 clock-names = "sys", "apb", "txesc", "dpi";
1390 resets = <&rstgen RSTN_U0_CDNS_DSITX_DPI>,
1391 <&rstgen RSTN_U0_CDNS_DSITX_APB>,
1392 <&rstgen RSTN_U0_CDNS_DSITX_RXESC>,
1393 <&rstgen RSTN_U0_CDNS_DSITX_SYS>,
1394 <&rstgen RSTN_U0_CDNS_DSITX_TXBYTEHS>,
1395 <&rstgen RSTN_U0_CDNS_DSITX_TXESC>;
1396 reset-names = "dsi_dpi", "dsi_apb", "dsi_rxesc",
1397 "dsi_sys", "dsi_txbytehs", "dsi_txesc";
1398 phys = <&mipi_dphy>;
1400 status = "disabled";
1403 dsi_out_port: endpoint {
1404 /*remote-endpoint = <&panel_dsi_port>;*/
1408 mipi_panel: panel@0 {
1409 /*compatible = "";*/
1410 status = "disabled";
1414 hdmi: hdmi@29590000 {
1415 compatible = "rockchip,rk3036-inno-hdmi";
1416 reg = <0x0 0x29590000 0x0 0x4000>;
1417 /*interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;*/
1418 /*clocks = <&cru PCLK_HDMI>;*/
1419 /*clock-names = "pclk";*/
1420 /*pinctrl-names = "default";*/
1421 /*pinctrl-0 = <&hdmi_ctl>;*/
1422 status = "disabled";
1423 clocks = <&clkvout JH7110_U0_HDMI_TX_CLK_SYS>,
1424 <&clkvout JH7110_U0_HDMI_TX_CLK_MCLK>,
1425 <&clkvout JH7110_U0_HDMI_TX_CLK_BCLK>;
1426 clock-names = "sysclk", "mclk", "bclk";
1427 resets = <&rstgen RSTN_U0_HDMI_TX_HDMI>;
1428 reset-names = "hdmi_tx";
1432 compatible = "simple-audio-card";
1433 simple-audio-card,name = "Starfive-Multi-Sound-Card";
1434 #address-cells = <1>;
1437 simple-audio-card,dai-link@0 {
1440 bitclock-master = <&sndcpu0>;
1441 frame-master = <&sndcpu0>;
1445 sound-dai = <&pwmdac>;
1449 sound-dai = <&pwmdac_codec>;
1455 compatible = "starfive,e24";
1456 reg = <0x0 0xc0110000 0x0 0x00001000>,
1457 <0x0 0xc0111000 0x0 0x0001f000>;
1458 reg-names = "ecmd", "espace";
1459 clocks = <&clkgen JH7110_E2_RTC_CLK>,
1460 <&clkgen JH7110_E2_CLK_CORE>,
1461 <&clkgen JH7110_E2_CLK_DBG>;
1462 clock-names = "clk_rtc", "clk_core", "clk_dbg";
1463 resets = <&rstgen RSTN_U0_E24_CORE>;
1464 reset-names = "e24_core";
1465 starfive,stg-syscon = <&stg_syscon>;
1466 interrupt-parent = <&plic>;
1467 firmware-name = "e24_elf";
1469 mbox-names = "tx", "rx";
1470 mboxes = <&mailbox_contrl0 0 2>,<&mailbox_contrl0 2 0>;
1471 #address-cells = <1>;
1473 ranges = <0xc0000000 0x0 0xc0000000 0x200000>;
1474 status = "disabled";
1479 compatible = "cdns,xrp";
1480 reg = <0x0 0x10230000 0x0 0x00010000
1481 0x0 0x10240000 0x0 0x00010000>;
1482 memory-region = <&xrp_reserved>;
1483 clocks = <&clkgen JH7110_HIFI4_CLK_CORE>;
1484 clock-names = "core_clk";
1485 resets = <&rstgen RSTN_U0_HIFI4_CORE>,
1486 <&rstgen RSTN_U0_HIFI4_AXI>;
1487 reset-names = "rst_core","rst_axi";
1488 firmware-name = "hifi4_elf";
1489 #address-cells = <1>;
1491 ranges = <0x40000000 0x0 0x20000000 0x040000
1492 0xf0000000 0x0 0xf0000000 0x03000000>;
1493 status = "disabled";