Compared to Terasic SoCKit, here are some of the notable differences on the HPS side: - Only 1 user LED and 1 user KEY - The QSPI Flash is not populated - The ADXL345 accelerometer is on I2C0 instead of I2C1 Tested to be working: - LED / KEY - Ethernet - Both USB Host ports - SD card - ADXL345 accelerometer Signed-off-by: Florian Vaussard <florian.vaussard@xxxxxxxxx> --- arch/arm/boot/dts/intel/socfpga/Makefile | 1 + .../socfpga/socfpga_cyclone5_de1_soc.dts | 109 ++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_de1_soc.dts diff --git a/arch/arm/boot/dts/intel/socfpga/Makefile b/arch/arm/boot/dts/intel/socfpga/Makefile index c467828aeb4b..1d5140b238da 100644 --- a/arch/arm/boot/dts/intel/socfpga/Makefile +++ b/arch/arm/boot/dts/intel/socfpga/Makefile @@ -10,6 +10,7 @@ dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += \ socfpga_cyclone5_mcvevk.dtb \ socfpga_cyclone5_socdk.dtb \ socfpga_cyclone5_de0_nano_soc.dtb \ + socfpga_cyclone5_de1_soc.dtb \ socfpga_cyclone5_sockit.dtb \ socfpga_cyclone5_socrates.dtb \ socfpga_cyclone5_sodia.dtb \ diff --git a/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_de1_soc.dts b/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_de1_soc.dts new file mode 100644 index 000000000000..de5a4fe3b0e4 --- /dev/null +++ b/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_de1_soc.dts @@ -0,0 +1,109 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2024 Florian Vaussard <florian.vaussard@xxxxxxxxx> + */ + +#include "socfpga_cyclone5.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/leds/common.h> + +/ { + model = "Terasic DE1-SOC"; + compatible = "terasic,de1-soc", "altr,socfpga-cyclone5", "altr,socfpga"; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x40000000>; /* 1GB */ + }; + + aliases { + /* + * this allows the ethaddr uboot environmnet variable content + * to be added to the gmac1 device tree blob. + */ + ethernet0 = &gmac1; + }; + + leds { + compatible = "gpio-leds"; + + hps-led { + gpios = <&portb 24 GPIO_ACTIVE_HIGH>; /* HPS_GPIO53 */ + function = LED_FUNCTION_HEARTBEAT; + color = <LED_COLOR_ID_GREEN>; + linux,default-trigger = "heartbeat"; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + + hps-key { + label = "hps_key"; + gpios = <&portb 25 GPIO_ACTIVE_LOW>; /* HPS_GPIO54 */ + linux,code = <BTN_0>; + }; + }; + + reg_3v3_sd: regulator { + compatible = "regulator-fixed"; + regulator-name = "VCC3P3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; +}; + +&gmac1 { + status = "okay"; + phy-mode = "rgmii"; + + rxd0-skew-ps = <0>; + rxd1-skew-ps = <0>; + rxd2-skew-ps = <0>; + rxd3-skew-ps = <0>; + txen-skew-ps = <0>; + txc-skew-ps = <2600>; + rxdv-skew-ps = <0>; + rxc-skew-ps = <2000>; +}; + +&gpio0 { /* GPIO 0..29 */ + status = "okay"; +}; + +&gpio1 { /* GPIO 30..57 */ + status = "okay"; +}; + +&gpio2 { /* GPIO 58..66 (HLGPI 0..13 at offset 13) */ + status = "okay"; +}; + +&i2c0 { + status = "okay"; + + accel1: accelerometer@53 { + compatible = "adi,adxl345"; + reg = <0x53>; + + interrupt-parent = <&portc>; + interrupts = <3 IRQ_TYPE_EDGE_FALLING>; + }; +}; + +&mmc0 { + vmmc-supply = <®_3v3_sd>; + vqmmc-supply = <®_3v3_sd>; + status = "okay"; +}; + +&usb1 { + status = "okay"; +}; -- 2.45.1