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"; 35*d4b95c44SEmil 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"; 64*d4b95c44SEmil 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 { 9965e4a0f3SHal Feng cpu_alert0 { 10065e4a0f3SHal Feng /* milliCelsius */ 10165e4a0f3SHal Feng temperature = <75000>; 10265e4a0f3SHal Feng hysteresis = <2000>; 10365e4a0f3SHal Feng type = "passive"; 10465e4a0f3SHal Feng }; 10565e4a0f3SHal Feng 10665e4a0f3SHal Feng 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 116ec85362fSEmil Renner Berthing 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 123ec85362fSEmil Renner Berthing 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 130ec85362fSEmil Renner Berthing 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 137ec85362fSEmil Renner Berthing 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 159*d4b95c44SEmil Renner Berthing ccache: cache-controller@2010000 { 160*d4b95c44SEmil Renner Berthing compatible = "starfive,jh7100-ccache", "sifive,ccache0", "cache"; 161*d4b95c44SEmil Renner Berthing reg = <0x0 0x2010000 0x0 0x1000>; 162*d4b95c44SEmil Renner Berthing interrupts = <128>, <130>, <131>, <129>; 163*d4b95c44SEmil Renner Berthing cache-block-size = <64>; 164*d4b95c44SEmil Renner Berthing cache-level = <2>; 165*d4b95c44SEmil Renner Berthing cache-sets = <2048>; 166*d4b95c44SEmil Renner Berthing cache-size = <2097152>; 167*d4b95c44SEmil Renner Berthing cache-unified; 168*d4b95c44SEmil Renner Berthing }; 169*d4b95c44SEmil 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 181ec85362fSEmil Renner Berthing clkgen: clock-controller@11800000 { 182ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clkgen"; 183ec85362fSEmil Renner Berthing reg = <0x0 0x11800000 0x0 0x10000>; 184ec85362fSEmil Renner Berthing clocks = <&osc_sys>, <&osc_aud>, <&gmac_rmii_ref>, <&gmac_gr_mii_rxclk>; 185ec85362fSEmil Renner Berthing clock-names = "osc_sys", "osc_aud", "gmac_rmii_ref", "gmac_gr_mii_rxclk"; 186ec85362fSEmil Renner Berthing #clock-cells = <1>; 187ec85362fSEmil Renner Berthing }; 188ec85362fSEmil Renner Berthing 189ec85362fSEmil Renner Berthing rstgen: reset-controller@11840000 { 190ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-reset"; 191ec85362fSEmil Renner Berthing reg = <0x0 0x11840000 0x0 0x10000>; 192ec85362fSEmil Renner Berthing #reset-cells = <1>; 193ec85362fSEmil Renner Berthing }; 194ec85362fSEmil Renner Berthing 195ec85362fSEmil Renner Berthing i2c0: i2c@118b0000 { 196ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 197ec85362fSEmil Renner Berthing reg = <0x0 0x118b0000 0x0 0x10000>; 198ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C0_CORE>, 199ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C0_APB>; 200ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 201ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C0_APB>; 202ec85362fSEmil Renner Berthing interrupts = <96>; 203ec85362fSEmil Renner Berthing #address-cells = <1>; 204ec85362fSEmil Renner Berthing #size-cells = <0>; 205ec85362fSEmil Renner Berthing status = "disabled"; 206ec85362fSEmil Renner Berthing }; 207ec85362fSEmil Renner Berthing 208ec85362fSEmil Renner Berthing i2c1: i2c@118c0000 { 209ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 210ec85362fSEmil Renner Berthing reg = <0x0 0x118c0000 0x0 0x10000>; 211ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C1_CORE>, 212ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C1_APB>; 213ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 214ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C1_APB>; 215ec85362fSEmil Renner Berthing interrupts = <97>; 216ec85362fSEmil Renner Berthing #address-cells = <1>; 217ec85362fSEmil Renner Berthing #size-cells = <0>; 218ec85362fSEmil Renner Berthing status = "disabled"; 219ec85362fSEmil Renner Berthing }; 220ec85362fSEmil Renner Berthing 221ec85362fSEmil Renner Berthing gpio: pinctrl@11910000 { 222ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-pinctrl"; 223ec85362fSEmil Renner Berthing reg = <0x0 0x11910000 0x0 0x10000>, 224ec85362fSEmil Renner Berthing <0x0 0x11858000 0x0 0x1000>; 225ec85362fSEmil Renner Berthing reg-names = "gpio", "padctl"; 226ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_GPIO_APB>; 227ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_GPIO_APB>; 228ec85362fSEmil Renner Berthing interrupts = <32>; 229ec85362fSEmil Renner Berthing gpio-controller; 230ec85362fSEmil Renner Berthing #gpio-cells = <2>; 231ec85362fSEmil Renner Berthing interrupt-controller; 232ec85362fSEmil Renner Berthing #interrupt-cells = <2>; 233ec85362fSEmil Renner Berthing }; 234ec85362fSEmil Renner Berthing 235ec85362fSEmil Renner Berthing uart2: serial@12430000 { 236ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 237ec85362fSEmil Renner Berthing reg = <0x0 0x12430000 0x0 0x10000>; 238ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART2_CORE>, 239ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART2_APB>; 240ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 241ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART2_APB>; 242ec85362fSEmil Renner Berthing interrupts = <72>; 243ec85362fSEmil Renner Berthing reg-io-width = <4>; 244ec85362fSEmil Renner Berthing reg-shift = <2>; 245ec85362fSEmil Renner Berthing status = "disabled"; 246ec85362fSEmil Renner Berthing }; 247ec85362fSEmil Renner Berthing 248ec85362fSEmil Renner Berthing uart3: serial@12440000 { 249ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 250ec85362fSEmil Renner Berthing reg = <0x0 0x12440000 0x0 0x10000>; 251ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART3_CORE>, 252ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART3_APB>; 253ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 254ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART3_APB>; 255ec85362fSEmil Renner Berthing interrupts = <73>; 256ec85362fSEmil Renner Berthing reg-io-width = <4>; 257ec85362fSEmil Renner Berthing reg-shift = <2>; 258ec85362fSEmil Renner Berthing status = "disabled"; 259ec85362fSEmil Renner Berthing }; 260ec85362fSEmil Renner Berthing 261ec85362fSEmil Renner Berthing i2c2: i2c@12450000 { 262ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 263ec85362fSEmil Renner Berthing reg = <0x0 0x12450000 0x0 0x10000>; 264ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C2_CORE>, 265ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C2_APB>; 266ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 267ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C2_APB>; 268ec85362fSEmil Renner Berthing interrupts = <74>; 269ec85362fSEmil Renner Berthing #address-cells = <1>; 270ec85362fSEmil Renner Berthing #size-cells = <0>; 271ec85362fSEmil Renner Berthing status = "disabled"; 272ec85362fSEmil Renner Berthing }; 273ec85362fSEmil Renner Berthing 274ec85362fSEmil Renner Berthing i2c3: i2c@12460000 { 275ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 276ec85362fSEmil Renner Berthing reg = <0x0 0x12460000 0x0 0x10000>; 277ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C3_CORE>, 278ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C3_APB>; 279ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 280ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C3_APB>; 281ec85362fSEmil Renner Berthing interrupts = <75>; 282ec85362fSEmil Renner Berthing #address-cells = <1>; 283ec85362fSEmil Renner Berthing #size-cells = <0>; 284ec85362fSEmil Renner Berthing status = "disabled"; 285ec85362fSEmil Renner Berthing }; 286435ac3fbSXingyu Wu 287435ac3fbSXingyu Wu watchdog@12480000 { 288435ac3fbSXingyu Wu compatible = "starfive,jh7100-wdt"; 289435ac3fbSXingyu Wu reg = <0x0 0x12480000 0x0 0x10000>; 290435ac3fbSXingyu Wu clocks = <&clkgen JH7100_CLK_WDTIMER_APB>, 291435ac3fbSXingyu Wu <&clkgen JH7100_CLK_WDT_CORE>; 292435ac3fbSXingyu Wu clock-names = "apb", "core"; 293435ac3fbSXingyu Wu resets = <&rstgen JH7100_RSTN_WDTIMER_APB>, 294435ac3fbSXingyu Wu <&rstgen JH7100_RSTN_WDT>; 295435ac3fbSXingyu Wu }; 29665e4a0f3SHal Feng 29765e4a0f3SHal Feng sfctemp: temperature-sensor@124a0000 { 29865e4a0f3SHal Feng compatible = "starfive,jh7100-temp"; 29965e4a0f3SHal Feng reg = <0x0 0x124a0000 0x0 0x10000>; 30065e4a0f3SHal Feng clocks = <&clkgen JH7100_CLK_TEMP_SENSE>, 30165e4a0f3SHal Feng <&clkgen JH7100_CLK_TEMP_APB>; 30265e4a0f3SHal Feng clock-names = "sense", "bus"; 30365e4a0f3SHal Feng resets = <&rstgen JH7100_RSTN_TEMP_SENSE>, 30465e4a0f3SHal Feng <&rstgen JH7100_RSTN_TEMP_APB>; 30565e4a0f3SHal Feng reset-names = "sense", "bus"; 30665e4a0f3SHal Feng #thermal-sensor-cells = <0>; 30765e4a0f3SHal Feng }; 308ec85362fSEmil Renner Berthing }; 309ec85362fSEmil Renner Berthing}; 310