1 // SPDX-License-Identifier: GPL-2.0 OR MIT
3 * Copyright (C) 2022 StarFive Technology Co., Ltd.
4 * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk>
8 #include <dt-bindings/clock/starfive,jh7110-crg.h>
9 #include <dt-bindings/power/starfive,jh7110-pmu.h>
10 #include <dt-bindings/reset/starfive,jh7110-crg.h>
11 #include <dt-bindings/thermal/thermal.h>
14 compatible = "starfive,jh7110";
23 compatible = "sifive,s7", "riscv";
26 i-cache-block-size = <64>;
28 i-cache-size = <16384>;
29 next-level-cache = <&ccache>;
30 riscv,isa = "rv64imac_zba_zbb";
33 cpu0_intc: interrupt-controller {
34 compatible = "riscv,cpu-intc";
36 #interrupt-cells = <1>;
41 compatible = "sifive,u74-mc", "riscv";
43 d-cache-block-size = <64>;
45 d-cache-size = <32768>;
49 i-cache-block-size = <64>;
51 i-cache-size = <32768>;
54 mmu-type = "riscv,sv39";
55 next-level-cache = <&ccache>;
56 riscv,isa = "rv64imafdc_zba_zbb";
58 operating-points-v2 = <&cpu_opp>;
59 clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
63 cpu1_intc: interrupt-controller {
64 compatible = "riscv,cpu-intc";
66 #interrupt-cells = <1>;
71 compatible = "sifive,u74-mc", "riscv";
73 d-cache-block-size = <64>;
75 d-cache-size = <32768>;
79 i-cache-block-size = <64>;
81 i-cache-size = <32768>;
84 mmu-type = "riscv,sv39";
85 next-level-cache = <&ccache>;
86 riscv,isa = "rv64imafdc_zba_zbb";
88 operating-points-v2 = <&cpu_opp>;
89 clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
93 cpu2_intc: interrupt-controller {
94 compatible = "riscv,cpu-intc";
96 #interrupt-cells = <1>;
101 compatible = "sifive,u74-mc", "riscv";
103 d-cache-block-size = <64>;
105 d-cache-size = <32768>;
109 i-cache-block-size = <64>;
111 i-cache-size = <32768>;
114 mmu-type = "riscv,sv39";
115 next-level-cache = <&ccache>;
116 riscv,isa = "rv64imafdc_zba_zbb";
118 operating-points-v2 = <&cpu_opp>;
119 clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
121 #cooling-cells = <2>;
123 cpu3_intc: interrupt-controller {
124 compatible = "riscv,cpu-intc";
125 interrupt-controller;
126 #interrupt-cells = <1>;
131 compatible = "sifive,u74-mc", "riscv";
133 d-cache-block-size = <64>;
135 d-cache-size = <32768>;
139 i-cache-block-size = <64>;
141 i-cache-size = <32768>;
144 mmu-type = "riscv,sv39";
145 next-level-cache = <&ccache>;
146 riscv,isa = "rv64imafdc_zba_zbb";
148 operating-points-v2 = <&cpu_opp>;
149 clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
151 #cooling-cells = <2>;
153 cpu4_intc: interrupt-controller {
154 compatible = "riscv,cpu-intc";
155 interrupt-controller;
156 #interrupt-cells = <1>;
185 cpu_opp: opp-table-0 {
186 compatible = "operating-points-v2";
189 opp-hz = /bits/ 64 <375000000>;
190 opp-microvolt = <800000>;
193 opp-hz = /bits/ 64 <500000000>;
194 opp-microvolt = <800000>;
197 opp-hz = /bits/ 64 <750000000>;
198 opp-microvolt = <800000>;
201 opp-hz = /bits/ 64 <1500000000>;
202 opp-microvolt = <1040000>;
208 polling-delay-passive = <250>;
209 polling-delay = <15000>;
211 thermal-sensors = <&sfctemp>;
215 trip = <&cpu_alert0>;
217 <&U74_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
218 <&U74_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
219 <&U74_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
220 <&U74_4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
225 cpu_alert0: cpu_alert0 {
227 temperature = <85000>;
234 temperature = <100000>;
243 compatible = "fixed-clock";
244 clock-output-names = "dvp_clk";
247 gmac0_rgmii_rxin: gmac0-rgmii-rxin-clock {
248 compatible = "fixed-clock";
249 clock-output-names = "gmac0_rgmii_rxin";
253 gmac0_rmii_refin: gmac0-rmii-refin-clock {
254 compatible = "fixed-clock";
255 clock-output-names = "gmac0_rmii_refin";
259 gmac1_rgmii_rxin: gmac1-rgmii-rxin-clock {
260 compatible = "fixed-clock";
261 clock-output-names = "gmac1_rgmii_rxin";
265 gmac1_rmii_refin: gmac1-rmii-refin-clock {
266 compatible = "fixed-clock";
267 clock-output-names = "gmac1_rmii_refin";
271 hdmitx0_pixelclk: hdmitx0-pixel-clock {
272 compatible = "fixed-clock";
273 clock-output-names = "hdmitx0_pixelclk";
277 i2srx_bclk_ext: i2srx-bclk-ext-clock {
278 compatible = "fixed-clock";
279 clock-output-names = "i2srx_bclk_ext";
283 i2srx_lrck_ext: i2srx-lrck-ext-clock {
284 compatible = "fixed-clock";
285 clock-output-names = "i2srx_lrck_ext";
289 i2stx_bclk_ext: i2stx-bclk-ext-clock {
290 compatible = "fixed-clock";
291 clock-output-names = "i2stx_bclk_ext";
295 i2stx_lrck_ext: i2stx-lrck-ext-clock {
296 compatible = "fixed-clock";
297 clock-output-names = "i2stx_lrck_ext";
301 mclk_ext: mclk-ext-clock {
302 compatible = "fixed-clock";
303 clock-output-names = "mclk_ext";
308 compatible = "fixed-clock";
309 clock-output-names = "osc";
313 rtc_osc: rtc-oscillator {
314 compatible = "fixed-clock";
315 clock-output-names = "rtc_osc";
319 stmmac_axi_setup: stmmac-axi-config {
321 snps,wr_osr_lmt = <15>;
322 snps,rd_osr_lmt = <15>;
323 snps,blen = <256 128 64 32 0 0 0>;
326 tdm_ext: tdm-ext-clock {
327 compatible = "fixed-clock";
328 clock-output-names = "tdm_ext";
332 display: display-subsystem {
333 compatible = "starfive,display-subsystem";
335 clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_DISP_AXI>,
336 <&voutcrg JH7110_VOUTCLK_DC8200_CORE>,
337 <&voutcrg JH7110_VOUTCLK_DC8200_AXI>,
338 <&voutcrg JH7110_VOUTCLK_DC8200_AHB>;
339 clock-names = "noc_bus", "dc_core", "axi_core", "ahb";
340 resets = <&voutcrg JH7110_VOUTRST_DC8200_AXI>,
341 <&voutcrg JH7110_VOUTRST_DC8200_AHB>,
342 <&voutcrg JH7110_VOUTRST_DC8200_CORE>;
343 reset-names = "axi","ahb", "core";
346 dsi_encoder: dsi_encoder {
347 compatible = "starfive,dsi-encoder";
348 starfive,syscon = <&vout_syscon 0x8 0x08>;
351 compatible = "simple-bus";
352 interrupt-parent = <&plic>;
353 #address-cells = <2>;
357 clint: timer@2000000 {
358 compatible = "starfive,jh7110-clint", "sifive,clint0";
359 reg = <0x0 0x2000000 0x0 0x10000>;
360 interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
361 <&cpu1_intc 3>, <&cpu1_intc 7>,
362 <&cpu2_intc 3>, <&cpu2_intc 7>,
363 <&cpu3_intc 3>, <&cpu3_intc 7>,
364 <&cpu4_intc 3>, <&cpu4_intc 7>;
367 ccache: cache-controller@2010000 {
368 compatible = "starfive,jh7110-ccache", "sifive,ccache0", "cache";
369 reg = <0x0 0x2010000 0x0 0x4000>;
370 interrupts = <1>, <3>, <4>, <2>;
371 cache-block-size = <64>;
374 cache-size = <2097152>;
378 plic: interrupt-controller@c000000 {
379 compatible = "starfive,jh7110-plic", "sifive,plic-1.0.0";
380 reg = <0x0 0xc000000 0x0 0x4000000>;
381 interrupts-extended = <&cpu0_intc 11>,
382 <&cpu1_intc 11>, <&cpu1_intc 9>,
383 <&cpu2_intc 11>, <&cpu2_intc 9>,
384 <&cpu3_intc 11>, <&cpu3_intc 9>,
385 <&cpu4_intc 11>, <&cpu4_intc 9>;
386 interrupt-controller;
387 #interrupt-cells = <1>;
388 #address-cells = <0>;
392 uart0: serial@10000000 {
393 compatible = "snps,dw-apb-uart";
394 reg = <0x0 0x10000000 0x0 0x10000>;
395 clocks = <&syscrg JH7110_SYSCLK_UART0_CORE>,
396 <&syscrg JH7110_SYSCLK_UART0_APB>;
397 clock-names = "baudclk", "apb_pclk";
398 resets = <&syscrg JH7110_SYSRST_UART0_APB>;
405 uart1: serial@10010000 {
406 compatible = "snps,dw-apb-uart";
407 reg = <0x0 0x10010000 0x0 0x10000>;
408 clocks = <&syscrg JH7110_SYSCLK_UART1_CORE>,
409 <&syscrg JH7110_SYSCLK_UART1_APB>;
410 clock-names = "baudclk", "apb_pclk";
411 resets = <&syscrg JH7110_SYSRST_UART1_APB>;
418 uart2: serial@10020000 {
419 compatible = "snps,dw-apb-uart";
420 reg = <0x0 0x10020000 0x0 0x10000>;
421 clocks = <&syscrg JH7110_SYSCLK_UART2_CORE>,
422 <&syscrg JH7110_SYSCLK_UART2_APB>;
423 clock-names = "baudclk", "apb_pclk";
424 resets = <&syscrg JH7110_SYSRST_UART2_APB>;
432 compatible = "snps,designware-i2c";
433 reg = <0x0 0x10030000 0x0 0x10000>;
434 clocks = <&syscrg JH7110_SYSCLK_I2C0_APB>;
436 resets = <&syscrg JH7110_SYSRST_I2C0_APB>;
438 #address-cells = <1>;
444 compatible = "snps,designware-i2c";
445 reg = <0x0 0x10040000 0x0 0x10000>;
446 clocks = <&syscrg JH7110_SYSCLK_I2C1_APB>;
448 resets = <&syscrg JH7110_SYSRST_I2C1_APB>;
450 #address-cells = <1>;
456 compatible = "snps,designware-i2c";
457 reg = <0x0 0x10050000 0x0 0x10000>;
458 clocks = <&syscrg JH7110_SYSCLK_I2C2_APB>;
460 resets = <&syscrg JH7110_SYSRST_I2C2_APB>;
462 #address-cells = <1>;
468 compatible = "arm,pl022", "arm,primecell";
469 reg = <0x0 0x10060000 0x0 0x10000>;
470 clocks = <&syscrg JH7110_SYSCLK_SPI0_APB>,
471 <&syscrg JH7110_SYSCLK_SPI0_APB>;
472 clock-names = "sspclk", "apb_pclk";
473 resets = <&syscrg JH7110_SYSRST_SPI0_APB>;
475 arm,primecell-periphid = <0x00041022>;
477 #address-cells = <1>;
483 compatible = "arm,pl022", "arm,primecell";
484 reg = <0x0 0x10070000 0x0 0x10000>;
485 clocks = <&syscrg JH7110_SYSCLK_SPI1_APB>,
486 <&syscrg JH7110_SYSCLK_SPI1_APB>;
487 clock-names = "sspclk", "apb_pclk";
488 resets = <&syscrg JH7110_SYSRST_SPI1_APB>;
490 arm,primecell-periphid = <0x00041022>;
492 #address-cells = <1>;
498 compatible = "arm,pl022", "arm,primecell";
499 reg = <0x0 0x10080000 0x0 0x10000>;
500 clocks = <&syscrg JH7110_SYSCLK_SPI2_APB>,
501 <&syscrg JH7110_SYSCLK_SPI2_APB>;
502 clock-names = "sspclk", "apb_pclk";
503 resets = <&syscrg JH7110_SYSRST_SPI2_APB>;
505 arm,primecell-periphid = <0x00041022>;
507 #address-cells = <1>;
513 compatible = "starfive,jh7110-tdm";
514 reg = <0x0 0x10090000 0x0 0x1000>;
515 clocks = <&syscrg JH7110_SYSCLK_TDM_AHB>,
516 <&syscrg JH7110_SYSCLK_TDM_APB>,
517 <&syscrg JH7110_SYSCLK_TDM_INTERNAL>,
518 <&syscrg JH7110_SYSCLK_TDM_TDM>,
519 <&syscrg JH7110_SYSCLK_MCLK_INNER>,
521 clock-names = "tdm_ahb", "tdm_apb",
522 "tdm_internal", "tdm",
523 "mclk_inner", "tdm_ext";
524 resets = <&syscrg JH7110_SYSRST_TDM_AHB>,
525 <&syscrg JH7110_SYSRST_TDM_APB>,
526 <&syscrg JH7110_SYSRST_TDM_CORE>;
527 dmas = <&dma 20>, <&dma 21>;
528 dma-names = "rx","tx";
529 #sound-dai-cells = <0>;
533 pwmdac: pwmdac@100b0000 {
534 compatible = "starfive,jh7110-pwmdac";
535 reg = <0x0 0x100b0000 0x0 0x1000>;
536 clocks = <&syscrg JH7110_SYSCLK_PWMDAC_APB>,
537 <&syscrg JH7110_SYSCLK_PWMDAC_CORE>;
538 clock-names = "apb", "core";
539 resets = <&syscrg JH7110_SYSRST_PWMDAC_APB>;
542 #sound-dai-cells = <0>;
546 i2srx: i2s@100e0000 {
547 compatible = "starfive,jh7110-i2srx";
548 reg = <0x0 0x100e0000 0x0 0x1000>;
549 clocks = <&syscrg JH7110_SYSCLK_I2SRX_BCLK_MST>,
550 <&syscrg JH7110_SYSCLK_I2SRX_APB>,
551 <&syscrg JH7110_SYSCLK_MCLK>,
552 <&syscrg JH7110_SYSCLK_MCLK_INNER>,
554 <&syscrg JH7110_SYSCLK_I2SRX_BCLK>,
555 <&syscrg JH7110_SYSCLK_I2SRX_LRCK>,
558 clock-names = "i2sclk", "apb", "mclk",
559 "mclk_inner", "mclk_ext", "bclk",
560 "lrck", "bclk_ext", "lrck_ext";
561 resets = <&syscrg JH7110_SYSRST_I2SRX_APB>,
562 <&syscrg JH7110_SYSRST_I2SRX_BCLK>;
563 dmas = <0>, <&dma 24>;
564 dma-names = "tx", "rx";
565 starfive,syscon = <&sys_syscon 0x18 0x2>;
566 #sound-dai-cells = <0>;
571 compatible = "starfive,jh7110-usb";
572 ranges = <0x0 0x0 0x10100000 0x100000>;
573 #address-cells = <1>;
575 starfive,stg-syscon = <&stg_syscon 0x4>;
576 starfive,sys-syscon = <&sys_syscon 0x18>;
577 clocks = <&stgcrg JH7110_STGCLK_USB0_LPM>,
578 <&stgcrg JH7110_STGCLK_USB0_STB>,
579 <&stgcrg JH7110_STGCLK_USB0_APB>,
580 <&stgcrg JH7110_STGCLK_USB0_AXI>,
581 <&stgcrg JH7110_STGCLK_USB0_UTMI_APB>;
582 clock-names = "lpm", "stb", "apb", "axi", "utmi_apb";
583 resets = <&stgcrg JH7110_STGRST_USB0_PWRUP>,
584 <&stgcrg JH7110_STGRST_USB0_APB>,
585 <&stgcrg JH7110_STGRST_USB0_AXI>,
586 <&stgcrg JH7110_STGRST_USB0_UTMI_APB>;
587 reset-names = "pwrup", "apb", "axi", "utmi_apb";
591 compatible = "cdns,usb3";
595 reg-names = "otg", "xhci", "dev";
596 interrupts = <100>, <108>, <110>;
597 interrupt-names = "host", "peripheral", "otg";
599 phy-names = "cdns3,usb2-phy";
603 usbphy0: phy@10200000 {
604 compatible = "starfive,jh7110-usb-phy";
605 reg = <0x0 0x10200000 0x0 0x10000>;
606 clocks = <&syscrg JH7110_SYSCLK_USB_125M>,
607 <&stgcrg JH7110_STGCLK_USB0_APP_125>;
608 clock-names = "125m", "app_125m";
612 pciephy0: phy@10210000 {
613 compatible = "starfive,jh7110-pcie-phy";
614 reg = <0x0 0x10210000 0x0 0x10000>;
618 pciephy1: phy@10220000 {
619 compatible = "starfive,jh7110-pcie-phy";
620 reg = <0x0 0x10220000 0x0 0x10000>;
624 stgcrg: clock-controller@10230000 {
625 compatible = "starfive,jh7110-stgcrg";
626 reg = <0x0 0x10230000 0x0 0x10000>;
628 <&syscrg JH7110_SYSCLK_HIFI4_CORE>,
629 <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
630 <&syscrg JH7110_SYSCLK_USB_125M>,
631 <&syscrg JH7110_SYSCLK_CPU_BUS>,
632 <&syscrg JH7110_SYSCLK_HIFI4_AXI>,
633 <&syscrg JH7110_SYSCLK_NOCSTG_BUS>,
634 <&syscrg JH7110_SYSCLK_APB_BUS>;
635 clock-names = "osc", "hifi4_core",
636 "stg_axiahb", "usb_125m",
637 "cpu_bus", "hifi4_axi",
638 "nocstg_bus", "apb_bus";
643 stg_syscon: syscon@10240000 {
644 compatible = "starfive,jh7110-stg-syscon", "syscon";
645 reg = <0x0 0x10240000 0x0 0x1000>;
648 uart3: serial@12000000 {
649 compatible = "snps,dw-apb-uart";
650 reg = <0x0 0x12000000 0x0 0x10000>;
651 clocks = <&syscrg JH7110_SYSCLK_UART3_CORE>,
652 <&syscrg JH7110_SYSCLK_UART3_APB>;
653 clock-names = "baudclk", "apb_pclk";
654 resets = <&syscrg JH7110_SYSRST_UART3_APB>;
661 uart4: serial@12010000 {
662 compatible = "snps,dw-apb-uart";
663 reg = <0x0 0x12010000 0x0 0x10000>;
664 clocks = <&syscrg JH7110_SYSCLK_UART4_CORE>,
665 <&syscrg JH7110_SYSCLK_UART4_APB>;
666 clock-names = "baudclk", "apb_pclk";
667 resets = <&syscrg JH7110_SYSRST_UART4_APB>;
674 uart5: serial@12020000 {
675 compatible = "snps,dw-apb-uart";
676 reg = <0x0 0x12020000 0x0 0x10000>;
677 clocks = <&syscrg JH7110_SYSCLK_UART5_CORE>,
678 <&syscrg JH7110_SYSCLK_UART5_APB>;
679 clock-names = "baudclk", "apb_pclk";
680 resets = <&syscrg JH7110_SYSRST_UART5_APB>;
688 compatible = "snps,designware-i2c";
689 reg = <0x0 0x12030000 0x0 0x10000>;
690 clocks = <&syscrg JH7110_SYSCLK_I2C3_APB>;
692 resets = <&syscrg JH7110_SYSRST_I2C3_APB>;
694 #address-cells = <1>;
700 compatible = "snps,designware-i2c";
701 reg = <0x0 0x12040000 0x0 0x10000>;
702 clocks = <&syscrg JH7110_SYSCLK_I2C4_APB>;
704 resets = <&syscrg JH7110_SYSRST_I2C4_APB>;
706 #address-cells = <1>;
712 compatible = "snps,designware-i2c";
713 reg = <0x0 0x12050000 0x0 0x10000>;
714 clocks = <&syscrg JH7110_SYSCLK_I2C5_APB>;
716 resets = <&syscrg JH7110_SYSRST_I2C5_APB>;
718 #address-cells = <1>;
724 compatible = "snps,designware-i2c";
725 reg = <0x0 0x12060000 0x0 0x10000>;
726 clocks = <&syscrg JH7110_SYSCLK_I2C6_APB>;
728 resets = <&syscrg JH7110_SYSRST_I2C6_APB>;
730 #address-cells = <1>;
736 compatible = "arm,pl022", "arm,primecell";
737 reg = <0x0 0x12070000 0x0 0x10000>;
738 clocks = <&syscrg JH7110_SYSCLK_SPI3_APB>,
739 <&syscrg JH7110_SYSCLK_SPI3_APB>;
740 clock-names = "sspclk", "apb_pclk";
741 resets = <&syscrg JH7110_SYSRST_SPI3_APB>;
743 arm,primecell-periphid = <0x00041022>;
745 #address-cells = <1>;
751 compatible = "arm,pl022", "arm,primecell";
752 reg = <0x0 0x12080000 0x0 0x10000>;
753 clocks = <&syscrg JH7110_SYSCLK_SPI4_APB>,
754 <&syscrg JH7110_SYSCLK_SPI4_APB>;
755 clock-names = "sspclk", "apb_pclk";
756 resets = <&syscrg JH7110_SYSRST_SPI4_APB>;
758 arm,primecell-periphid = <0x00041022>;
760 #address-cells = <1>;
766 compatible = "arm,pl022", "arm,primecell";
767 reg = <0x0 0x12090000 0x0 0x10000>;
768 clocks = <&syscrg JH7110_SYSCLK_SPI5_APB>,
769 <&syscrg JH7110_SYSCLK_SPI5_APB>;
770 clock-names = "sspclk", "apb_pclk";
771 resets = <&syscrg JH7110_SYSRST_SPI5_APB>;
773 arm,primecell-periphid = <0x00041022>;
775 #address-cells = <1>;
781 compatible = "arm,pl022", "arm,primecell";
782 reg = <0x0 0x120A0000 0x0 0x10000>;
783 clocks = <&syscrg JH7110_SYSCLK_SPI6_APB>,
784 <&syscrg JH7110_SYSCLK_SPI6_APB>;
785 clock-names = "sspclk", "apb_pclk";
786 resets = <&syscrg JH7110_SYSRST_SPI6_APB>;
788 arm,primecell-periphid = <0x00041022>;
790 #address-cells = <1>;
795 i2stx0: i2s@120b0000 {
796 compatible = "starfive,jh7110-i2stx0";
797 reg = <0x0 0x120b0000 0x0 0x1000>;
798 clocks = <&syscrg JH7110_SYSCLK_I2STX0_BCLK_MST>,
799 <&syscrg JH7110_SYSCLK_I2STX0_APB>,
800 <&syscrg JH7110_SYSCLK_MCLK>,
801 <&syscrg JH7110_SYSCLK_MCLK_INNER>,
803 clock-names = "i2sclk", "apb", "mclk",
804 "mclk_inner","mclk_ext";
805 resets = <&syscrg JH7110_SYSRST_I2STX0_APB>,
806 <&syscrg JH7110_SYSRST_I2STX0_BCLK>;
809 #sound-dai-cells = <0>;
813 i2stx1: i2s@120c0000 {
814 compatible = "starfive,jh7110-i2stx1";
815 reg = <0x0 0x120c0000 0x0 0x1000>;
816 clocks = <&syscrg JH7110_SYSCLK_I2STX1_BCLK_MST>,
817 <&syscrg JH7110_SYSCLK_I2STX1_APB>,
818 <&syscrg JH7110_SYSCLK_MCLK>,
819 <&syscrg JH7110_SYSCLK_MCLK_INNER>,
821 <&syscrg JH7110_SYSCLK_I2STX1_BCLK>,
822 <&syscrg JH7110_SYSCLK_I2STX1_LRCK>,
825 clock-names = "i2sclk", "apb", "mclk",
826 "mclk_inner", "mclk_ext", "bclk",
827 "lrck", "bclk_ext", "lrck_ext";
828 resets = <&syscrg JH7110_SYSRST_I2STX1_APB>,
829 <&syscrg JH7110_SYSRST_I2STX1_BCLK>;
832 #sound-dai-cells = <0>;
836 sfctemp: temperature-sensor@120e0000 {
837 compatible = "starfive,jh7110-temp";
838 reg = <0x0 0x120e0000 0x0 0x10000>;
839 clocks = <&syscrg JH7110_SYSCLK_TEMP_CORE>,
840 <&syscrg JH7110_SYSCLK_TEMP_APB>;
841 clock-names = "sense", "bus";
842 resets = <&syscrg JH7110_SYSRST_TEMP_CORE>,
843 <&syscrg JH7110_SYSRST_TEMP_APB>;
844 reset-names = "sense", "bus";
845 #thermal-sensor-cells = <0>;
849 compatible = "starfive,jh7110-qspi", "cdns,qspi-nor";
850 reg = <0x0 0x13010000 0x0 0x10000>,
851 <0x0 0x21000000 0x0 0x400000>;
853 clocks = <&syscrg JH7110_SYSCLK_QSPI_REF>,
854 <&syscrg JH7110_SYSCLK_QSPI_AHB>,
855 <&syscrg JH7110_SYSCLK_QSPI_APB>;
856 clock-names = "ref", "ahb", "apb";
857 resets = <&syscrg JH7110_SYSRST_QSPI_APB>,
858 <&syscrg JH7110_SYSRST_QSPI_AHB>,
859 <&syscrg JH7110_SYSRST_QSPI_REF>;
860 reset-names = "qspi", "qspi-ocp", "rstc_ref";
861 cdns,fifo-depth = <256>;
862 cdns,fifo-width = <4>;
863 cdns,trigger-address = <0x0>;
867 syscrg: clock-controller@13020000 {
868 compatible = "starfive,jh7110-syscrg";
869 reg = <0x0 0x13020000 0x0 0x10000>;
870 clocks = <&osc>, <&gmac1_rmii_refin>,
872 <&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
873 <&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
874 <&tdm_ext>, <&mclk_ext>,
875 <&pllclk JH7110_PLLCLK_PLL0_OUT>,
876 <&pllclk JH7110_PLLCLK_PLL1_OUT>,
877 <&pllclk JH7110_PLLCLK_PLL2_OUT>;
878 clock-names = "osc", "gmac1_rmii_refin",
880 "i2stx_bclk_ext", "i2stx_lrck_ext",
881 "i2srx_bclk_ext", "i2srx_lrck_ext",
882 "tdm_ext", "mclk_ext",
883 "pll0_out", "pll1_out", "pll2_out";
888 sys_syscon: syscon@13030000 {
889 compatible = "starfive,jh7110-sys-syscon", "syscon", "simple-mfd";
890 reg = <0x0 0x13030000 0x0 0x1000>;
892 pllclk: clock-controller {
893 compatible = "starfive,jh7110-pll";
899 sysgpio: pinctrl@13040000 {
900 compatible = "starfive,jh7110-sys-pinctrl";
901 reg = <0x0 0x13040000 0x0 0x10000>;
902 clocks = <&syscrg JH7110_SYSCLK_IOMUX_APB>;
903 resets = <&syscrg JH7110_SYSRST_IOMUX_APB>;
905 interrupt-controller;
906 #interrupt-cells = <2>;
912 compatible = "starfive,jh7110-wdt";
913 reg = <0x0 0x13070000 0x0 0x10000>;
914 clocks = <&syscrg JH7110_SYSCLK_WDT_APB>,
915 <&syscrg JH7110_SYSCLK_WDT_CORE>;
916 clock-names = "apb", "core";
917 resets = <&syscrg JH7110_SYSRST_WDT_APB>,
918 <&syscrg JH7110_SYSRST_WDT_CORE>;
921 crypto: crypto@16000000 {
922 compatible = "starfive,jh7110-crypto";
923 reg = <0x0 0x16000000 0x0 0x4000>;
924 clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>,
925 <&stgcrg JH7110_STGCLK_SEC_MISC_AHB>;
926 clock-names = "hclk", "ahb";
928 resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
929 dmas = <&sdma 1 2>, <&sdma 0 2>;
930 dma-names = "tx", "rx";
933 sdma: dma-controller@16008000 {
934 compatible = "arm,pl080", "arm,primecell";
935 arm,primecell-periphid = <0x00041080>;
936 reg = <0x0 0x16008000 0x0 0x4000>;
938 clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>;
939 clock-names = "apb_pclk";
940 resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
941 lli-bus-interface-ahb1;
942 mem-bus-interface-ahb1;
943 memcpy-burst-size = <256>;
944 memcpy-bus-width = <32>;
949 compatible = "starfive,jh7110-trng";
950 reg = <0x0 0x1600C000 0x0 0x4000>;
951 clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>,
952 <&stgcrg JH7110_STGCLK_SEC_MISC_AHB>;
953 clock-names = "hclk", "ahb";
954 resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
959 compatible = "starfive,jh7110-mmc";
960 reg = <0x0 0x16010000 0x0 0x10000>;
961 clocks = <&syscrg JH7110_SYSCLK_SDIO0_AHB>,
962 <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>;
963 clock-names = "biu","ciu";
964 resets = <&syscrg JH7110_SYSRST_SDIO0_AHB>;
965 reset-names = "reset";
968 fifo-watermark-aligned;
970 starfive,sysreg = <&sys_syscon 0x14 0x1a 0x7c000000>;
975 compatible = "starfive,jh7110-mmc";
976 reg = <0x0 0x16020000 0x0 0x10000>;
977 clocks = <&syscrg JH7110_SYSCLK_SDIO1_AHB>,
978 <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>;
979 clock-names = "biu","ciu";
980 resets = <&syscrg JH7110_SYSRST_SDIO1_AHB>;
981 reset-names = "reset";
984 fifo-watermark-aligned;
986 starfive,sysreg = <&sys_syscon 0x9c 0x1 0x3e>;
990 gmac0: ethernet@16030000 {
991 compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
992 reg = <0x0 0x16030000 0x0 0x10000>;
993 clocks = <&aoncrg JH7110_AONCLK_GMAC0_AXI>,
994 <&aoncrg JH7110_AONCLK_GMAC0_AHB>,
995 <&syscrg JH7110_SYSCLK_GMAC0_PTP>,
996 <&aoncrg JH7110_AONCLK_GMAC0_TX_INV>,
997 <&syscrg JH7110_SYSCLK_GMAC0_GTXC>;
998 clock-names = "stmmaceth", "pclk", "ptp_ref",
1000 resets = <&aoncrg JH7110_AONRST_GMAC0_AXI>,
1001 <&aoncrg JH7110_AONRST_GMAC0_AHB>;
1002 reset-names = "stmmaceth", "ahb";
1003 interrupts = <7>, <6>, <5>;
1004 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
1005 rx-fifo-depth = <2048>;
1006 tx-fifo-depth = <2048>;
1007 snps,multicast-filter-bins = <64>;
1008 snps,perfect-filter-entries = <256>;
1011 snps,force_thresh_dma_mode;
1012 snps,axi-config = <&stmmac_axi_setup>;
1014 snps,en-tx-lpi-clockgating;
1017 starfive,syscon = <&aon_syscon 0xc 0x12>;
1018 status = "disabled";
1021 gmac1: ethernet@16040000 {
1022 compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
1023 reg = <0x0 0x16040000 0x0 0x10000>;
1024 clocks = <&syscrg JH7110_SYSCLK_GMAC1_AXI>,
1025 <&syscrg JH7110_SYSCLK_GMAC1_AHB>,
1026 <&syscrg JH7110_SYSCLK_GMAC1_PTP>,
1027 <&syscrg JH7110_SYSCLK_GMAC1_TX_INV>,
1028 <&syscrg JH7110_SYSCLK_GMAC1_GTXC>;
1029 clock-names = "stmmaceth", "pclk", "ptp_ref",
1031 resets = <&syscrg JH7110_SYSRST_GMAC1_AXI>,
1032 <&syscrg JH7110_SYSRST_GMAC1_AHB>;
1033 reset-names = "stmmaceth", "ahb";
1034 interrupts = <78>, <77>, <76>;
1035 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
1036 rx-fifo-depth = <2048>;
1037 tx-fifo-depth = <2048>;
1038 snps,multicast-filter-bins = <64>;
1039 snps,perfect-filter-entries = <256>;
1042 snps,force_thresh_dma_mode;
1043 snps,axi-config = <&stmmac_axi_setup>;
1045 snps,en-tx-lpi-clockgating;
1048 starfive,syscon = <&sys_syscon 0x90 0x2>;
1049 status = "disabled";
1053 compatible = "img-gpu";
1054 reg = <0x0 0x18000000 0x0 0x100000>,
1055 <0x0 0x130C000 0x0 0x10000>;
1056 clocks = <&syscrg JH7110_SYSCLK_GPU_CORE>,
1057 <&syscrg JH7110_SYSCLK_GPU_APB>,
1058 <&syscrg JH7110_SYSCLK_GPU_RTC_TOGGLE>,
1059 <&syscrg JH7110_SYSCLK_GPU_CORE_CLK>,
1060 <&syscrg JH7110_SYSCLK_GPU_SYS_CLK>,
1061 <&syscrg JH7110_SYSCLK_NOC_BUS_GPU_AXI>;
1062 clock-names = "clk_bv", "clk_apb", "clk_rtc",
1063 "clk_core", "clk_sys", "clk_axi";
1064 resets = <&syscrg JH7110_SYSRST_GPU_APB>,
1065 <&syscrg JH7110_SYSRST_GPU_DOMA>;
1066 reset-names = "rst_apb", "rst_doma";
1067 power-domains = <&pwrc JH7110_PD_GPUA>;
1069 current-clock = <8000000>;
1070 status = "disabled";
1074 compatible = "starfive,jpu";
1075 reg = <0x0 0x13090000 0x0 0x300>;
1077 clocks = <&syscrg JH7110_SYSCLK_CODAJ12_AXI>,
1078 <&syscrg JH7110_SYSCLK_CODAJ12_CORE>,
1079 <&syscrg JH7110_SYSCLK_CODAJ12_APB>,
1080 <&syscrg JH7110_SYSCLK_NOC_BUS_VDEC_AXI>;
1081 clock-names = "axi_clk", "core_clk",
1082 "apb_clk", "noc_bus";
1083 resets = <&syscrg JH7110_SYSRST_CODAJ12_AXI>,
1084 <&syscrg JH7110_SYSRST_CODAJ12_CORE>,
1085 <&syscrg JH7110_SYSRST_CODAJ12_APB>;
1086 reset-names = "rst_axi", "rst_core", "rst_apb";
1087 power-domains = <&pwrc JH7110_PD_VDEC>;
1088 status = "disabled";
1091 vpu_dec: vpu_dec@130A0000 {
1092 compatible = "starfive,vdec";
1093 reg = <0x0 0x130A0000 0x0 0x10000>;
1095 clocks = <&syscrg JH7110_SYSCLK_WAVE511_AXI>,
1096 <&syscrg JH7110_SYSCLK_WAVE511_BPU>,
1097 <&syscrg JH7110_SYSCLK_WAVE511_VCE>,
1098 <&syscrg JH7110_SYSCLK_WAVE511_APB>,
1099 <&syscrg JH7110_SYSCLK_NOC_BUS_VDEC_AXI>;
1100 clock-names = "axi_clk", "bpu_clk", "vce_clk",
1101 "apb_clk", "noc_bus";
1102 resets = <&syscrg JH7110_SYSRST_WAVE511_AXI>,
1103 <&syscrg JH7110_SYSRST_WAVE511_BPU>,
1104 <&syscrg JH7110_SYSRST_WAVE511_VCE>,
1105 <&syscrg JH7110_SYSRST_WAVE511_APB>,
1106 <&syscrg JH7110_SYSRST_AXIMEM0_AXI>;
1107 reset-names = "rst_axi", "rst_bpu", "rst_vce",
1108 "rst_apb", "rst_sram";
1109 starfive,vdec_noc_ctrl;
1110 power-domains = <&pwrc JH7110_PD_VDEC>;
1111 status = "disabled";
1114 vpu_enc: vpu_enc@130B0000 {
1115 compatible = "starfive,venc";
1116 reg = <0x0 0x130B0000 0x0 0x10000>;
1118 clocks = <&syscrg JH7110_SYSCLK_VENC_AXI>,
1119 <&syscrg JH7110_SYSCLK_WAVE420L_BPU>,
1120 <&syscrg JH7110_SYSCLK_WAVE420L_VCE>,
1121 <&syscrg JH7110_SYSCLK_WAVE420L_APB>,
1122 <&syscrg JH7110_SYSCLK_NOC_BUS_VENC_AXI>;
1123 clock-names = "axi_clk", "bpu_clk", "vce_clk",
1124 "apb_clk", "noc_bus";
1125 resets = <&syscrg JH7110_SYSRST_WAVE420L_AXI>,
1126 <&syscrg JH7110_SYSRST_WAVE420L_BPU>,
1127 <&syscrg JH7110_SYSRST_WAVE420L_VCE>,
1128 <&syscrg JH7110_SYSRST_WAVE420L_APB>,
1129 <&syscrg JH7110_SYSRST_AXIMEM1_AXI>;
1130 reset-names = "rst_axi", "rst_bpu", "rst_vce",
1131 "rst_apb", "rst_sram";
1132 starfive,venc_noc_ctrl;
1133 power-domains = <&pwrc JH7110_PD_VENC>;
1134 status = "disabled";
1137 dma: dma-controller@16050000 {
1138 compatible = "starfive,jh7110-axi-dma";
1139 reg = <0x0 0x16050000 0x0 0x10000>;
1140 clocks = <&stgcrg JH7110_STGCLK_DMA1P_AXI>,
1141 <&stgcrg JH7110_STGCLK_DMA1P_AHB>;
1142 clock-names = "core-clk", "cfgr-clk";
1143 resets = <&stgcrg JH7110_STGRST_DMA1P_AXI>,
1144 <&stgcrg JH7110_STGRST_DMA1P_AHB>;
1148 snps,dma-masters = <1>;
1149 snps,data-width = <3>;
1150 snps,block-size = <65536 65536 65536 65536>;
1151 snps,priority = <0 1 2 3>;
1152 snps,axi-max-burst-len = <16>;
1155 aoncrg: clock-controller@17000000 {
1156 compatible = "starfive,jh7110-aoncrg";
1157 reg = <0x0 0x17000000 0x0 0x10000>;
1158 clocks = <&osc>, <&gmac0_rmii_refin>,
1159 <&gmac0_rgmii_rxin>,
1160 <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
1161 <&syscrg JH7110_SYSCLK_APB_BUS>,
1162 <&syscrg JH7110_SYSCLK_GMAC0_GTXCLK>,
1164 clock-names = "osc", "gmac0_rmii_refin",
1165 "gmac0_rgmii_rxin", "stg_axiahb",
1166 "apb_bus", "gmac0_gtxclk",
1172 aon_syscon: syscon@17010000 {
1173 compatible = "starfive,jh7110-aon-syscon", "syscon";
1174 reg = <0x0 0x17010000 0x0 0x1000>;
1175 #power-domain-cells = <1>;
1178 aongpio: pinctrl@17020000 {
1179 compatible = "starfive,jh7110-aon-pinctrl";
1180 reg = <0x0 0x17020000 0x0 0x10000>;
1181 resets = <&aoncrg JH7110_AONRST_IOMUX>;
1183 interrupt-controller;
1184 #interrupt-cells = <2>;
1190 compatible = "starfive,jh7110-rtc";
1191 reg = <0x0 0x17040000 0x0 0x10000>;
1192 interrupts = <10>, <11>, <12>;
1193 interrupt-names = "rtc_ms_pulse", "rtc_sec_pulse", "rtc";
1194 clocks = <&aoncrg JH7110_AONCLK_RTC_APB>,
1195 <&aoncrg JH7110_AONCLK_RTC_CAL>;
1196 clock-names = "pclk", "cal_clk";
1197 resets = <&aoncrg JH7110_AONRST_RTC_32K>,
1198 <&aoncrg JH7110_AONRST_RTC_APB>,
1199 <&aoncrg JH7110_AONRST_RTC_CAL>;
1200 reset-names = "rst_osc", "rst_apb", "rst_cal";
1201 rtc,cal-clock-freq = <1000000>;
1205 pwrc: power-controller@17030000 {
1206 compatible = "starfive,jh7110-pmu";
1207 reg = <0x0 0x17030000 0x0 0x10000>;
1209 #power-domain-cells = <1>;
1212 ispcrg: clock-controller@19810000 {
1213 compatible = "starfive,jh7110-ispcrg";
1214 reg = <0x0 0x19810000 0x0 0x10000>;
1215 clocks = <&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
1216 <&syscrg JH7110_SYSCLK_ISP_TOP_AXI>,
1217 <&syscrg JH7110_SYSCLK_NOC_BUS_ISP_AXI>,
1219 clock-names = "isp_top_core", "isp_top_axi",
1220 "noc_bus_isp_axi", "dvp_clk";
1221 resets = <&syscrg JH7110_SYSRST_ISP_TOP>,
1222 <&syscrg JH7110_SYSRST_ISP_TOP_AXI>,
1223 <&syscrg JH7110_SYSRST_NOC_BUS_ISP_AXI>;
1226 power-domains = <&pwrc JH7110_PD_ISP>;
1229 dc8200: lcd-controller@29400000 {
1230 compatible = "starfive,jh7110-dc8200";
1231 reg = <0x0 0x29400000 0x0 0x100>,
1232 <0x0 0x29400800 0x0 0x2000>;
1234 clocks = <&voutcrg JH7110_VOUTCLK_DC8200_PIX0>,
1235 <&voutcrg JH7110_VOUTCLK_DC8200_PIX1>,
1236 <&hdmitx0_pixelclk>,
1237 <&voutcrg JH7110_VOUTCLK_DC8200_PIX>;
1238 clock-names = "channel0", "channel1",
1239 "hdmi_tx", "dc_parent";
1242 hdmi: hdmi@29590000 {
1243 compatible = "starfive,jh7110-inno-hdmi";
1244 reg = <0x0 0x29590000 0x0 0x4000>;
1247 clocks = <&voutcrg JH7110_VOUTCLK_HDMI_TX_SYS>,
1248 <&voutcrg JH7110_VOUTCLK_HDMI_TX_MCLK>,
1249 <&voutcrg JH7110_VOUTCLK_HDMI_TX_BCLK>;
1250 clock-names = "sysclk", "mclk", "bclk";
1251 resets = <&voutcrg JH7110_VOUTRST_HDMI_TX_HDMI>;
1252 #sound-dai-cells = <0>;
1255 pcie0: pcie@2B000000 {
1256 compatible = "starfive,jh7110-pcie";
1257 #address-cells = <3>;
1259 #interrupt-cells = <1>;
1260 reg = <0x0 0x2B000000 0x0 0x1000000
1261 0x9 0x40000000 0x0 0x10000000>;
1262 reg-names = "reg", "config";
1263 device_type = "pci";
1264 starfive,stg-syscon = <&stg_syscon 0xc0 0xc4 0x130 0x1b8>;
1265 bus-range = <0x0 0xff>;
1266 ranges = <0x82000000 0x0 0x30000000 0x0 0x30000000 0x0 0x08000000>,
1267 <0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
1269 interrupt-parent = <&plic>;
1270 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1271 interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>,
1272 <0x0 0x0 0x0 0x2 &pcie_intc0 0x2>,
1273 <0x0 0x0 0x0 0x3 &pcie_intc0 0x3>,
1274 <0x0 0x0 0x0 0x4 &pcie_intc0 0x4>;
1275 msi-parent = <&pcie0>;
1277 clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
1278 <&stgcrg JH7110_STGCLK_PCIE0_TL>,
1279 <&stgcrg JH7110_STGCLK_PCIE0_AXI_MST0>,
1280 <&stgcrg JH7110_STGCLK_PCIE0_APB>;
1281 clock-names = "noc", "tl", "axi_mst0", "apb";
1282 resets = <&stgcrg JH7110_STGRST_PCIE0_AXI_MST0>,
1283 <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV0>,
1284 <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV>,
1285 <&stgcrg JH7110_STGRST_PCIE0_BRG>,
1286 <&stgcrg JH7110_STGRST_PCIE0_CORE>,
1287 <&stgcrg JH7110_STGRST_PCIE0_APB>;
1288 reset-names = "mst0", "slv0", "slv", "brg",
1290 status = "disabled";
1292 pcie_intc0: interrupt-controller {
1293 #address-cells = <0>;
1294 #interrupt-cells = <1>;
1295 interrupt-controller;
1299 pcie1: pcie@2C000000 {
1300 compatible = "starfive,jh7110-pcie";
1301 #address-cells = <3>;
1303 #interrupt-cells = <1>;
1304 reg = <0x0 0x2C000000 0x0 0x1000000
1305 0x9 0xc0000000 0x0 0x10000000>;
1306 reg-names = "reg", "config";
1307 device_type = "pci";
1308 starfive,stg-syscon = <&stg_syscon 0x270 0x274 0x2e0 0x368>;
1309 bus-range = <0x0 0xff>;
1310 ranges = <0x82000000 0x0 0x38000000 0x0 0x38000000 0x0 0x08000000>,
1311 <0xc3000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>;
1313 interrupt-parent = <&plic>;
1314 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1315 interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc1 0x1>,
1316 <0x0 0x0 0x0 0x2 &pcie_intc1 0x2>,
1317 <0x0 0x0 0x0 0x3 &pcie_intc1 0x3>,
1318 <0x0 0x0 0x0 0x4 &pcie_intc1 0x4>;
1319 msi-parent = <&pcie1>;
1321 clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
1322 <&stgcrg JH7110_STGCLK_PCIE1_TL>,
1323 <&stgcrg JH7110_STGCLK_PCIE1_AXI_MST0>,
1324 <&stgcrg JH7110_STGCLK_PCIE1_APB>;
1325 clock-names = "noc", "tl", "axi_mst0", "apb";
1326 resets = <&stgcrg JH7110_STGRST_PCIE1_AXI_MST0>,
1327 <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV0>,
1328 <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV>,
1329 <&stgcrg JH7110_STGRST_PCIE1_BRG>,
1330 <&stgcrg JH7110_STGRST_PCIE1_CORE>,
1331 <&stgcrg JH7110_STGRST_PCIE1_APB>;
1332 reset-names = "mst0", "slv0", "slv", "brg",
1334 status = "disabled";
1336 pcie_intc1: interrupt-controller {
1337 #address-cells = <0>;
1338 #interrupt-cells = <1>;
1339 interrupt-controller;
1344 vout_syscon: syscon@295b0000 {
1345 compatible = "starfive,jh7110-vout-syscon", "syscon";
1346 reg = <0 0x295b0000 0 0x90>;
1349 voutcrg: clock-controller@295c0000 {
1350 compatible = "starfive,jh7110-voutcrg";
1351 reg = <0x0 0x295c0000 0x0 0x10000>;
1352 clocks = <&syscrg JH7110_SYSCLK_VOUT_SRC>,
1353 <&syscrg JH7110_SYSCLK_VOUT_TOP_AHB>,
1354 <&syscrg JH7110_SYSCLK_VOUT_TOP_AXI>,
1355 <&syscrg JH7110_SYSCLK_VOUT_TOP_HDMITX0_MCLK>,
1356 <&syscrg JH7110_SYSCLK_I2STX0_BCLK>,
1357 <&hdmitx0_pixelclk>;
1358 clock-names = "vout_src", "vout_top_ahb",
1359 "vout_top_axi", "vout_top_hdmitx0_mclk",
1360 "i2stx0_bclk", "hdmitx0_pixelclk";
1361 resets = <&syscrg JH7110_SYSRST_VOUT_TOP_SRC>;
1364 power-domains = <&pwrc JH7110_PD_VOUT>;