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