1ec85362fSEmil Renner Berthing// SPDX-License-Identifier: GPL-2.0 OR MIT 2ec85362fSEmil Renner Berthing/* 3ec85362fSEmil Renner Berthing * Copyright (C) 2021 StarFive Technology Co., Ltd. 4ec85362fSEmil Renner Berthing * Copyright (C) 2021 Emil Renner Berthing <kernel@esmil.dk> 5ec85362fSEmil Renner Berthing */ 6ec85362fSEmil Renner Berthing 7ec85362fSEmil Renner Berthing/dts-v1/; 8ec85362fSEmil Renner Berthing#include <dt-bindings/clock/starfive-jh7100.h> 9ec85362fSEmil Renner Berthing#include <dt-bindings/reset/starfive-jh7100.h> 10ec85362fSEmil Renner Berthing 11ec85362fSEmil Renner Berthing/ { 12ec85362fSEmil Renner Berthing compatible = "starfive,jh7100"; 13ec85362fSEmil Renner Berthing #address-cells = <2>; 14ec85362fSEmil Renner Berthing #size-cells = <2>; 15ec85362fSEmil Renner Berthing 16ec85362fSEmil Renner Berthing cpus { 17ec85362fSEmil Renner Berthing #address-cells = <1>; 18ec85362fSEmil Renner Berthing #size-cells = <0>; 19ec85362fSEmil Renner Berthing 20ef09fa67SJonas Hahnfeld U74_0: cpu@0 { 21ec85362fSEmil Renner Berthing compatible = "sifive,u74-mc", "riscv"; 22ec85362fSEmil Renner Berthing reg = <0>; 23ec85362fSEmil Renner Berthing d-cache-block-size = <64>; 24ec85362fSEmil Renner Berthing d-cache-sets = <64>; 25ec85362fSEmil Renner Berthing d-cache-size = <32768>; 26ec85362fSEmil Renner Berthing d-tlb-sets = <1>; 27ec85362fSEmil Renner Berthing d-tlb-size = <32>; 28ec85362fSEmil Renner Berthing device_type = "cpu"; 29ec85362fSEmil Renner Berthing i-cache-block-size = <64>; 30ec85362fSEmil Renner Berthing i-cache-sets = <64>; 31ec85362fSEmil Renner Berthing i-cache-size = <32768>; 32ec85362fSEmil Renner Berthing i-tlb-sets = <1>; 33ec85362fSEmil Renner Berthing i-tlb-size = <32>; 34ec85362fSEmil Renner Berthing mmu-type = "riscv,sv39"; 35d4b95c44SEmil Renner Berthing next-level-cache = <&ccache>; 36ec85362fSEmil Renner Berthing riscv,isa = "rv64imafdc"; 3781b5948cSConor Dooley riscv,isa-base = "rv64i"; 3881b5948cSConor Dooley riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 3981b5948cSConor Dooley "zifencei", "zihpm"; 40ec85362fSEmil Renner Berthing tlb-split; 41ec85362fSEmil Renner Berthing 42ec85362fSEmil Renner Berthing cpu0_intc: interrupt-controller { 43ec85362fSEmil Renner Berthing compatible = "riscv,cpu-intc"; 44ec85362fSEmil Renner Berthing interrupt-controller; 45ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 46ec85362fSEmil Renner Berthing }; 47ec85362fSEmil Renner Berthing }; 48ec85362fSEmil Renner Berthing 49ef09fa67SJonas Hahnfeld U74_1: cpu@1 { 50ec85362fSEmil Renner Berthing compatible = "sifive,u74-mc", "riscv"; 51ec85362fSEmil Renner Berthing reg = <1>; 52ec85362fSEmil Renner Berthing d-cache-block-size = <64>; 53ec85362fSEmil Renner Berthing d-cache-sets = <64>; 54ec85362fSEmil Renner Berthing d-cache-size = <32768>; 55ec85362fSEmil Renner Berthing d-tlb-sets = <1>; 56ec85362fSEmil Renner Berthing d-tlb-size = <32>; 57ec85362fSEmil Renner Berthing device_type = "cpu"; 58ec85362fSEmil Renner Berthing i-cache-block-size = <64>; 59ec85362fSEmil Renner Berthing i-cache-sets = <64>; 60ec85362fSEmil Renner Berthing i-cache-size = <32768>; 61ec85362fSEmil Renner Berthing i-tlb-sets = <1>; 62ec85362fSEmil Renner Berthing i-tlb-size = <32>; 63ec85362fSEmil Renner Berthing mmu-type = "riscv,sv39"; 64d4b95c44SEmil Renner Berthing next-level-cache = <&ccache>; 65ec85362fSEmil Renner Berthing riscv,isa = "rv64imafdc"; 6681b5948cSConor Dooley riscv,isa-base = "rv64i"; 6781b5948cSConor Dooley riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 6881b5948cSConor Dooley "zifencei", "zihpm"; 69ec85362fSEmil Renner Berthing tlb-split; 70ec85362fSEmil Renner Berthing 71ec85362fSEmil Renner Berthing cpu1_intc: interrupt-controller { 72ec85362fSEmil Renner Berthing compatible = "riscv,cpu-intc"; 73ec85362fSEmil Renner Berthing interrupt-controller; 74ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 75ec85362fSEmil Renner Berthing }; 76ec85362fSEmil Renner Berthing }; 77ef09fa67SJonas Hahnfeld 78ef09fa67SJonas Hahnfeld cpu-map { 79ef09fa67SJonas Hahnfeld cluster0 { 80ef09fa67SJonas Hahnfeld core0 { 81ef09fa67SJonas Hahnfeld cpu = <&U74_0>; 82ef09fa67SJonas Hahnfeld }; 83ef09fa67SJonas Hahnfeld 84ef09fa67SJonas Hahnfeld core1 { 85ef09fa67SJonas Hahnfeld cpu = <&U74_1>; 86ef09fa67SJonas Hahnfeld }; 87ef09fa67SJonas Hahnfeld }; 88ef09fa67SJonas Hahnfeld }; 89ec85362fSEmil Renner Berthing }; 90ec85362fSEmil Renner Berthing 9165e4a0f3SHal Feng thermal-zones { 9265e4a0f3SHal Feng cpu-thermal { 9365e4a0f3SHal Feng polling-delay-passive = <250>; 9465e4a0f3SHal Feng polling-delay = <15000>; 9565e4a0f3SHal Feng 9665e4a0f3SHal Feng thermal-sensors = <&sfctemp>; 9765e4a0f3SHal Feng 9865e4a0f3SHal Feng trips { 99*f0360647SKrzysztof Kozlowski cpu-alert0 { 10065e4a0f3SHal Feng /* milliCelsius */ 10165e4a0f3SHal Feng temperature = <75000>; 10265e4a0f3SHal Feng hysteresis = <2000>; 10365e4a0f3SHal Feng type = "passive"; 10465e4a0f3SHal Feng }; 10565e4a0f3SHal Feng 106*f0360647SKrzysztof Kozlowski cpu-crit { 10765e4a0f3SHal Feng /* milliCelsius */ 10865e4a0f3SHal Feng temperature = <90000>; 10965e4a0f3SHal Feng hysteresis = <2000>; 11065e4a0f3SHal Feng type = "critical"; 11165e4a0f3SHal Feng }; 11265e4a0f3SHal Feng }; 11365e4a0f3SHal Feng }; 11465e4a0f3SHal Feng }; 11565e4a0f3SHal Feng 116*f0360647SKrzysztof Kozlowski osc_sys: osc-sys { 117ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 118ec85362fSEmil Renner Berthing #clock-cells = <0>; 119ec85362fSEmil Renner Berthing /* This value must be overridden by the board */ 120ec85362fSEmil Renner Berthing clock-frequency = <0>; 121ec85362fSEmil Renner Berthing }; 122ec85362fSEmil Renner Berthing 123*f0360647SKrzysztof Kozlowski osc_aud: osc-aud { 124ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 125ec85362fSEmil Renner Berthing #clock-cells = <0>; 126ec85362fSEmil Renner Berthing /* This value must be overridden by the board */ 127ec85362fSEmil Renner Berthing clock-frequency = <0>; 128ec85362fSEmil Renner Berthing }; 129ec85362fSEmil Renner Berthing 130*f0360647SKrzysztof Kozlowski gmac_rmii_ref: gmac-rmii-ref { 131ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 132ec85362fSEmil Renner Berthing #clock-cells = <0>; 133ec85362fSEmil Renner Berthing /* Should be overridden by the board when needed */ 134ec85362fSEmil Renner Berthing clock-frequency = <0>; 135ec85362fSEmil Renner Berthing }; 136ec85362fSEmil Renner Berthing 137*f0360647SKrzysztof Kozlowski gmac_gr_mii_rxclk: gmac-gr-mii-rxclk { 138ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 139ec85362fSEmil Renner Berthing #clock-cells = <0>; 140ec85362fSEmil Renner Berthing /* Should be overridden by the board when needed */ 141ec85362fSEmil Renner Berthing clock-frequency = <0>; 142ec85362fSEmil Renner Berthing }; 143ec85362fSEmil Renner Berthing 144ec85362fSEmil Renner Berthing soc { 145ec85362fSEmil Renner Berthing compatible = "simple-bus"; 146ec85362fSEmil Renner Berthing interrupt-parent = <&plic>; 147ec85362fSEmil Renner Berthing #address-cells = <2>; 148ec85362fSEmil Renner Berthing #size-cells = <2>; 149ba007497SEmil Renner Berthing dma-noncoherent; 150ec85362fSEmil Renner Berthing ranges; 151ec85362fSEmil Renner Berthing 152ec85362fSEmil Renner Berthing clint: clint@2000000 { 153ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clint", "sifive,clint0"; 154ec85362fSEmil Renner Berthing reg = <0x0 0x2000000 0x0 0x10000>; 155dd3c1b36SGeert Uytterhoeven interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>, 156dd3c1b36SGeert Uytterhoeven <&cpu1_intc 3>, <&cpu1_intc 7>; 157ec85362fSEmil Renner Berthing }; 158ec85362fSEmil Renner Berthing 159d4b95c44SEmil Renner Berthing ccache: cache-controller@2010000 { 160d4b95c44SEmil Renner Berthing compatible = "starfive,jh7100-ccache", "sifive,ccache0", "cache"; 161d4b95c44SEmil Renner Berthing reg = <0x0 0x2010000 0x0 0x1000>; 162d4b95c44SEmil Renner Berthing interrupts = <128>, <130>, <131>, <129>; 163d4b95c44SEmil Renner Berthing cache-block-size = <64>; 164d4b95c44SEmil Renner Berthing cache-level = <2>; 165d4b95c44SEmil Renner Berthing cache-sets = <2048>; 166d4b95c44SEmil Renner Berthing cache-size = <2097152>; 167d4b95c44SEmil Renner Berthing cache-unified; 168d4b95c44SEmil Renner Berthing }; 169d4b95c44SEmil Renner Berthing 170ec85362fSEmil Renner Berthing plic: interrupt-controller@c000000 { 171ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-plic", "sifive,plic-1.0.0"; 172ec85362fSEmil Renner Berthing reg = <0x0 0xc000000 0x0 0x4000000>; 173dd3c1b36SGeert Uytterhoeven interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>, 174dd3c1b36SGeert Uytterhoeven <&cpu1_intc 11>, <&cpu1_intc 9>; 175ec85362fSEmil Renner Berthing interrupt-controller; 176ec85362fSEmil Renner Berthing #address-cells = <0>; 177ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 178a208acf0SMark Kettenis riscv,ndev = <133>; 179ec85362fSEmil Renner Berthing }; 180ec85362fSEmil Renner Berthing 181a29bb656SEmil Renner Berthing sdio0: mmc@10000000 { 182a29bb656SEmil Renner Berthing compatible = "snps,dw-mshc"; 183a29bb656SEmil Renner Berthing reg = <0x0 0x10000000 0x0 0x10000>; 184a29bb656SEmil Renner Berthing clocks = <&clkgen JH7100_CLK_SDIO0_AHB>, 185a29bb656SEmil Renner Berthing <&clkgen JH7100_CLK_SDIO0_CCLKINT_INV>; 186a29bb656SEmil Renner Berthing clock-names = "biu", "ciu"; 187a29bb656SEmil Renner Berthing interrupts = <4>; 188a29bb656SEmil Renner Berthing data-addr = <0>; 189a29bb656SEmil Renner Berthing fifo-depth = <32>; 190a29bb656SEmil Renner Berthing fifo-watermark-aligned; 191a29bb656SEmil Renner Berthing status = "disabled"; 192a29bb656SEmil Renner Berthing }; 193a29bb656SEmil Renner Berthing 194a29bb656SEmil Renner Berthing sdio1: mmc@10010000 { 195a29bb656SEmil Renner Berthing compatible = "snps,dw-mshc"; 196a29bb656SEmil Renner Berthing reg = <0x0 0x10010000 0x0 0x10000>; 197a29bb656SEmil Renner Berthing clocks = <&clkgen JH7100_CLK_SDIO1_AHB>, 198a29bb656SEmil Renner Berthing <&clkgen JH7100_CLK_SDIO1_CCLKINT_INV>; 199a29bb656SEmil Renner Berthing clock-names = "biu", "ciu"; 200a29bb656SEmil Renner Berthing interrupts = <5>; 201a29bb656SEmil Renner Berthing data-addr = <0>; 202a29bb656SEmil Renner Berthing fifo-depth = <32>; 203a29bb656SEmil Renner Berthing fifo-watermark-aligned; 204a29bb656SEmil Renner Berthing status = "disabled"; 205a29bb656SEmil Renner Berthing }; 206a29bb656SEmil Renner Berthing 207ec85362fSEmil Renner Berthing clkgen: clock-controller@11800000 { 208ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clkgen"; 209ec85362fSEmil Renner Berthing reg = <0x0 0x11800000 0x0 0x10000>; 210ec85362fSEmil Renner Berthing clocks = <&osc_sys>, <&osc_aud>, <&gmac_rmii_ref>, <&gmac_gr_mii_rxclk>; 211ec85362fSEmil Renner Berthing clock-names = "osc_sys", "osc_aud", "gmac_rmii_ref", "gmac_gr_mii_rxclk"; 212ec85362fSEmil Renner Berthing #clock-cells = <1>; 213ec85362fSEmil Renner Berthing }; 214ec85362fSEmil Renner Berthing 215ec85362fSEmil Renner Berthing rstgen: reset-controller@11840000 { 216ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-reset"; 217ec85362fSEmil Renner Berthing reg = <0x0 0x11840000 0x0 0x10000>; 218ec85362fSEmil Renner Berthing #reset-cells = <1>; 219ec85362fSEmil Renner Berthing }; 220ec85362fSEmil Renner Berthing 221ec85362fSEmil Renner Berthing i2c0: i2c@118b0000 { 222ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 223ec85362fSEmil Renner Berthing reg = <0x0 0x118b0000 0x0 0x10000>; 224ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C0_CORE>, 225ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C0_APB>; 226ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 227ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C0_APB>; 228ec85362fSEmil Renner Berthing interrupts = <96>; 229ec85362fSEmil Renner Berthing #address-cells = <1>; 230ec85362fSEmil Renner Berthing #size-cells = <0>; 231ec85362fSEmil Renner Berthing status = "disabled"; 232ec85362fSEmil Renner Berthing }; 233ec85362fSEmil Renner Berthing 234ec85362fSEmil Renner Berthing i2c1: i2c@118c0000 { 235ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 236ec85362fSEmil Renner Berthing reg = <0x0 0x118c0000 0x0 0x10000>; 237ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C1_CORE>, 238ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C1_APB>; 239ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 240ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C1_APB>; 241ec85362fSEmil Renner Berthing interrupts = <97>; 242ec85362fSEmil Renner Berthing #address-cells = <1>; 243ec85362fSEmil Renner Berthing #size-cells = <0>; 244ec85362fSEmil Renner Berthing status = "disabled"; 245ec85362fSEmil Renner Berthing }; 246ec85362fSEmil Renner Berthing 247ec85362fSEmil Renner Berthing gpio: pinctrl@11910000 { 248ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-pinctrl"; 249ec85362fSEmil Renner Berthing reg = <0x0 0x11910000 0x0 0x10000>, 250ec85362fSEmil Renner Berthing <0x0 0x11858000 0x0 0x1000>; 251ec85362fSEmil Renner Berthing reg-names = "gpio", "padctl"; 252ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_GPIO_APB>; 253ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_GPIO_APB>; 254ec85362fSEmil Renner Berthing interrupts = <32>; 255ec85362fSEmil Renner Berthing gpio-controller; 256ec85362fSEmil Renner Berthing #gpio-cells = <2>; 257ec85362fSEmil Renner Berthing interrupt-controller; 258ec85362fSEmil Renner Berthing #interrupt-cells = <2>; 259ec85362fSEmil Renner Berthing }; 260ec85362fSEmil Renner Berthing 261ec85362fSEmil Renner Berthing uart2: serial@12430000 { 262ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 263ec85362fSEmil Renner Berthing reg = <0x0 0x12430000 0x0 0x10000>; 264ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART2_CORE>, 265ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART2_APB>; 266ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 267ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART2_APB>; 268ec85362fSEmil Renner Berthing interrupts = <72>; 269ec85362fSEmil Renner Berthing reg-io-width = <4>; 270ec85362fSEmil Renner Berthing reg-shift = <2>; 271ec85362fSEmil Renner Berthing status = "disabled"; 272ec85362fSEmil Renner Berthing }; 273ec85362fSEmil Renner Berthing 274ec85362fSEmil Renner Berthing uart3: serial@12440000 { 275ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 276ec85362fSEmil Renner Berthing reg = <0x0 0x12440000 0x0 0x10000>; 277ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART3_CORE>, 278ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART3_APB>; 279ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 280ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART3_APB>; 281ec85362fSEmil Renner Berthing interrupts = <73>; 282ec85362fSEmil Renner Berthing reg-io-width = <4>; 283ec85362fSEmil Renner Berthing reg-shift = <2>; 284ec85362fSEmil Renner Berthing status = "disabled"; 285ec85362fSEmil Renner Berthing }; 286ec85362fSEmil Renner Berthing 287ec85362fSEmil Renner Berthing i2c2: i2c@12450000 { 288ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 289ec85362fSEmil Renner Berthing reg = <0x0 0x12450000 0x0 0x10000>; 290ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C2_CORE>, 291ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C2_APB>; 292ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 293ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C2_APB>; 294ec85362fSEmil Renner Berthing interrupts = <74>; 295ec85362fSEmil Renner Berthing #address-cells = <1>; 296ec85362fSEmil Renner Berthing #size-cells = <0>; 297ec85362fSEmil Renner Berthing status = "disabled"; 298ec85362fSEmil Renner Berthing }; 299ec85362fSEmil Renner Berthing 300ec85362fSEmil Renner Berthing i2c3: i2c@12460000 { 301ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 302ec85362fSEmil Renner Berthing reg = <0x0 0x12460000 0x0 0x10000>; 303ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C3_CORE>, 304ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C3_APB>; 305ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 306ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C3_APB>; 307ec85362fSEmil Renner Berthing interrupts = <75>; 308ec85362fSEmil Renner Berthing #address-cells = <1>; 309ec85362fSEmil Renner Berthing #size-cells = <0>; 310ec85362fSEmil Renner Berthing status = "disabled"; 311ec85362fSEmil Renner Berthing }; 312435ac3fbSXingyu Wu 313435ac3fbSXingyu Wu watchdog@12480000 { 314435ac3fbSXingyu Wu compatible = "starfive,jh7100-wdt"; 315435ac3fbSXingyu Wu reg = <0x0 0x12480000 0x0 0x10000>; 316435ac3fbSXingyu Wu clocks = <&clkgen JH7100_CLK_WDTIMER_APB>, 317435ac3fbSXingyu Wu <&clkgen JH7100_CLK_WDT_CORE>; 318435ac3fbSXingyu Wu clock-names = "apb", "core"; 319435ac3fbSXingyu Wu resets = <&rstgen JH7100_RSTN_WDTIMER_APB>, 320435ac3fbSXingyu Wu <&rstgen JH7100_RSTN_WDT>; 321435ac3fbSXingyu Wu }; 32265e4a0f3SHal Feng 32365e4a0f3SHal Feng sfctemp: temperature-sensor@124a0000 { 32465e4a0f3SHal Feng compatible = "starfive,jh7100-temp"; 32565e4a0f3SHal Feng reg = <0x0 0x124a0000 0x0 0x10000>; 32665e4a0f3SHal Feng clocks = <&clkgen JH7100_CLK_TEMP_SENSE>, 32765e4a0f3SHal Feng <&clkgen JH7100_CLK_TEMP_APB>; 32865e4a0f3SHal Feng clock-names = "sense", "bus"; 32965e4a0f3SHal Feng resets = <&rstgen JH7100_RSTN_TEMP_SENSE>, 33065e4a0f3SHal Feng <&rstgen JH7100_RSTN_TEMP_APB>; 33165e4a0f3SHal Feng reset-names = "sense", "bus"; 33265e4a0f3SHal Feng #thermal-sensor-cells = <0>; 33365e4a0f3SHal Feng }; 334ec85362fSEmil Renner Berthing }; 335ec85362fSEmil Renner Berthing}; 336