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"; 35ec85362fSEmil Renner Berthing riscv,isa = "rv64imafdc"; 36*81b5948cSConor Dooley riscv,isa-base = "rv64i"; 37*81b5948cSConor Dooley riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 38*81b5948cSConor Dooley "zifencei", "zihpm"; 39ec85362fSEmil Renner Berthing tlb-split; 40ec85362fSEmil Renner Berthing 41ec85362fSEmil Renner Berthing cpu0_intc: interrupt-controller { 42ec85362fSEmil Renner Berthing compatible = "riscv,cpu-intc"; 43ec85362fSEmil Renner Berthing interrupt-controller; 44ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 45ec85362fSEmil Renner Berthing }; 46ec85362fSEmil Renner Berthing }; 47ec85362fSEmil Renner Berthing 48ef09fa67SJonas Hahnfeld U74_1: cpu@1 { 49ec85362fSEmil Renner Berthing compatible = "sifive,u74-mc", "riscv"; 50ec85362fSEmil Renner Berthing reg = <1>; 51ec85362fSEmil Renner Berthing d-cache-block-size = <64>; 52ec85362fSEmil Renner Berthing d-cache-sets = <64>; 53ec85362fSEmil Renner Berthing d-cache-size = <32768>; 54ec85362fSEmil Renner Berthing d-tlb-sets = <1>; 55ec85362fSEmil Renner Berthing d-tlb-size = <32>; 56ec85362fSEmil Renner Berthing device_type = "cpu"; 57ec85362fSEmil Renner Berthing i-cache-block-size = <64>; 58ec85362fSEmil Renner Berthing i-cache-sets = <64>; 59ec85362fSEmil Renner Berthing i-cache-size = <32768>; 60ec85362fSEmil Renner Berthing i-tlb-sets = <1>; 61ec85362fSEmil Renner Berthing i-tlb-size = <32>; 62ec85362fSEmil Renner Berthing mmu-type = "riscv,sv39"; 63ec85362fSEmil Renner Berthing riscv,isa = "rv64imafdc"; 64*81b5948cSConor Dooley riscv,isa-base = "rv64i"; 65*81b5948cSConor Dooley riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 66*81b5948cSConor Dooley "zifencei", "zihpm"; 67ec85362fSEmil Renner Berthing tlb-split; 68ec85362fSEmil Renner Berthing 69ec85362fSEmil Renner Berthing cpu1_intc: interrupt-controller { 70ec85362fSEmil Renner Berthing compatible = "riscv,cpu-intc"; 71ec85362fSEmil Renner Berthing interrupt-controller; 72ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 73ec85362fSEmil Renner Berthing }; 74ec85362fSEmil Renner Berthing }; 75ef09fa67SJonas Hahnfeld 76ef09fa67SJonas Hahnfeld cpu-map { 77ef09fa67SJonas Hahnfeld cluster0 { 78ef09fa67SJonas Hahnfeld core0 { 79ef09fa67SJonas Hahnfeld cpu = <&U74_0>; 80ef09fa67SJonas Hahnfeld }; 81ef09fa67SJonas Hahnfeld 82ef09fa67SJonas Hahnfeld core1 { 83ef09fa67SJonas Hahnfeld cpu = <&U74_1>; 84ef09fa67SJonas Hahnfeld }; 85ef09fa67SJonas Hahnfeld }; 86ef09fa67SJonas Hahnfeld }; 87ec85362fSEmil Renner Berthing }; 88ec85362fSEmil Renner Berthing 8965e4a0f3SHal Feng thermal-zones { 9065e4a0f3SHal Feng cpu-thermal { 9165e4a0f3SHal Feng polling-delay-passive = <250>; 9265e4a0f3SHal Feng polling-delay = <15000>; 9365e4a0f3SHal Feng 9465e4a0f3SHal Feng thermal-sensors = <&sfctemp>; 9565e4a0f3SHal Feng 9665e4a0f3SHal Feng trips { 9765e4a0f3SHal Feng cpu_alert0 { 9865e4a0f3SHal Feng /* milliCelsius */ 9965e4a0f3SHal Feng temperature = <75000>; 10065e4a0f3SHal Feng hysteresis = <2000>; 10165e4a0f3SHal Feng type = "passive"; 10265e4a0f3SHal Feng }; 10365e4a0f3SHal Feng 10465e4a0f3SHal Feng cpu_crit { 10565e4a0f3SHal Feng /* milliCelsius */ 10665e4a0f3SHal Feng temperature = <90000>; 10765e4a0f3SHal Feng hysteresis = <2000>; 10865e4a0f3SHal Feng type = "critical"; 10965e4a0f3SHal Feng }; 11065e4a0f3SHal Feng }; 11165e4a0f3SHal Feng }; 11265e4a0f3SHal Feng }; 11365e4a0f3SHal Feng 114ec85362fSEmil Renner Berthing osc_sys: osc_sys { 115ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 116ec85362fSEmil Renner Berthing #clock-cells = <0>; 117ec85362fSEmil Renner Berthing /* This value must be overridden by the board */ 118ec85362fSEmil Renner Berthing clock-frequency = <0>; 119ec85362fSEmil Renner Berthing }; 120ec85362fSEmil Renner Berthing 121ec85362fSEmil Renner Berthing osc_aud: osc_aud { 122ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 123ec85362fSEmil Renner Berthing #clock-cells = <0>; 124ec85362fSEmil Renner Berthing /* This value must be overridden by the board */ 125ec85362fSEmil Renner Berthing clock-frequency = <0>; 126ec85362fSEmil Renner Berthing }; 127ec85362fSEmil Renner Berthing 128ec85362fSEmil Renner Berthing gmac_rmii_ref: gmac_rmii_ref { 129ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 130ec85362fSEmil Renner Berthing #clock-cells = <0>; 131ec85362fSEmil Renner Berthing /* Should be overridden by the board when needed */ 132ec85362fSEmil Renner Berthing clock-frequency = <0>; 133ec85362fSEmil Renner Berthing }; 134ec85362fSEmil Renner Berthing 135ec85362fSEmil Renner Berthing gmac_gr_mii_rxclk: gmac_gr_mii_rxclk { 136ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 137ec85362fSEmil Renner Berthing #clock-cells = <0>; 138ec85362fSEmil Renner Berthing /* Should be overridden by the board when needed */ 139ec85362fSEmil Renner Berthing clock-frequency = <0>; 140ec85362fSEmil Renner Berthing }; 141ec85362fSEmil Renner Berthing 142ec85362fSEmil Renner Berthing soc { 143ec85362fSEmil Renner Berthing compatible = "simple-bus"; 144ec85362fSEmil Renner Berthing interrupt-parent = <&plic>; 145ec85362fSEmil Renner Berthing #address-cells = <2>; 146ec85362fSEmil Renner Berthing #size-cells = <2>; 147ec85362fSEmil Renner Berthing ranges; 148ec85362fSEmil Renner Berthing 149ec85362fSEmil Renner Berthing clint: clint@2000000 { 150ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clint", "sifive,clint0"; 151ec85362fSEmil Renner Berthing reg = <0x0 0x2000000 0x0 0x10000>; 152ec85362fSEmil Renner Berthing interrupts-extended = <&cpu0_intc 3 &cpu0_intc 7 153ec85362fSEmil Renner Berthing &cpu1_intc 3 &cpu1_intc 7>; 154ec85362fSEmil Renner Berthing }; 155ec85362fSEmil Renner Berthing 156ec85362fSEmil Renner Berthing plic: interrupt-controller@c000000 { 157ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-plic", "sifive,plic-1.0.0"; 158ec85362fSEmil Renner Berthing reg = <0x0 0xc000000 0x0 0x4000000>; 159ec85362fSEmil Renner Berthing interrupts-extended = <&cpu0_intc 11 &cpu0_intc 9 160ec85362fSEmil Renner Berthing &cpu1_intc 11 &cpu1_intc 9>; 161ec85362fSEmil Renner Berthing interrupt-controller; 162ec85362fSEmil Renner Berthing #address-cells = <0>; 163ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 164a208acf0SMark Kettenis riscv,ndev = <133>; 165ec85362fSEmil Renner Berthing }; 166ec85362fSEmil Renner Berthing 167ec85362fSEmil Renner Berthing clkgen: clock-controller@11800000 { 168ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clkgen"; 169ec85362fSEmil Renner Berthing reg = <0x0 0x11800000 0x0 0x10000>; 170ec85362fSEmil Renner Berthing clocks = <&osc_sys>, <&osc_aud>, <&gmac_rmii_ref>, <&gmac_gr_mii_rxclk>; 171ec85362fSEmil Renner Berthing clock-names = "osc_sys", "osc_aud", "gmac_rmii_ref", "gmac_gr_mii_rxclk"; 172ec85362fSEmil Renner Berthing #clock-cells = <1>; 173ec85362fSEmil Renner Berthing }; 174ec85362fSEmil Renner Berthing 175ec85362fSEmil Renner Berthing rstgen: reset-controller@11840000 { 176ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-reset"; 177ec85362fSEmil Renner Berthing reg = <0x0 0x11840000 0x0 0x10000>; 178ec85362fSEmil Renner Berthing #reset-cells = <1>; 179ec85362fSEmil Renner Berthing }; 180ec85362fSEmil Renner Berthing 181ec85362fSEmil Renner Berthing i2c0: i2c@118b0000 { 182ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 183ec85362fSEmil Renner Berthing reg = <0x0 0x118b0000 0x0 0x10000>; 184ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C0_CORE>, 185ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C0_APB>; 186ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 187ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C0_APB>; 188ec85362fSEmil Renner Berthing interrupts = <96>; 189ec85362fSEmil Renner Berthing #address-cells = <1>; 190ec85362fSEmil Renner Berthing #size-cells = <0>; 191ec85362fSEmil Renner Berthing status = "disabled"; 192ec85362fSEmil Renner Berthing }; 193ec85362fSEmil Renner Berthing 194ec85362fSEmil Renner Berthing i2c1: i2c@118c0000 { 195ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 196ec85362fSEmil Renner Berthing reg = <0x0 0x118c0000 0x0 0x10000>; 197ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C1_CORE>, 198ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C1_APB>; 199ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 200ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C1_APB>; 201ec85362fSEmil Renner Berthing interrupts = <97>; 202ec85362fSEmil Renner Berthing #address-cells = <1>; 203ec85362fSEmil Renner Berthing #size-cells = <0>; 204ec85362fSEmil Renner Berthing status = "disabled"; 205ec85362fSEmil Renner Berthing }; 206ec85362fSEmil Renner Berthing 207ec85362fSEmil Renner Berthing gpio: pinctrl@11910000 { 208ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-pinctrl"; 209ec85362fSEmil Renner Berthing reg = <0x0 0x11910000 0x0 0x10000>, 210ec85362fSEmil Renner Berthing <0x0 0x11858000 0x0 0x1000>; 211ec85362fSEmil Renner Berthing reg-names = "gpio", "padctl"; 212ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_GPIO_APB>; 213ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_GPIO_APB>; 214ec85362fSEmil Renner Berthing interrupts = <32>; 215ec85362fSEmil Renner Berthing gpio-controller; 216ec85362fSEmil Renner Berthing #gpio-cells = <2>; 217ec85362fSEmil Renner Berthing interrupt-controller; 218ec85362fSEmil Renner Berthing #interrupt-cells = <2>; 219ec85362fSEmil Renner Berthing }; 220ec85362fSEmil Renner Berthing 221ec85362fSEmil Renner Berthing uart2: serial@12430000 { 222ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 223ec85362fSEmil Renner Berthing reg = <0x0 0x12430000 0x0 0x10000>; 224ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART2_CORE>, 225ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART2_APB>; 226ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 227ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART2_APB>; 228ec85362fSEmil Renner Berthing interrupts = <72>; 229ec85362fSEmil Renner Berthing reg-io-width = <4>; 230ec85362fSEmil Renner Berthing reg-shift = <2>; 231ec85362fSEmil Renner Berthing status = "disabled"; 232ec85362fSEmil Renner Berthing }; 233ec85362fSEmil Renner Berthing 234ec85362fSEmil Renner Berthing uart3: serial@12440000 { 235ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 236ec85362fSEmil Renner Berthing reg = <0x0 0x12440000 0x0 0x10000>; 237ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART3_CORE>, 238ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART3_APB>; 239ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 240ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART3_APB>; 241ec85362fSEmil Renner Berthing interrupts = <73>; 242ec85362fSEmil Renner Berthing reg-io-width = <4>; 243ec85362fSEmil Renner Berthing reg-shift = <2>; 244ec85362fSEmil Renner Berthing status = "disabled"; 245ec85362fSEmil Renner Berthing }; 246ec85362fSEmil Renner Berthing 247ec85362fSEmil Renner Berthing i2c2: i2c@12450000 { 248ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 249ec85362fSEmil Renner Berthing reg = <0x0 0x12450000 0x0 0x10000>; 250ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C2_CORE>, 251ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C2_APB>; 252ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 253ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C2_APB>; 254ec85362fSEmil Renner Berthing interrupts = <74>; 255ec85362fSEmil Renner Berthing #address-cells = <1>; 256ec85362fSEmil Renner Berthing #size-cells = <0>; 257ec85362fSEmil Renner Berthing status = "disabled"; 258ec85362fSEmil Renner Berthing }; 259ec85362fSEmil Renner Berthing 260ec85362fSEmil Renner Berthing i2c3: i2c@12460000 { 261ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 262ec85362fSEmil Renner Berthing reg = <0x0 0x12460000 0x0 0x10000>; 263ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C3_CORE>, 264ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C3_APB>; 265ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 266ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C3_APB>; 267ec85362fSEmil Renner Berthing interrupts = <75>; 268ec85362fSEmil Renner Berthing #address-cells = <1>; 269ec85362fSEmil Renner Berthing #size-cells = <0>; 270ec85362fSEmil Renner Berthing status = "disabled"; 271ec85362fSEmil Renner Berthing }; 272435ac3fbSXingyu Wu 273435ac3fbSXingyu Wu watchdog@12480000 { 274435ac3fbSXingyu Wu compatible = "starfive,jh7100-wdt"; 275435ac3fbSXingyu Wu reg = <0x0 0x12480000 0x0 0x10000>; 276435ac3fbSXingyu Wu clocks = <&clkgen JH7100_CLK_WDTIMER_APB>, 277435ac3fbSXingyu Wu <&clkgen JH7100_CLK_WDT_CORE>; 278435ac3fbSXingyu Wu clock-names = "apb", "core"; 279435ac3fbSXingyu Wu resets = <&rstgen JH7100_RSTN_WDTIMER_APB>, 280435ac3fbSXingyu Wu <&rstgen JH7100_RSTN_WDT>; 281435ac3fbSXingyu Wu }; 28265e4a0f3SHal Feng 28365e4a0f3SHal Feng sfctemp: temperature-sensor@124a0000 { 28465e4a0f3SHal Feng compatible = "starfive,jh7100-temp"; 28565e4a0f3SHal Feng reg = <0x0 0x124a0000 0x0 0x10000>; 28665e4a0f3SHal Feng clocks = <&clkgen JH7100_CLK_TEMP_SENSE>, 28765e4a0f3SHal Feng <&clkgen JH7100_CLK_TEMP_APB>; 28865e4a0f3SHal Feng clock-names = "sense", "bus"; 28965e4a0f3SHal Feng resets = <&rstgen JH7100_RSTN_TEMP_SENSE>, 29065e4a0f3SHal Feng <&rstgen JH7100_RSTN_TEMP_APB>; 29165e4a0f3SHal Feng reset-names = "sense", "bus"; 29265e4a0f3SHal Feng #thermal-sensor-cells = <0>; 29365e4a0f3SHal Feng }; 294ec85362fSEmil Renner Berthing }; 295ec85362fSEmil Renner Berthing}; 296