1*ec85362fSEmil Renner Berthing// SPDX-License-Identifier: GPL-2.0 OR MIT 2*ec85362fSEmil Renner Berthing/* 3*ec85362fSEmil Renner Berthing * Copyright (C) 2021 StarFive Technology Co., Ltd. 4*ec85362fSEmil Renner Berthing * Copyright (C) 2021 Emil Renner Berthing <kernel@esmil.dk> 5*ec85362fSEmil Renner Berthing */ 6*ec85362fSEmil Renner Berthing 7*ec85362fSEmil Renner Berthing/dts-v1/; 8*ec85362fSEmil Renner Berthing#include <dt-bindings/clock/starfive-jh7100.h> 9*ec85362fSEmil Renner Berthing#include <dt-bindings/reset/starfive-jh7100.h> 10*ec85362fSEmil Renner Berthing 11*ec85362fSEmil Renner Berthing/ { 12*ec85362fSEmil Renner Berthing compatible = "starfive,jh7100"; 13*ec85362fSEmil Renner Berthing #address-cells = <2>; 14*ec85362fSEmil Renner Berthing #size-cells = <2>; 15*ec85362fSEmil Renner Berthing 16*ec85362fSEmil Renner Berthing cpus { 17*ec85362fSEmil Renner Berthing #address-cells = <1>; 18*ec85362fSEmil Renner Berthing #size-cells = <0>; 19*ec85362fSEmil Renner Berthing 20*ec85362fSEmil Renner Berthing cpu@0 { 21*ec85362fSEmil Renner Berthing compatible = "sifive,u74-mc", "riscv"; 22*ec85362fSEmil Renner Berthing reg = <0>; 23*ec85362fSEmil Renner Berthing d-cache-block-size = <64>; 24*ec85362fSEmil Renner Berthing d-cache-sets = <64>; 25*ec85362fSEmil Renner Berthing d-cache-size = <32768>; 26*ec85362fSEmil Renner Berthing d-tlb-sets = <1>; 27*ec85362fSEmil Renner Berthing d-tlb-size = <32>; 28*ec85362fSEmil Renner Berthing device_type = "cpu"; 29*ec85362fSEmil Renner Berthing i-cache-block-size = <64>; 30*ec85362fSEmil Renner Berthing i-cache-sets = <64>; 31*ec85362fSEmil Renner Berthing i-cache-size = <32768>; 32*ec85362fSEmil Renner Berthing i-tlb-sets = <1>; 33*ec85362fSEmil Renner Berthing i-tlb-size = <32>; 34*ec85362fSEmil Renner Berthing mmu-type = "riscv,sv39"; 35*ec85362fSEmil Renner Berthing riscv,isa = "rv64imafdc"; 36*ec85362fSEmil Renner Berthing tlb-split; 37*ec85362fSEmil Renner Berthing 38*ec85362fSEmil Renner Berthing cpu0_intc: interrupt-controller { 39*ec85362fSEmil Renner Berthing compatible = "riscv,cpu-intc"; 40*ec85362fSEmil Renner Berthing interrupt-controller; 41*ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 42*ec85362fSEmil Renner Berthing }; 43*ec85362fSEmil Renner Berthing }; 44*ec85362fSEmil Renner Berthing 45*ec85362fSEmil Renner Berthing cpu@1 { 46*ec85362fSEmil Renner Berthing compatible = "sifive,u74-mc", "riscv"; 47*ec85362fSEmil Renner Berthing reg = <1>; 48*ec85362fSEmil Renner Berthing d-cache-block-size = <64>; 49*ec85362fSEmil Renner Berthing d-cache-sets = <64>; 50*ec85362fSEmil Renner Berthing d-cache-size = <32768>; 51*ec85362fSEmil Renner Berthing d-tlb-sets = <1>; 52*ec85362fSEmil Renner Berthing d-tlb-size = <32>; 53*ec85362fSEmil Renner Berthing device_type = "cpu"; 54*ec85362fSEmil Renner Berthing i-cache-block-size = <64>; 55*ec85362fSEmil Renner Berthing i-cache-sets = <64>; 56*ec85362fSEmil Renner Berthing i-cache-size = <32768>; 57*ec85362fSEmil Renner Berthing i-tlb-sets = <1>; 58*ec85362fSEmil Renner Berthing i-tlb-size = <32>; 59*ec85362fSEmil Renner Berthing mmu-type = "riscv,sv39"; 60*ec85362fSEmil Renner Berthing riscv,isa = "rv64imafdc"; 61*ec85362fSEmil Renner Berthing tlb-split; 62*ec85362fSEmil Renner Berthing 63*ec85362fSEmil Renner Berthing cpu1_intc: interrupt-controller { 64*ec85362fSEmil Renner Berthing compatible = "riscv,cpu-intc"; 65*ec85362fSEmil Renner Berthing interrupt-controller; 66*ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 67*ec85362fSEmil Renner Berthing }; 68*ec85362fSEmil Renner Berthing }; 69*ec85362fSEmil Renner Berthing }; 70*ec85362fSEmil Renner Berthing 71*ec85362fSEmil Renner Berthing osc_sys: osc_sys { 72*ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 73*ec85362fSEmil Renner Berthing #clock-cells = <0>; 74*ec85362fSEmil Renner Berthing /* This value must be overridden by the board */ 75*ec85362fSEmil Renner Berthing clock-frequency = <0>; 76*ec85362fSEmil Renner Berthing }; 77*ec85362fSEmil Renner Berthing 78*ec85362fSEmil Renner Berthing osc_aud: osc_aud { 79*ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 80*ec85362fSEmil Renner Berthing #clock-cells = <0>; 81*ec85362fSEmil Renner Berthing /* This value must be overridden by the board */ 82*ec85362fSEmil Renner Berthing clock-frequency = <0>; 83*ec85362fSEmil Renner Berthing }; 84*ec85362fSEmil Renner Berthing 85*ec85362fSEmil Renner Berthing gmac_rmii_ref: gmac_rmii_ref { 86*ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 87*ec85362fSEmil Renner Berthing #clock-cells = <0>; 88*ec85362fSEmil Renner Berthing /* Should be overridden by the board when needed */ 89*ec85362fSEmil Renner Berthing clock-frequency = <0>; 90*ec85362fSEmil Renner Berthing }; 91*ec85362fSEmil Renner Berthing 92*ec85362fSEmil Renner Berthing gmac_gr_mii_rxclk: gmac_gr_mii_rxclk { 93*ec85362fSEmil Renner Berthing compatible = "fixed-clock"; 94*ec85362fSEmil Renner Berthing #clock-cells = <0>; 95*ec85362fSEmil Renner Berthing /* Should be overridden by the board when needed */ 96*ec85362fSEmil Renner Berthing clock-frequency = <0>; 97*ec85362fSEmil Renner Berthing }; 98*ec85362fSEmil Renner Berthing 99*ec85362fSEmil Renner Berthing soc { 100*ec85362fSEmil Renner Berthing compatible = "simple-bus"; 101*ec85362fSEmil Renner Berthing interrupt-parent = <&plic>; 102*ec85362fSEmil Renner Berthing #address-cells = <2>; 103*ec85362fSEmil Renner Berthing #size-cells = <2>; 104*ec85362fSEmil Renner Berthing ranges; 105*ec85362fSEmil Renner Berthing 106*ec85362fSEmil Renner Berthing clint: clint@2000000 { 107*ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clint", "sifive,clint0"; 108*ec85362fSEmil Renner Berthing reg = <0x0 0x2000000 0x0 0x10000>; 109*ec85362fSEmil Renner Berthing interrupts-extended = <&cpu0_intc 3 &cpu0_intc 7 110*ec85362fSEmil Renner Berthing &cpu1_intc 3 &cpu1_intc 7>; 111*ec85362fSEmil Renner Berthing }; 112*ec85362fSEmil Renner Berthing 113*ec85362fSEmil Renner Berthing plic: interrupt-controller@c000000 { 114*ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-plic", "sifive,plic-1.0.0"; 115*ec85362fSEmil Renner Berthing reg = <0x0 0xc000000 0x0 0x4000000>; 116*ec85362fSEmil Renner Berthing interrupts-extended = <&cpu0_intc 11 &cpu0_intc 9 117*ec85362fSEmil Renner Berthing &cpu1_intc 11 &cpu1_intc 9>; 118*ec85362fSEmil Renner Berthing interrupt-controller; 119*ec85362fSEmil Renner Berthing #address-cells = <0>; 120*ec85362fSEmil Renner Berthing #interrupt-cells = <1>; 121*ec85362fSEmil Renner Berthing riscv,ndev = <127>; 122*ec85362fSEmil Renner Berthing }; 123*ec85362fSEmil Renner Berthing 124*ec85362fSEmil Renner Berthing clkgen: clock-controller@11800000 { 125*ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-clkgen"; 126*ec85362fSEmil Renner Berthing reg = <0x0 0x11800000 0x0 0x10000>; 127*ec85362fSEmil Renner Berthing clocks = <&osc_sys>, <&osc_aud>, <&gmac_rmii_ref>, <&gmac_gr_mii_rxclk>; 128*ec85362fSEmil Renner Berthing clock-names = "osc_sys", "osc_aud", "gmac_rmii_ref", "gmac_gr_mii_rxclk"; 129*ec85362fSEmil Renner Berthing #clock-cells = <1>; 130*ec85362fSEmil Renner Berthing }; 131*ec85362fSEmil Renner Berthing 132*ec85362fSEmil Renner Berthing rstgen: reset-controller@11840000 { 133*ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-reset"; 134*ec85362fSEmil Renner Berthing reg = <0x0 0x11840000 0x0 0x10000>; 135*ec85362fSEmil Renner Berthing #reset-cells = <1>; 136*ec85362fSEmil Renner Berthing }; 137*ec85362fSEmil Renner Berthing 138*ec85362fSEmil Renner Berthing i2c0: i2c@118b0000 { 139*ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 140*ec85362fSEmil Renner Berthing reg = <0x0 0x118b0000 0x0 0x10000>; 141*ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C0_CORE>, 142*ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C0_APB>; 143*ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 144*ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C0_APB>; 145*ec85362fSEmil Renner Berthing interrupts = <96>; 146*ec85362fSEmil Renner Berthing #address-cells = <1>; 147*ec85362fSEmil Renner Berthing #size-cells = <0>; 148*ec85362fSEmil Renner Berthing status = "disabled"; 149*ec85362fSEmil Renner Berthing }; 150*ec85362fSEmil Renner Berthing 151*ec85362fSEmil Renner Berthing i2c1: i2c@118c0000 { 152*ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 153*ec85362fSEmil Renner Berthing reg = <0x0 0x118c0000 0x0 0x10000>; 154*ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C1_CORE>, 155*ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C1_APB>; 156*ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 157*ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C1_APB>; 158*ec85362fSEmil Renner Berthing interrupts = <97>; 159*ec85362fSEmil Renner Berthing #address-cells = <1>; 160*ec85362fSEmil Renner Berthing #size-cells = <0>; 161*ec85362fSEmil Renner Berthing status = "disabled"; 162*ec85362fSEmil Renner Berthing }; 163*ec85362fSEmil Renner Berthing 164*ec85362fSEmil Renner Berthing gpio: pinctrl@11910000 { 165*ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-pinctrl"; 166*ec85362fSEmil Renner Berthing reg = <0x0 0x11910000 0x0 0x10000>, 167*ec85362fSEmil Renner Berthing <0x0 0x11858000 0x0 0x1000>; 168*ec85362fSEmil Renner Berthing reg-names = "gpio", "padctl"; 169*ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_GPIO_APB>; 170*ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_GPIO_APB>; 171*ec85362fSEmil Renner Berthing interrupts = <32>; 172*ec85362fSEmil Renner Berthing gpio-controller; 173*ec85362fSEmil Renner Berthing #gpio-cells = <2>; 174*ec85362fSEmil Renner Berthing interrupt-controller; 175*ec85362fSEmil Renner Berthing #interrupt-cells = <2>; 176*ec85362fSEmil Renner Berthing }; 177*ec85362fSEmil Renner Berthing 178*ec85362fSEmil Renner Berthing uart2: serial@12430000 { 179*ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 180*ec85362fSEmil Renner Berthing reg = <0x0 0x12430000 0x0 0x10000>; 181*ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART2_CORE>, 182*ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART2_APB>; 183*ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 184*ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART2_APB>; 185*ec85362fSEmil Renner Berthing interrupts = <72>; 186*ec85362fSEmil Renner Berthing reg-io-width = <4>; 187*ec85362fSEmil Renner Berthing reg-shift = <2>; 188*ec85362fSEmil Renner Berthing status = "disabled"; 189*ec85362fSEmil Renner Berthing }; 190*ec85362fSEmil Renner Berthing 191*ec85362fSEmil Renner Berthing uart3: serial@12440000 { 192*ec85362fSEmil Renner Berthing compatible = "starfive,jh7100-uart", "snps,dw-apb-uart"; 193*ec85362fSEmil Renner Berthing reg = <0x0 0x12440000 0x0 0x10000>; 194*ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_UART3_CORE>, 195*ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_UART3_APB>; 196*ec85362fSEmil Renner Berthing clock-names = "baudclk", "apb_pclk"; 197*ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_UART3_APB>; 198*ec85362fSEmil Renner Berthing interrupts = <73>; 199*ec85362fSEmil Renner Berthing reg-io-width = <4>; 200*ec85362fSEmil Renner Berthing reg-shift = <2>; 201*ec85362fSEmil Renner Berthing status = "disabled"; 202*ec85362fSEmil Renner Berthing }; 203*ec85362fSEmil Renner Berthing 204*ec85362fSEmil Renner Berthing i2c2: i2c@12450000 { 205*ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 206*ec85362fSEmil Renner Berthing reg = <0x0 0x12450000 0x0 0x10000>; 207*ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C2_CORE>, 208*ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C2_APB>; 209*ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 210*ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C2_APB>; 211*ec85362fSEmil Renner Berthing interrupts = <74>; 212*ec85362fSEmil Renner Berthing #address-cells = <1>; 213*ec85362fSEmil Renner Berthing #size-cells = <0>; 214*ec85362fSEmil Renner Berthing status = "disabled"; 215*ec85362fSEmil Renner Berthing }; 216*ec85362fSEmil Renner Berthing 217*ec85362fSEmil Renner Berthing i2c3: i2c@12460000 { 218*ec85362fSEmil Renner Berthing compatible = "snps,designware-i2c"; 219*ec85362fSEmil Renner Berthing reg = <0x0 0x12460000 0x0 0x10000>; 220*ec85362fSEmil Renner Berthing clocks = <&clkgen JH7100_CLK_I2C3_CORE>, 221*ec85362fSEmil Renner Berthing <&clkgen JH7100_CLK_I2C3_APB>; 222*ec85362fSEmil Renner Berthing clock-names = "ref", "pclk"; 223*ec85362fSEmil Renner Berthing resets = <&rstgen JH7100_RSTN_I2C3_APB>; 224*ec85362fSEmil Renner Berthing interrupts = <75>; 225*ec85362fSEmil Renner Berthing #address-cells = <1>; 226*ec85362fSEmil Renner Berthing #size-cells = <0>; 227*ec85362fSEmil Renner Berthing status = "disabled"; 228*ec85362fSEmil Renner Berthing }; 229*ec85362fSEmil Renner Berthing }; 230*ec85362fSEmil Renner Berthing}; 231