1*84943d6fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) 2*84943d6fSEmmanuel Vadot/* 3*84943d6fSEmmanuel Vadot * Copyright 2020-2022 Advanced Micro Devices, Inc. 4*84943d6fSEmmanuel Vadot */ 5*84943d6fSEmmanuel Vadot 6*84943d6fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 7*84943d6fSEmmanuel Vadot#include "dt-bindings/interrupt-controller/arm-gic.h" 8*84943d6fSEmmanuel Vadot 9*84943d6fSEmmanuel Vadot/ { 10*84943d6fSEmmanuel Vadot model = "Elba ASIC Board"; 11*84943d6fSEmmanuel Vadot compatible = "amd,pensando-elba"; 12*84943d6fSEmmanuel Vadot interrupt-parent = <&gic>; 13*84943d6fSEmmanuel Vadot #address-cells = <2>; 14*84943d6fSEmmanuel Vadot #size-cells = <2>; 15*84943d6fSEmmanuel Vadot 16*84943d6fSEmmanuel Vadot dma-coherent; 17*84943d6fSEmmanuel Vadot 18*84943d6fSEmmanuel Vadot ahb_clk: oscillator0 { 19*84943d6fSEmmanuel Vadot compatible = "fixed-clock"; 20*84943d6fSEmmanuel Vadot #clock-cells = <0>; 21*84943d6fSEmmanuel Vadot }; 22*84943d6fSEmmanuel Vadot 23*84943d6fSEmmanuel Vadot emmc_clk: oscillator2 { 24*84943d6fSEmmanuel Vadot compatible = "fixed-clock"; 25*84943d6fSEmmanuel Vadot #clock-cells = <0>; 26*84943d6fSEmmanuel Vadot }; 27*84943d6fSEmmanuel Vadot 28*84943d6fSEmmanuel Vadot flash_clk: oscillator3 { 29*84943d6fSEmmanuel Vadot compatible = "fixed-clock"; 30*84943d6fSEmmanuel Vadot #clock-cells = <0>; 31*84943d6fSEmmanuel Vadot }; 32*84943d6fSEmmanuel Vadot 33*84943d6fSEmmanuel Vadot ref_clk: oscillator4 { 34*84943d6fSEmmanuel Vadot compatible = "fixed-clock"; 35*84943d6fSEmmanuel Vadot #clock-cells = <0>; 36*84943d6fSEmmanuel Vadot }; 37*84943d6fSEmmanuel Vadot 38*84943d6fSEmmanuel Vadot psci { 39*84943d6fSEmmanuel Vadot compatible = "arm,psci-0.2"; 40*84943d6fSEmmanuel Vadot method = "smc"; 41*84943d6fSEmmanuel Vadot }; 42*84943d6fSEmmanuel Vadot 43*84943d6fSEmmanuel Vadot timer { 44*84943d6fSEmmanuel Vadot compatible = "arm,armv8-timer"; 45*84943d6fSEmmanuel Vadot interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 46*84943d6fSEmmanuel Vadot <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 47*84943d6fSEmmanuel Vadot <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 48*84943d6fSEmmanuel Vadot <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 49*84943d6fSEmmanuel Vadot }; 50*84943d6fSEmmanuel Vadot 51*84943d6fSEmmanuel Vadot pmu { 52*84943d6fSEmmanuel Vadot compatible = "arm,cortex-a72-pmu"; 53*84943d6fSEmmanuel Vadot interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>; 54*84943d6fSEmmanuel Vadot }; 55*84943d6fSEmmanuel Vadot 56*84943d6fSEmmanuel Vadot soc: soc { 57*84943d6fSEmmanuel Vadot compatible = "simple-bus"; 58*84943d6fSEmmanuel Vadot #address-cells = <2>; 59*84943d6fSEmmanuel Vadot #size-cells = <2>; 60*84943d6fSEmmanuel Vadot ranges; 61*84943d6fSEmmanuel Vadot 62*84943d6fSEmmanuel Vadot i2c0: i2c@400 { 63*84943d6fSEmmanuel Vadot compatible = "snps,designware-i2c"; 64*84943d6fSEmmanuel Vadot reg = <0x0 0x400 0x0 0x100>; 65*84943d6fSEmmanuel Vadot clocks = <&ahb_clk>; 66*84943d6fSEmmanuel Vadot #address-cells = <1>; 67*84943d6fSEmmanuel Vadot #size-cells = <0>; 68*84943d6fSEmmanuel Vadot i2c-sda-hold-time-ns = <480>; 69*84943d6fSEmmanuel Vadot interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 70*84943d6fSEmmanuel Vadot status = "disabled"; 71*84943d6fSEmmanuel Vadot }; 72*84943d6fSEmmanuel Vadot 73*84943d6fSEmmanuel Vadot wdt0: watchdog@1400 { 74*84943d6fSEmmanuel Vadot compatible = "snps,dw-wdt"; 75*84943d6fSEmmanuel Vadot reg = <0x0 0x1400 0x0 0x100>; 76*84943d6fSEmmanuel Vadot clocks = <&ahb_clk>; 77*84943d6fSEmmanuel Vadot interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 78*84943d6fSEmmanuel Vadot status = "disabled"; 79*84943d6fSEmmanuel Vadot }; 80*84943d6fSEmmanuel Vadot 81*84943d6fSEmmanuel Vadot qspi: spi@2400 { 82*84943d6fSEmmanuel Vadot compatible = "amd,pensando-elba-qspi", "cdns,qspi-nor"; 83*84943d6fSEmmanuel Vadot reg = <0x0 0x2400 0x0 0x400>, 84*84943d6fSEmmanuel Vadot <0x0 0x7fff0000 0x0 0x1000>; 85*84943d6fSEmmanuel Vadot #address-cells = <1>; 86*84943d6fSEmmanuel Vadot #size-cells = <0>; 87*84943d6fSEmmanuel Vadot interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 88*84943d6fSEmmanuel Vadot clocks = <&flash_clk>; 89*84943d6fSEmmanuel Vadot cdns,fifo-depth = <1024>; 90*84943d6fSEmmanuel Vadot cdns,fifo-width = <4>; 91*84943d6fSEmmanuel Vadot cdns,trigger-address = <0x7fff0000>; 92*84943d6fSEmmanuel Vadot status = "disabled"; 93*84943d6fSEmmanuel Vadot }; 94*84943d6fSEmmanuel Vadot 95*84943d6fSEmmanuel Vadot spi0: spi@2800 { 96*84943d6fSEmmanuel Vadot compatible = "amd,pensando-elba-spi"; 97*84943d6fSEmmanuel Vadot reg = <0x0 0x2800 0x0 0x100>; 98*84943d6fSEmmanuel Vadot #address-cells = <1>; 99*84943d6fSEmmanuel Vadot #size-cells = <0>; 100*84943d6fSEmmanuel Vadot amd,pensando-elba-syscon = <&syscon>; 101*84943d6fSEmmanuel Vadot clocks = <&ahb_clk>; 102*84943d6fSEmmanuel Vadot interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 103*84943d6fSEmmanuel Vadot num-cs = <2>; 104*84943d6fSEmmanuel Vadot status = "disabled"; 105*84943d6fSEmmanuel Vadot }; 106*84943d6fSEmmanuel Vadot 107*84943d6fSEmmanuel Vadot gpio0: gpio@4000 { 108*84943d6fSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 109*84943d6fSEmmanuel Vadot reg = <0x0 0x4000 0x0 0x78>; 110*84943d6fSEmmanuel Vadot #address-cells = <1>; 111*84943d6fSEmmanuel Vadot #size-cells = <0>; 112*84943d6fSEmmanuel Vadot status = "disabled"; 113*84943d6fSEmmanuel Vadot 114*84943d6fSEmmanuel Vadot porta: gpio-port@0 { 115*84943d6fSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 116*84943d6fSEmmanuel Vadot reg = <0>; 117*84943d6fSEmmanuel Vadot gpio-controller; 118*84943d6fSEmmanuel Vadot #gpio-cells = <2>; 119*84943d6fSEmmanuel Vadot ngpios = <8>; 120*84943d6fSEmmanuel Vadot interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 121*84943d6fSEmmanuel Vadot interrupt-controller; 122*84943d6fSEmmanuel Vadot interrupt-parent = <&gic>; 123*84943d6fSEmmanuel Vadot #interrupt-cells = <2>; 124*84943d6fSEmmanuel Vadot }; 125*84943d6fSEmmanuel Vadot 126*84943d6fSEmmanuel Vadot portb: gpio-port@1 { 127*84943d6fSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 128*84943d6fSEmmanuel Vadot reg = <1>; 129*84943d6fSEmmanuel Vadot gpio-controller; 130*84943d6fSEmmanuel Vadot #gpio-cells = <2>; 131*84943d6fSEmmanuel Vadot ngpios = <8>; 132*84943d6fSEmmanuel Vadot }; 133*84943d6fSEmmanuel Vadot }; 134*84943d6fSEmmanuel Vadot 135*84943d6fSEmmanuel Vadot uart0: serial@4800 { 136*84943d6fSEmmanuel Vadot compatible = "ns16550a"; 137*84943d6fSEmmanuel Vadot reg = <0x0 0x4800 0x0 0x100>; 138*84943d6fSEmmanuel Vadot clocks = <&ref_clk>; 139*84943d6fSEmmanuel Vadot interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 140*84943d6fSEmmanuel Vadot reg-shift = <2>; 141*84943d6fSEmmanuel Vadot reg-io-width = <4>; 142*84943d6fSEmmanuel Vadot }; 143*84943d6fSEmmanuel Vadot 144*84943d6fSEmmanuel Vadot gic: interrupt-controller@800000 { 145*84943d6fSEmmanuel Vadot compatible = "arm,gic-v3"; 146*84943d6fSEmmanuel Vadot reg = <0x0 0x800000 0x0 0x200000>, /* GICD */ 147*84943d6fSEmmanuel Vadot <0x0 0xa00000 0x0 0x200000>, /* GICR */ 148*84943d6fSEmmanuel Vadot <0x0 0x60000000 0x0 0x2000>, /* GICC */ 149*84943d6fSEmmanuel Vadot <0x0 0x60010000 0x0 0x1000>, /* GICH */ 150*84943d6fSEmmanuel Vadot <0x0 0x60020000 0x0 0x2000>; /* GICV */ 151*84943d6fSEmmanuel Vadot #address-cells = <2>; 152*84943d6fSEmmanuel Vadot #size-cells = <2>; 153*84943d6fSEmmanuel Vadot #interrupt-cells = <3>; 154*84943d6fSEmmanuel Vadot ranges; 155*84943d6fSEmmanuel Vadot interrupt-controller; 156*84943d6fSEmmanuel Vadot interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 157*84943d6fSEmmanuel Vadot 158*84943d6fSEmmanuel Vadot /* 159*84943d6fSEmmanuel Vadot * Elba specific pre-ITS is enabled using the 160*84943d6fSEmmanuel Vadot * existing property socionext,synquacer-pre-its 161*84943d6fSEmmanuel Vadot */ 162*84943d6fSEmmanuel Vadot gic_its: msi-controller@820000 { 163*84943d6fSEmmanuel Vadot compatible = "arm,gic-v3-its"; 164*84943d6fSEmmanuel Vadot reg = <0x0 0x820000 0x0 0x10000>; 165*84943d6fSEmmanuel Vadot msi-controller; 166*84943d6fSEmmanuel Vadot #msi-cells = <1>; 167*84943d6fSEmmanuel Vadot socionext,synquacer-pre-its = 168*84943d6fSEmmanuel Vadot <0xc00000 0x1000000>; 169*84943d6fSEmmanuel Vadot }; 170*84943d6fSEmmanuel Vadot }; 171*84943d6fSEmmanuel Vadot 172*84943d6fSEmmanuel Vadot emmc: mmc@30440000 { 173*84943d6fSEmmanuel Vadot compatible = "amd,pensando-elba-sd4hc", "cdns,sd4hc"; 174*84943d6fSEmmanuel Vadot reg = <0x0 0x30440000 0x0 0x10000>, 175*84943d6fSEmmanuel Vadot <0x0 0x30480044 0x0 0x4>; /* byte-lane ctrl */ 176*84943d6fSEmmanuel Vadot clocks = <&emmc_clk>; 177*84943d6fSEmmanuel Vadot interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 178*84943d6fSEmmanuel Vadot cdns,phy-input-delay-sd-highspeed = <0x4>; 179*84943d6fSEmmanuel Vadot cdns,phy-input-delay-legacy = <0x4>; 180*84943d6fSEmmanuel Vadot cdns,phy-input-delay-sd-uhs-sdr50 = <0x6>; 181*84943d6fSEmmanuel Vadot cdns,phy-input-delay-sd-uhs-ddr50 = <0x16>; 182*84943d6fSEmmanuel Vadot mmc-ddr-1_8v; 183*84943d6fSEmmanuel Vadot status = "disabled"; 184*84943d6fSEmmanuel Vadot }; 185*84943d6fSEmmanuel Vadot 186*84943d6fSEmmanuel Vadot syscon: syscon@307c0000 { 187*84943d6fSEmmanuel Vadot compatible = "amd,pensando-elba-syscon", "syscon"; 188*84943d6fSEmmanuel Vadot reg = <0x0 0x307c0000 0x0 0x3000>; 189*84943d6fSEmmanuel Vadot }; 190*84943d6fSEmmanuel Vadot }; 191*84943d6fSEmmanuel Vadot}; 192