xref: /freebsd-src/sys/contrib/device-tree/src/arm64/amd/elba.dtsi (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1*7d0873ebSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
284943d6fSEmmanuel Vadot/*
384943d6fSEmmanuel Vadot * Copyright 2020-2022 Advanced Micro Devices, Inc.
484943d6fSEmmanuel Vadot */
584943d6fSEmmanuel Vadot
684943d6fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
784943d6fSEmmanuel Vadot#include "dt-bindings/interrupt-controller/arm-gic.h"
884943d6fSEmmanuel Vadot
984943d6fSEmmanuel Vadot/ {
1084943d6fSEmmanuel Vadot	model = "Elba ASIC Board";
1184943d6fSEmmanuel Vadot	compatible = "amd,pensando-elba";
1284943d6fSEmmanuel Vadot	interrupt-parent = <&gic>;
1384943d6fSEmmanuel Vadot	#address-cells = <2>;
1484943d6fSEmmanuel Vadot	#size-cells = <2>;
1584943d6fSEmmanuel Vadot
1684943d6fSEmmanuel Vadot	dma-coherent;
1784943d6fSEmmanuel Vadot
1884943d6fSEmmanuel Vadot	ahb_clk: oscillator0 {
1984943d6fSEmmanuel Vadot		compatible = "fixed-clock";
2084943d6fSEmmanuel Vadot		#clock-cells = <0>;
2184943d6fSEmmanuel Vadot	};
2284943d6fSEmmanuel Vadot
2384943d6fSEmmanuel Vadot	emmc_clk: oscillator2 {
2484943d6fSEmmanuel Vadot		compatible = "fixed-clock";
2584943d6fSEmmanuel Vadot		#clock-cells = <0>;
2684943d6fSEmmanuel Vadot	};
2784943d6fSEmmanuel Vadot
2884943d6fSEmmanuel Vadot	flash_clk: oscillator3 {
2984943d6fSEmmanuel Vadot		compatible = "fixed-clock";
3084943d6fSEmmanuel Vadot		#clock-cells = <0>;
3184943d6fSEmmanuel Vadot	};
3284943d6fSEmmanuel Vadot
3384943d6fSEmmanuel Vadot	ref_clk: oscillator4 {
3484943d6fSEmmanuel Vadot		compatible = "fixed-clock";
3584943d6fSEmmanuel Vadot		#clock-cells = <0>;
3684943d6fSEmmanuel Vadot	};
3784943d6fSEmmanuel Vadot
3884943d6fSEmmanuel Vadot	psci {
3984943d6fSEmmanuel Vadot		compatible = "arm,psci-0.2";
4084943d6fSEmmanuel Vadot		method = "smc";
4184943d6fSEmmanuel Vadot	};
4284943d6fSEmmanuel Vadot
4384943d6fSEmmanuel Vadot	timer {
4484943d6fSEmmanuel Vadot		compatible = "arm,armv8-timer";
4584943d6fSEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
4684943d6fSEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
4784943d6fSEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
4884943d6fSEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
4984943d6fSEmmanuel Vadot	};
5084943d6fSEmmanuel Vadot
5184943d6fSEmmanuel Vadot	pmu {
5284943d6fSEmmanuel Vadot		compatible = "arm,cortex-a72-pmu";
5384943d6fSEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
5484943d6fSEmmanuel Vadot	};
5584943d6fSEmmanuel Vadot
5684943d6fSEmmanuel Vadot	soc: soc {
5784943d6fSEmmanuel Vadot		compatible = "simple-bus";
5884943d6fSEmmanuel Vadot		#address-cells = <2>;
5984943d6fSEmmanuel Vadot		#size-cells = <2>;
6084943d6fSEmmanuel Vadot		ranges;
6184943d6fSEmmanuel Vadot
6284943d6fSEmmanuel Vadot		i2c0: i2c@400 {
6384943d6fSEmmanuel Vadot			compatible = "snps,designware-i2c";
6484943d6fSEmmanuel Vadot			reg = <0x0 0x400 0x0 0x100>;
6584943d6fSEmmanuel Vadot			clocks = <&ahb_clk>;
6684943d6fSEmmanuel Vadot			#address-cells = <1>;
6784943d6fSEmmanuel Vadot			#size-cells = <0>;
6884943d6fSEmmanuel Vadot			i2c-sda-hold-time-ns = <480>;
6984943d6fSEmmanuel Vadot			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
7084943d6fSEmmanuel Vadot			status = "disabled";
7184943d6fSEmmanuel Vadot		};
7284943d6fSEmmanuel Vadot
7384943d6fSEmmanuel Vadot		wdt0: watchdog@1400 {
7484943d6fSEmmanuel Vadot			compatible = "snps,dw-wdt";
7584943d6fSEmmanuel Vadot			reg = <0x0 0x1400 0x0 0x100>;
7684943d6fSEmmanuel Vadot			clocks = <&ahb_clk>;
7784943d6fSEmmanuel Vadot			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
7884943d6fSEmmanuel Vadot			status = "disabled";
7984943d6fSEmmanuel Vadot		};
8084943d6fSEmmanuel Vadot
8184943d6fSEmmanuel Vadot		qspi: spi@2400 {
8284943d6fSEmmanuel Vadot			compatible = "amd,pensando-elba-qspi", "cdns,qspi-nor";
8384943d6fSEmmanuel Vadot			reg = <0x0 0x2400 0x0 0x400>,
8484943d6fSEmmanuel Vadot			      <0x0 0x7fff0000 0x0 0x1000>;
8584943d6fSEmmanuel Vadot			#address-cells = <1>;
8684943d6fSEmmanuel Vadot			#size-cells = <0>;
8784943d6fSEmmanuel Vadot			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
8884943d6fSEmmanuel Vadot			clocks = <&flash_clk>;
8984943d6fSEmmanuel Vadot			cdns,fifo-depth = <1024>;
9084943d6fSEmmanuel Vadot			cdns,fifo-width = <4>;
9184943d6fSEmmanuel Vadot			cdns,trigger-address = <0x7fff0000>;
9284943d6fSEmmanuel Vadot			status = "disabled";
9384943d6fSEmmanuel Vadot		};
9484943d6fSEmmanuel Vadot
9584943d6fSEmmanuel Vadot		spi0: spi@2800 {
9684943d6fSEmmanuel Vadot			compatible = "amd,pensando-elba-spi";
9784943d6fSEmmanuel Vadot			reg = <0x0 0x2800 0x0 0x100>;
9884943d6fSEmmanuel Vadot			#address-cells = <1>;
9984943d6fSEmmanuel Vadot			#size-cells = <0>;
10084943d6fSEmmanuel Vadot			amd,pensando-elba-syscon = <&syscon>;
10184943d6fSEmmanuel Vadot			clocks = <&ahb_clk>;
10284943d6fSEmmanuel Vadot			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
10384943d6fSEmmanuel Vadot			num-cs = <2>;
10484943d6fSEmmanuel Vadot			status = "disabled";
10584943d6fSEmmanuel Vadot		};
10684943d6fSEmmanuel Vadot
10784943d6fSEmmanuel Vadot		gpio0: gpio@4000 {
10884943d6fSEmmanuel Vadot			compatible = "snps,dw-apb-gpio";
10984943d6fSEmmanuel Vadot			reg = <0x0 0x4000 0x0 0x78>;
11084943d6fSEmmanuel Vadot			#address-cells = <1>;
11184943d6fSEmmanuel Vadot			#size-cells = <0>;
11284943d6fSEmmanuel Vadot			status = "disabled";
11384943d6fSEmmanuel Vadot
11484943d6fSEmmanuel Vadot			porta: gpio-port@0 {
11584943d6fSEmmanuel Vadot				compatible = "snps,dw-apb-gpio-port";
11684943d6fSEmmanuel Vadot				reg = <0>;
11784943d6fSEmmanuel Vadot				gpio-controller;
11884943d6fSEmmanuel Vadot				#gpio-cells = <2>;
11984943d6fSEmmanuel Vadot				ngpios = <8>;
12084943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
12184943d6fSEmmanuel Vadot				interrupt-controller;
12284943d6fSEmmanuel Vadot				interrupt-parent = <&gic>;
12384943d6fSEmmanuel Vadot				#interrupt-cells = <2>;
12484943d6fSEmmanuel Vadot			};
12584943d6fSEmmanuel Vadot
12684943d6fSEmmanuel Vadot			portb: gpio-port@1 {
12784943d6fSEmmanuel Vadot				compatible = "snps,dw-apb-gpio-port";
12884943d6fSEmmanuel Vadot				reg = <1>;
12984943d6fSEmmanuel Vadot				gpio-controller;
13084943d6fSEmmanuel Vadot				#gpio-cells = <2>;
13184943d6fSEmmanuel Vadot				ngpios = <8>;
13284943d6fSEmmanuel Vadot			};
13384943d6fSEmmanuel Vadot		};
13484943d6fSEmmanuel Vadot
13584943d6fSEmmanuel Vadot		uart0: serial@4800 {
13684943d6fSEmmanuel Vadot			compatible = "ns16550a";
13784943d6fSEmmanuel Vadot			reg = <0x0 0x4800 0x0 0x100>;
13884943d6fSEmmanuel Vadot			clocks = <&ref_clk>;
13984943d6fSEmmanuel Vadot			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
14084943d6fSEmmanuel Vadot			reg-shift = <2>;
14184943d6fSEmmanuel Vadot			reg-io-width = <4>;
14284943d6fSEmmanuel Vadot		};
14384943d6fSEmmanuel Vadot
14484943d6fSEmmanuel Vadot		gic: interrupt-controller@800000 {
14584943d6fSEmmanuel Vadot			compatible = "arm,gic-v3";
14684943d6fSEmmanuel Vadot			reg = <0x0 0x800000 0x0 0x200000>,	/* GICD */
14784943d6fSEmmanuel Vadot			      <0x0 0xa00000 0x0 0x200000>,	/* GICR */
14884943d6fSEmmanuel Vadot			      <0x0 0x60000000 0x0 0x2000>,	/* GICC */
14984943d6fSEmmanuel Vadot			      <0x0 0x60010000 0x0 0x1000>,	/* GICH */
15084943d6fSEmmanuel Vadot			      <0x0 0x60020000 0x0 0x2000>;	/* GICV */
15184943d6fSEmmanuel Vadot			#address-cells = <2>;
15284943d6fSEmmanuel Vadot			#size-cells = <2>;
15384943d6fSEmmanuel Vadot			#interrupt-cells = <3>;
15484943d6fSEmmanuel Vadot			ranges;
15584943d6fSEmmanuel Vadot			interrupt-controller;
15684943d6fSEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
15784943d6fSEmmanuel Vadot
15884943d6fSEmmanuel Vadot			/*
15984943d6fSEmmanuel Vadot			 * Elba specific pre-ITS is enabled using the
16084943d6fSEmmanuel Vadot			 * existing property socionext,synquacer-pre-its
16184943d6fSEmmanuel Vadot			 */
16284943d6fSEmmanuel Vadot			gic_its: msi-controller@820000 {
16384943d6fSEmmanuel Vadot				compatible = "arm,gic-v3-its";
16484943d6fSEmmanuel Vadot				reg = <0x0 0x820000 0x0 0x10000>;
16584943d6fSEmmanuel Vadot				msi-controller;
16684943d6fSEmmanuel Vadot				#msi-cells = <1>;
16784943d6fSEmmanuel Vadot				socionext,synquacer-pre-its =
16884943d6fSEmmanuel Vadot							<0xc00000 0x1000000>;
16984943d6fSEmmanuel Vadot			};
17084943d6fSEmmanuel Vadot		};
17184943d6fSEmmanuel Vadot
17284943d6fSEmmanuel Vadot		emmc: mmc@30440000 {
17384943d6fSEmmanuel Vadot			compatible = "amd,pensando-elba-sd4hc", "cdns,sd4hc";
17484943d6fSEmmanuel Vadot			reg = <0x0 0x30440000 0x0 0x10000>,
17584943d6fSEmmanuel Vadot			      <0x0 0x30480044 0x0 0x4>;	/* byte-lane ctrl */
17684943d6fSEmmanuel Vadot			clocks = <&emmc_clk>;
17784943d6fSEmmanuel Vadot			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
17884943d6fSEmmanuel Vadot			cdns,phy-input-delay-sd-highspeed = <0x4>;
17984943d6fSEmmanuel Vadot			cdns,phy-input-delay-legacy = <0x4>;
18084943d6fSEmmanuel Vadot			cdns,phy-input-delay-sd-uhs-sdr50 = <0x6>;
18184943d6fSEmmanuel Vadot			cdns,phy-input-delay-sd-uhs-ddr50 = <0x16>;
18284943d6fSEmmanuel Vadot			mmc-ddr-1_8v;
18384943d6fSEmmanuel Vadot			status = "disabled";
18484943d6fSEmmanuel Vadot		};
18584943d6fSEmmanuel Vadot
18684943d6fSEmmanuel Vadot		syscon: syscon@307c0000 {
18784943d6fSEmmanuel Vadot			compatible = "amd,pensando-elba-syscon", "syscon";
18884943d6fSEmmanuel Vadot			reg = <0x0 0x307c0000 0x0 0x3000>;
18984943d6fSEmmanuel Vadot		};
19084943d6fSEmmanuel Vadot	};
19184943d6fSEmmanuel Vadot};
192