blob: 674890cf2a341121fef67be77a5eeeb19b9fc23d [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
/*
* Copyright 2020-2022 Advanced Micro Devices, Inc.
*/
#include <dt-bindings/gpio/gpio.h>
#include "dt-bindings/interrupt-controller/arm-gic.h"
/ {
model = "Elba ASIC Board";
compatible = "amd,pensando-elba";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
dma-coherent;
ahb_clk: oscillator0 {
compatible = "fixed-clock";
#clock-cells = <0>;
};
emmc_clk: oscillator2 {
compatible = "fixed-clock";
#clock-cells = <0>;
};
flash_clk: oscillator3 {
compatible = "fixed-clock";
#clock-cells = <0>;
};
ref_clk: oscillator4 {
compatible = "fixed-clock";
#clock-cells = <0>;
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
};
pmu {
compatible = "arm,cortex-a72-pmu";
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
};
soc: soc {
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges;
i2c0: i2c@400 {
compatible = "snps,designware-i2c";
reg = <0x0 0x400 0x0 0x100>;
clocks = <&ahb_clk>;
#address-cells = <1>;
#size-cells = <0>;
i2c-sda-hold-time-ns = <480>;
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
wdt0: watchdog@1400 {
compatible = "snps,dw-wdt";
reg = <0x0 0x1400 0x0 0x100>;
clocks = <&ahb_clk>;
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
qspi: spi@2400 {
compatible = "amd,pensando-elba-qspi", "cdns,qspi-nor";
reg = <0x0 0x2400 0x0 0x400>,
<0x0 0x7fff0000 0x0 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&flash_clk>;
cdns,fifo-depth = <1024>;
cdns,fifo-width = <4>;
cdns,trigger-address = <0x7fff0000>;
status = "disabled";
};
spi0: spi@2800 {
compatible = "amd,pensando-elba-spi";
reg = <0x0 0x2800 0x0 0x100>;
#address-cells = <1>;
#size-cells = <0>;
amd,pensando-elba-syscon = <&syscon>;
clocks = <&ahb_clk>;
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
num-cs = <2>;
status = "disabled";
};
gpio0: gpio@4000 {
compatible = "snps,dw-apb-gpio";
reg = <0x0 0x4000 0x0 0x78>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
porta: gpio-port@0 {
compatible = "snps,dw-apb-gpio-port";
reg = <0>;
gpio-controller;
#gpio-cells = <2>;
ngpios = <8>;
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
interrupt-parent = <&gic>;
#interrupt-cells = <2>;
};
portb: gpio-port@1 {
compatible = "snps,dw-apb-gpio-port";
reg = <1>;
gpio-controller;
#gpio-cells = <2>;
ngpios = <8>;
};
};
uart0: serial@4800 {
compatible = "ns16550a";
reg = <0x0 0x4800 0x0 0x100>;
clocks = <&ref_clk>;
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
};
gic: interrupt-controller@800000 {
compatible = "arm,gic-v3";
reg = <0x0 0x800000 0x0 0x200000>, /* GICD */
<0x0 0xa00000 0x0 0x200000>, /* GICR */
<0x0 0x60000000 0x0 0x2000>, /* GICC */
<0x0 0x60010000 0x0 0x1000>, /* GICH */
<0x0 0x60020000 0x0 0x2000>; /* GICV */
#address-cells = <2>;
#size-cells = <2>;
#interrupt-cells = <3>;
ranges;
interrupt-controller;
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
/*
* Elba specific pre-ITS is enabled using the
* existing property socionext,synquacer-pre-its
*/
gic_its: msi-controller@820000 {
compatible = "arm,gic-v3-its";
reg = <0x0 0x820000 0x0 0x10000>;
msi-controller;
#msi-cells = <1>;
socionext,synquacer-pre-its =
<0xc00000 0x1000000>;
};
};
emmc: mmc@30440000 {
compatible = "amd,pensando-elba-sd4hc", "cdns,sd4hc";
reg = <0x0 0x30440000 0x0 0x10000>,
<0x0 0x30480044 0x0 0x4>; /* byte-lane ctrl */
clocks = <&emmc_clk>;
interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
cdns,phy-input-delay-sd-highspeed = <0x4>;
cdns,phy-input-delay-legacy = <0x4>;
cdns,phy-input-delay-sd-uhs-sdr50 = <0x6>;
cdns,phy-input-delay-sd-uhs-ddr50 = <0x16>;
mmc-ddr-1_8v;
status = "disabled";
};
syscon: syscon@307c0000 {
compatible = "amd,pensando-elba-syscon", "syscon";
reg = <0x0 0x307c0000 0x0 0x3000>;
};
};
};