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"; 36ec85362fSEmil Renner Berthing tlb-split; 37ec85362fSEmil Renner Berthing 38ec85362fSEmil Renner Berthing cpu0_intc: interrupt-controller { 39ec85362fSEmil Renner Berthing compatible = "riscv,cpu-intc"; 40ec85362fSEmil Renner Berthing interrupt-controller; 41ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 42ec85362fSEmil Renner Berthing }; 43ec85362fSEmil Renner Berthing }; 44ec85362fSEmil Renner Berthing 45ef09fa67SJonas Hahnfeld U74_1: cpu@1 { 46ec85362fSEmil Renner Berthing compatible = "sifive,u74-mc", "riscv"; 47ec85362fSEmil Renner Berthing reg = <1>; 48ec85362fSEmil Renner Berthing d-cache-block-size = <64>; 49ec85362fSEmil Renner Berthing d-cache-sets = <64>; 50ec85362fSEmil Renner Berthing d-cache-size = <32768>; 51ec85362fSEmil Renner Berthing d-tlb-sets = <1>; 52ec85362fSEmil Renner Berthing d-tlb-size = <32>; 53ec85362fSEmil Renner Berthing device_type = "cpu"; 54ec85362fSEmil Renner Berthing i-cache-block-size = <64>; 55ec85362fSEmil Renner Berthing i-cache-sets = <64>; 56ec85362fSEmil Renner Berthing i-cache-size = <32768>; 57ec85362fSEmil Renner Berthing i-tlb-sets = <1>; 58ec85362fSEmil Renner Berthing i-tlb-size = <32>; 59ec85362fSEmil Renner Berthing mmu-type = "riscv,sv39"; 60ec85362fSEmil Renner Berthing riscv,isa = "rv64imafdc"; 61ec85362fSEmil Renner Berthing tlb-split; 62ec85362fSEmil Renner Berthing 63ec85362fSEmil Renner Berthing cpu1_intc: interrupt-controller { 64ec85362fSEmil Renner Berthing compatible = "riscv,cpu-intc"; 65ec85362fSEmil Renner Berthing interrupt-controller; 66ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 67ec85362fSEmil Renner Berthing }; 68ec85362fSEmil Renner Berthing }; 69ef09fa67SJonas Hahnfeld 70ef09fa67SJonas Hahnfeld cpu-map { 71ef09fa67SJonas Hahnfeld cluster0 { 72ef09fa67SJonas Hahnfeld core0 { 73ef09fa67SJonas Hahnfeld cpu = <&U74_0>; 74ef09fa67SJonas Hahnfeld }; 75ef09fa67SJonas Hahnfeld 76ef09fa67SJonas Hahnfeld core1 { 77ef09fa67SJonas Hahnfeld cpu = <&U74_1>; 78ef09fa67SJonas Hahnfeld }; 79ef09fa67SJonas Hahnfeld }; 80ef09fa67SJonas Hahnfeld }; 81ec85362fSEmil Renner Berthing }; 82ec85362fSEmil Renner Berthing 83*65e4a0f3SHal Feng thermal-zones { 84*65e4a0f3SHal Feng cpu-thermal { 85*65e4a0f3SHal Feng polling-delay-passive = <250>; 86*65e4a0f3SHal Feng polling-delay = <15000>; 87*65e4a0f3SHal Feng 88*65e4a0f3SHal Feng thermal-sensors = <&sfctemp>; 89*65e4a0f3SHal Feng 90*65e4a0f3SHal Feng trips { 91*65e4a0f3SHal Feng cpu_alert0 { 92*65e4a0f3SHal Feng /* milliCelsius */ 93*65e4a0f3SHal Feng temperature = <75000>; 94*65e4a0f3SHal Feng hysteresis = <2000>; 95*65e4a0f3SHal Feng type = "passive"; 96*65e4a0f3SHal Feng }; 97*65e4a0f3SHal Feng 98*65e4a0f3SHal Feng cpu_crit { 99*65e4a0f3SHal Feng /* milliCelsius */ 100*65e4a0f3SHal Feng temperature = <90000>; 101*65e4a0f3SHal Feng hysteresis = <2000>; 102*65e4a0f3SHal Feng type = "critical"; 103*65e4a0f3SHal Feng }; 104*65e4a0f3SHal Feng }; 105*65e4a0f3SHal Feng }; 106*65e4a0f3SHal Feng }; 107*65e4a0f3SHal Feng 108ec85362fSEmil Renner Berthing osc_sys: osc_sys { 109ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 110ec85362fSEmil Renner Berthing #clock-cells = <0>; 111ec85362fSEmil Renner Berthing /* This value must be overridden by the board */ 112ec85362fSEmil Renner Berthing clock-frequency = <0>; 113ec85362fSEmil Renner Berthing }; 114ec85362fSEmil Renner Berthing 115ec85362fSEmil Renner Berthing osc_aud: osc_aud { 116ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 117ec85362fSEmil Renner Berthing #clock-cells = <0>; 118ec85362fSEmil Renner Berthing /* This value must be overridden by the board */ 119ec85362fSEmil Renner Berthing clock-frequency = <0>; 120ec85362fSEmil Renner Berthing }; 121ec85362fSEmil Renner Berthing 122ec85362fSEmil Renner Berthing gmac_rmii_ref: gmac_rmii_ref { 123ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 124ec85362fSEmil Renner Berthing #clock-cells = <0>; 125ec85362fSEmil Renner Berthing /* Should be overridden by the board when needed */ 126ec85362fSEmil Renner Berthing clock-frequency = <0>; 127ec85362fSEmil Renner Berthing }; 128ec85362fSEmil Renner Berthing 129ec85362fSEmil Renner Berthing gmac_gr_mii_rxclk: gmac_gr_mii_rxclk { 130ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 131ec85362fSEmil Renner Berthing #clock-cells = <0>; 132ec85362fSEmil Renner Berthing /* Should be overridden by the board when needed */ 133ec85362fSEmil Renner Berthing clock-frequency = <0>; 134ec85362fSEmil Renner Berthing }; 135ec85362fSEmil Renner Berthing 136ec85362fSEmil Renner Berthing soc { 137ec85362fSEmil Renner Berthing compatible = "simple-bus"; 138ec85362fSEmil Renner Berthing interrupt-parent = <&plic>; 139ec85362fSEmil Renner Berthing #address-cells = <2>; 140ec85362fSEmil Renner Berthing #size-cells = <2>; 141ec85362fSEmil Renner Berthing ranges; 142ec85362fSEmil Renner Berthing 143ec85362fSEmil Renner Berthing clint: clint@2000000 { 144ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clint", "sifive,clint0"; 145ec85362fSEmil Renner Berthing reg = <0x0 0x2000000 0x0 0x10000>; 146ec85362fSEmil Renner Berthing interrupts-extended = <&cpu0_intc 3 &cpu0_intc 7 147ec85362fSEmil Renner Berthing &cpu1_intc 3 &cpu1_intc 7>; 148ec85362fSEmil Renner Berthing }; 149ec85362fSEmil Renner Berthing 150ec85362fSEmil Renner Berthing plic: interrupt-controller@c000000 { 151ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-plic", "sifive,plic-1.0.0"; 152ec85362fSEmil Renner Berthing reg = <0x0 0xc000000 0x0 0x4000000>; 153ec85362fSEmil Renner Berthing interrupts-extended = <&cpu0_intc 11 &cpu0_intc 9 154ec85362fSEmil Renner Berthing &cpu1_intc 11 &cpu1_intc 9>; 155ec85362fSEmil Renner Berthing interrupt-controller; 156ec85362fSEmil Renner Berthing #address-cells = <0>; 157ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 158a208acf0SMark Kettenis riscv,ndev = <133>; 159ec85362fSEmil Renner Berthing }; 160ec85362fSEmil Renner Berthing 161ec85362fSEmil Renner Berthing clkgen: clock-controller@11800000 { 162ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clkgen"; 163ec85362fSEmil Renner Berthing reg = <0x0 0x11800000 0x0 0x10000>; 164ec85362fSEmil Renner Berthing clocks = <&osc_sys>, <&osc_aud>, <&gmac_rmii_ref>, <&gmac_gr_mii_rxclk>; 165ec85362fSEmil Renner Berthing clock-names = "osc_sys", "osc_aud", "gmac_rmii_ref", "gmac_gr_mii_rxclk"; 166ec85362fSEmil Renner Berthing #clock-cells = <1>; 167ec85362fSEmil Renner Berthing }; 168ec85362fSEmil Renner Berthing 169ec85362fSEmil Renner Berthing rstgen: reset-controller@11840000 { 170ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-reset"; 171ec85362fSEmil Renner Berthing reg = <0x0 0x11840000 0x0 0x10000>; 172ec85362fSEmil Renner Berthing #reset-cells = <1>; 173ec85362fSEmil Renner Berthing }; 174ec85362fSEmil Renner Berthing 175ec85362fSEmil Renner Berthing i2c0: i2c@118b0000 { 176ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 177ec85362fSEmil Renner Berthing reg = <0x0 0x118b0000 0x0 0x10000>; 178ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C0_CORE>, 179ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C0_APB>; 180ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 181ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C0_APB>; 182ec85362fSEmil Renner Berthing interrupts = <96>; 183ec85362fSEmil Renner Berthing #address-cells = <1>; 184ec85362fSEmil Renner Berthing #size-cells = <0>; 185ec85362fSEmil Renner Berthing status = "disabled"; 186ec85362fSEmil Renner Berthing }; 187ec85362fSEmil Renner Berthing 188ec85362fSEmil Renner Berthing i2c1: i2c@118c0000 { 189ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 190ec85362fSEmil Renner Berthing reg = <0x0 0x118c0000 0x0 0x10000>; 191ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C1_CORE>, 192ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C1_APB>; 193ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 194ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C1_APB>; 195ec85362fSEmil Renner Berthing interrupts = <97>; 196ec85362fSEmil Renner Berthing #address-cells = <1>; 197ec85362fSEmil Renner Berthing #size-cells = <0>; 198ec85362fSEmil Renner Berthing status = "disabled"; 199ec85362fSEmil Renner Berthing }; 200ec85362fSEmil Renner Berthing 201ec85362fSEmil Renner Berthing gpio: pinctrl@11910000 { 202ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-pinctrl"; 203ec85362fSEmil Renner Berthing reg = <0x0 0x11910000 0x0 0x10000>, 204ec85362fSEmil Renner Berthing <0x0 0x11858000 0x0 0x1000>; 205ec85362fSEmil Renner Berthing reg-names = "gpio", "padctl"; 206ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_GPIO_APB>; 207ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_GPIO_APB>; 208ec85362fSEmil Renner Berthing interrupts = <32>; 209ec85362fSEmil Renner Berthing gpio-controller; 210ec85362fSEmil Renner Berthing #gpio-cells = <2>; 211ec85362fSEmil Renner Berthing interrupt-controller; 212ec85362fSEmil Renner Berthing #interrupt-cells = <2>; 213ec85362fSEmil Renner Berthing }; 214ec85362fSEmil Renner Berthing 215ec85362fSEmil Renner Berthing uart2: serial@12430000 { 216ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 217ec85362fSEmil Renner Berthing reg = <0x0 0x12430000 0x0 0x10000>; 218ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART2_CORE>, 219ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART2_APB>; 220ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 221ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART2_APB>; 222ec85362fSEmil Renner Berthing interrupts = <72>; 223ec85362fSEmil Renner Berthing reg-io-width = <4>; 224ec85362fSEmil Renner Berthing reg-shift = <2>; 225ec85362fSEmil Renner Berthing status = "disabled"; 226ec85362fSEmil Renner Berthing }; 227ec85362fSEmil Renner Berthing 228ec85362fSEmil Renner Berthing uart3: serial@12440000 { 229ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 230ec85362fSEmil Renner Berthing reg = <0x0 0x12440000 0x0 0x10000>; 231ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART3_CORE>, 232ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART3_APB>; 233ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 234ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART3_APB>; 235ec85362fSEmil Renner Berthing interrupts = <73>; 236ec85362fSEmil Renner Berthing reg-io-width = <4>; 237ec85362fSEmil Renner Berthing reg-shift = <2>; 238ec85362fSEmil Renner Berthing status = "disabled"; 239ec85362fSEmil Renner Berthing }; 240ec85362fSEmil Renner Berthing 241ec85362fSEmil Renner Berthing i2c2: i2c@12450000 { 242ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 243ec85362fSEmil Renner Berthing reg = <0x0 0x12450000 0x0 0x10000>; 244ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C2_CORE>, 245ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C2_APB>; 246ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 247ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C2_APB>; 248ec85362fSEmil Renner Berthing interrupts = <74>; 249ec85362fSEmil Renner Berthing #address-cells = <1>; 250ec85362fSEmil Renner Berthing #size-cells = <0>; 251ec85362fSEmil Renner Berthing status = "disabled"; 252ec85362fSEmil Renner Berthing }; 253ec85362fSEmil Renner Berthing 254ec85362fSEmil Renner Berthing i2c3: i2c@12460000 { 255ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 256ec85362fSEmil Renner Berthing reg = <0x0 0x12460000 0x0 0x10000>; 257ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C3_CORE>, 258ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C3_APB>; 259ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 260ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C3_APB>; 261ec85362fSEmil Renner Berthing interrupts = <75>; 262ec85362fSEmil Renner Berthing #address-cells = <1>; 263ec85362fSEmil Renner Berthing #size-cells = <0>; 264ec85362fSEmil Renner Berthing status = "disabled"; 265ec85362fSEmil Renner Berthing }; 266435ac3fbSXingyu Wu 267435ac3fbSXingyu Wu watchdog@12480000 { 268435ac3fbSXingyu Wu compatible = "starfive,jh7100-wdt"; 269435ac3fbSXingyu Wu reg = <0x0 0x12480000 0x0 0x10000>; 270435ac3fbSXingyu Wu clocks = <&clkgen JH7100_CLK_WDTIMER_APB>, 271435ac3fbSXingyu Wu <&clkgen JH7100_CLK_WDT_CORE>; 272435ac3fbSXingyu Wu clock-names = "apb", "core"; 273435ac3fbSXingyu Wu resets = <&rstgen JH7100_RSTN_WDTIMER_APB>, 274435ac3fbSXingyu Wu <&rstgen JH7100_RSTN_WDT>; 275435ac3fbSXingyu Wu }; 276*65e4a0f3SHal Feng 277*65e4a0f3SHal Feng sfctemp: temperature-sensor@124a0000 { 278*65e4a0f3SHal Feng compatible = "starfive,jh7100-temp"; 279*65e4a0f3SHal Feng reg = <0x0 0x124a0000 0x0 0x10000>; 280*65e4a0f3SHal Feng clocks = <&clkgen JH7100_CLK_TEMP_SENSE>, 281*65e4a0f3SHal Feng <&clkgen JH7100_CLK_TEMP_APB>; 282*65e4a0f3SHal Feng clock-names = "sense", "bus"; 283*65e4a0f3SHal Feng resets = <&rstgen JH7100_RSTN_TEMP_SENSE>, 284*65e4a0f3SHal Feng <&rstgen JH7100_RSTN_TEMP_APB>; 285*65e4a0f3SHal Feng reset-names = "sense", "bus"; 286*65e4a0f3SHal Feng #thermal-sensor-cells = <0>; 287*65e4a0f3SHal Feng }; 288ec85362fSEmil Renner Berthing }; 289ec85362fSEmil Renner Berthing}; 290