Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2020 Henrik Brix Andersen <henrik@brixandersen.dk>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <dt-bindings/gpio/gpio.h>
#include <mem.h>

/ {
	chosen {
		zephyr,console = &uartlite0;
		zephyr,shell-uart = &uartlite0;
		zephyr,flash = &itcm;
		/* Use DTCM as SRAM by default */
		zephyr,sram = &dtcm;
	};

	aliases {
		led0 = &led_ld4;
		led1 = &led_ld5;
		led2 = &led_ld6;
		led3 = &led_ld7;
		sw0 = &sw0;
		sw1 = &sw1;
		sw2 = &sw2;
		sw3 = &sw3;
	};

	leds {
		compatible = "gpio-leds";
		led_ld0_red: led_ld0_red {
			gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
			label = "LED LD0 RED";
		};
		led_ld0_green: led_ld0_green {
			gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
			label = "LED LD0 GREEN";
		};
		led_ld0_blue: led_ld0_blue {
			gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
			label = "LED LD0 BLUE";
		};

		led_ld1_red: led_ld1_red {
			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
			label = "LED LD1 RED";
		};
		led_ld1_green: led_ld1_green {
			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
			label = "LED LD1 GREEN";
		};
		led_ld1_blue: led_ld1_blue {
			gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
			label = "LED LD1 BLUE";
		};

		led_ld2_red: led_ld2_red {
			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
			label = "LED LD2 RED";
		};
		led_ld2_green: led_ld2_green {
			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
			label = "LED LD2 GREEN";
		};
		led_ld2_blue: led_ld2_blue {
			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
			label = "LED LD2 BLUE";
		};

		led_ld3_red: led_ld3_red {
			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
			label = "LED LD3 RED";
		};
		led_ld3_green: led_ld3_green {
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
			label = "LED LD3 GREEN";
		};
		led_ld3_blue: led_ld3_blue {
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
			label = "LED LD3 BLUE";
		};

		led_ld4: led_ld4 {
			gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
			label = "LED LD4";
		};
		led_ld5: led_ld5 {
			gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
			label = "LED LD5";
		};
		led_ld6: led_ld6 {
			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
			label = "LED LD6";
		};
		led_ld7: led_ld7 {
			gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
			label = "LED LD7";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		sw0: sw0 {
			gpios = <&gpio0_2 0 GPIO_ACTIVE_HIGH>;
			label = "SW0";
		};
		sw1: sw1 {
			gpios = <&gpio0_2 1 GPIO_ACTIVE_HIGH>;
			label = "SW1";
		};
		sw2: sw2 {
			gpios = <&gpio0_2 2 GPIO_ACTIVE_HIGH>;
			label = "SW2";
		};
		sw3: sw3 {
			gpios = <&gpio0_2 3 GPIO_ACTIVE_HIGH>;
			label = "SW3";
		};
		btn0: btn0 {
			gpios = <&gpio1_2 0 GPIO_ACTIVE_HIGH>;
			label = "BTN0";
		};
		btn1: btn1 {
			gpios = <&gpio1_2 1 GPIO_ACTIVE_HIGH>;
			label = "BTN1";
		};
		btn2: btn2 {
			gpios = <&gpio1_2 2 GPIO_ACTIVE_HIGH>;
			label = "BTN2";
		};
		btn3: btn3 {
			gpios = <&gpio1_2 3 GPIO_ACTIVE_HIGH>;
			label = "BTN3";
		};
	};

	daplink_qspi_mux: daplink_qspi_mux {
		compatible = "arm,daplink-qspi-mux";
		status = "disabled";
		interrupt-parent = <&nvic>;
		interrupts = <7 0>;
		mux-gpios = <&daplink_gpio0 0 GPIO_ACTIVE_HIGH>;
	};

	soc {
		daplink_gpio0: gpio@40010000 {
			compatible = "xlnx,xps-gpio-1.00.a";
			status = "disabled";
			reg = <0x40010000 0x10000>;
			label = "DAPLINK_GPIO_0";
			gpio-controller;
			#gpio-cells = <2>;

			xlnx,all-inputs = <0x0>;
			xlnx,all-outputs = <0x0>;
			xlnx,dout-default = <0x0>;
			xlnx,gpio-width = <0x20>;
			xlnx,is-dual = <0x0>;
			xlnx,tri-default = <0xffffffff>;
		};

		daplink_quad_spi0: spi@40020000 {
			compatible = "xlnx,xps-spi-2.00.a";
			status = "disabled";
			reg = <0x40020000 0x10000>;
			interrupts = <4 0>;
			#address-cells = <1>;
			#size-cells = <0>;
			label = "DAPLINK_QUAD_SPI_0";

			xlnx,num-ss-bits = <0x1>;
			xlnx,num-transfer-bits = <0x8>;
		};

		daplink_single_spi0: spi@40030000 {
			compatible = "xlnx,xps-spi-2.00.a";
			status = "disabled";
			reg = <0x40030000 0x10000>;
			interrupts = <5 0>;
			label = "DAPLINK_SINGLE_SPI_0";
			#address-cells = <1>;
			#size-cells = <0>;

			xlnx,num-ss-bits = <0x1>;
			xlnx,num-transfer-bits = <0x8>;
		};

		uartlite0: uartlite@40100000 {
			compatible = "xlnx,xps-uartlite-1.00.a";
			interrupts = <0 0>;
			reg = <0x40100000 0x10000>;
			label = "UART_0";
		};

		gpio0: gpio@40110000 {
			compatible = "xlnx,xps-gpio-1.00.a";
			interrupts = <1 0>;
			reg = <0x40110000 0x10000>;
			label = "GPIO_0";
			gpio-controller;
			#gpio-cells = <2>;

			xlnx,all-inputs = <0x0>;
			xlnx,all-inputs-2 = <0x1>;
			xlnx,all-outputs = <0x0>;
			xlnx,all-outputs-2 = <0x0>;
			xlnx,dout-default = <0x0>;
			xlnx,dout-default-2 = <0x0>;
			xlnx,gpio-width = <0x4>;
			xlnx,gpio2-width = <0x4>;
			xlnx,is-dual = <0x1>;
			xlnx,tri-default = <0xffffffff>;
			xlnx,tri-default-2 = <0xffffffff>;

			gpio0_2: gpio2 {
				compatible = "xlnx,xps-gpio-1.00.a-gpio2";
				label = "GPIO_0_2";
				gpio-controller;
				#gpio-cells = <2>;
			};
		};

		gpio1: gpio@40120000 {
			compatible = "xlnx,xps-gpio-1.00.a";
			interrupts = <2 0>;
			reg = <0x40120000 0x10000>;
			label = "GPIO_1";
			gpio-controller;
			#gpio-cells = <2>;

			xlnx,all-inputs = <0x0>;
			xlnx,all-inputs-2 = <0x1>;
			xlnx,all-outputs = <0x0>;
			xlnx,all-outputs-2 = <0x0>;
			xlnx,dout-default = <0x0>;
			xlnx,dout-default-2 = <0x0>;
			xlnx,gpio-width = <0xc>;
			xlnx,gpio2-width = <0x4>;
			xlnx,is-dual = <0x1>;
			xlnx,tri-default = <0xffffffff>;
			xlnx,tri-default-2 = <0xffffffff>;

			gpio1_2: gpio2 {
				compatible = "xlnx,xps-gpio-1.00.a-gpio2";
				label = "GPIO_1_2";
				gpio-controller;
				#gpio-cells = <2>;
			};
		};

		quad_spi0: spi@40130000 {
			compatible = "xlnx,xps-spi-2.00.a";
			reg = <0x40130000 0x10000>;
			interrupts = <3 0>;
			#address-cells = <1>;
			#size-cells = <0>;
			label = "QUAD_SPI_0";

			xlnx,num-ss-bits = <0x1>;
			xlnx,num-transfer-bits = <0x8>;

			flash0: flash@0 {
				compatible = "micron,n25q128a","jedec,spi-nor";
				reg = <0>;
				spi-max-frequency = <108000000>;
				size = <DT_SIZE_M(128)>;
				jedec-id = [20 ba 18];
				label = "FLASH_0";

				partitions {
					compatible = "fixed-partitions";
					#address-cells = <1>;
					#size-cells = <1>;

					fpga_bitstream_partition: partition@0 {
						label = "fpga_bitstream";
						/* From Xilinx 7 Series FPGA User Guide (UG470)
						 * Table 1-1: Bitstream Length
						 *           Bits    Bytes (sector multiple)
						 * A35T:  17,536,096     0x218000
						 * A100T: 30,606,304     0x3a8000
						 */
						reg = <0x00000000 0x218000>;
					};
				};
			};
		};
	};
};