Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

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

Bootlin logo

Elixir Cross Referencer

/*
 * Copyright (c) 2019 Interay Solutions B.V.
 * Copyright (c) 2019 Oane Kingma
 * Copyright (c) 2020 Thorvald Natvig
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <silabs/efm32gg11b820f2048gl192.dtsi>

/ {
	model = "Silicon Labs EFM32GG SLWSTK6121A board";
	compatible = "silabs,efm32gg_slwstk6121a", "silabs,efm32gg11b";

	chosen {
		zephyr,console = &usart0;
		zephyr,shell-uart = &usart0;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
	};

	/* These aliases are provided for compatibility with samples */
	aliases {
		led0 = &led0;
		led1 = &led1;
		sw0 = &button0;
		sw1 = &button1;
		watchdog0 = &wdog0;
	};

	leds {
		compatible = "gpio-leds";
		led0: led_0 {
			gpios = <&gpioa 4 0>;
			label = "LED 0";
		};
		led1: led_1 {
			gpios = <&gpioa 5 0>;
			label = "LED 1";
		};
	};

	buttons {
		compatible = "gpio-keys";
		button0: button_0 {
			/* gpio flags need validation */
			gpios = <&gpiod 6 GPIO_ACTIVE_LOW>;
			label = "User Push Button 0";
		};
		button1: button_1 {
			/* gpio flags need validation */
			gpios = <&gpiod 8 GPIO_ACTIVE_LOW>;
			label = "User Push Button 1";
		};
	};
};

/* Connected to the WSTK VCOM */
&usart0 {
	current-speed = <115200>;
	location-rx = <GECKO_LOCATION(1) GECKO_PORT_E GECKO_PIN(6)>;
	location-tx = <GECKO_LOCATION(1) GECKO_PORT_E GECKO_PIN(7)>;
	status = "okay";
};

/* i2c unit 0 is not used on the board, but must be defined for i2c unit 1
 * to work properly.
 */
&i2c0 {
	location-sda = <GECKO_LOCATION(4) GECKO_PORT_A GECKO_PIN(0)>;
	location-scl = <GECKO_LOCATION(4) GECKO_PORT_A GECKO_PIN(1)>;
	status = "okay";
};

/* Connected to Si7021 sensor on WSTK */
&i2c1 {
	location-sda = <GECKO_LOCATION(1) GECKO_PORT_B GECKO_PIN(11)>;
	location-scl = <GECKO_LOCATION(1) GECKO_PORT_B GECKO_PIN(12)>;
	status = "okay";
};

&rtcc0 {
	prescaler = <1>;
	status = "okay";
};

&gpio {
	location-swo = <0>;
	status = "okay";
};

&gpioa {
	status = "okay";
};

&gpiob {
	status = "okay";
};

&gpioc {
	status = "okay";
};

&gpiod {
	status = "okay";
};

&gpioe {
	status = "okay";
};

&gpiof {
	status = "okay";
};

&eth0 {
	/* PHY address = 0 */
	phy-address = <0>;

	/* PHY management pins */
	location-mdio        = <GECKO_LOCATION(3)>;
	location-phy_mdc     = <GECKO_LOCATION(3) GECKO_PORT_A GECKO_PIN(6)>;
	location-phy_mdio    = <GECKO_LOCATION(3) GECKO_PORT_A GECKO_PIN(15)>;

	/* RMII interface pins */
	location-rmii        = <GECKO_LOCATION(0)>;
	location-rmii_refclk = <GECKO_LOCATION(0) GECKO_PORT_A GECKO_PIN(3)>;
	location-rmii_crs_dv = <GECKO_LOCATION(0) GECKO_PORT_A GECKO_PIN(4)>;
	location-rmii_txd0   = <GECKO_LOCATION(0) GECKO_PORT_E GECKO_PIN(15)>;
	location-rmii_txd1   = <GECKO_LOCATION(0) GECKO_PORT_E GECKO_PIN(14)>;
	location-rmii_tx_en  = <GECKO_LOCATION(0) GECKO_PORT_A GECKO_PIN(0)>;
	location-rmii_rxd0   = <GECKO_LOCATION(0) GECKO_PORT_A GECKO_PIN(2)>;
	location-rmii_rxd1   = <GECKO_LOCATION(0) GECKO_PORT_A GECKO_PIN(1)>;
	location-rmii_rx_er  = <GECKO_LOCATION(0) GECKO_PORT_A GECKO_PIN(5)>;

	status = "okay";
};

&flash0 {

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

		/* Set 12Kb of storage at the end of the 2048Kb of flash */
		storage_partition: partition@1fd000 {
			label = "storage";
			reg = <0x001fd000 0x00003000>;
		};
	};
};

&wdog0 {
	status = "okay";
};

&trng0 {
	status = "okay";
};

&cpu0 {
	clock-frequency = <72000000>;
};