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

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

/ {
	model = "Silicon Labs EFM32GG STK3701A board";
	compatible = "silabs,efm32gg_stk3701a", "silabs,efm32gg11b";

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

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

	leds {
		compatible = "gpio-leds";
		led0: led_0 {
			gpios = <&gpioh 10 0>;
			label = "LED 0";
		};
		led1: led_1 {
			gpios = <&gpioh 13 0>;
			label = "LED 1";
		};
	};

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

&usart0 {
	current-speed = <115200>;
	location-rx = <GECKO_LOCATION(0) GECKO_PORT_E GECKO_PIN(11)>;
	location-tx = <GECKO_LOCATION(0) GECKO_PORT_E GECKO_PIN(10)>;
	status = "okay";
};

&usart4 {
	current-speed = <115200>;
	location-rx = <GECKO_LOCATION(4) GECKO_PORT_H GECKO_PIN(5)>;
	location-tx = <GECKO_LOCATION(4) GECKO_PORT_H GECKO_PIN(4)>;
	status = "okay";
};

&leuart0 {
	current-speed = <9600>;
	location-rx = <GECKO_LOCATION(18) GECKO_PORT_D GECKO_PIN(11)>;
	location-tx = <GECKO_LOCATION(18) GECKO_PORT_D GECKO_PIN(10)>;
	status = "okay";
};

&i2c0 {
	location-sda = <GECKO_LOCATION(4) GECKO_PORT_C GECKO_PIN(0)>;
	location-scl = <GECKO_LOCATION(4) GECKO_PORT_C GECKO_PIN(1)>;
	status = "okay";
};

&i2c1 {
	location-sda = <GECKO_LOCATION(0) GECKO_PORT_C GECKO_PIN(4)>;
	location-scl = <GECKO_LOCATION(0) GECKO_PORT_C GECKO_PIN(5)>;
	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";
};

&gpiog {
	status = "okay";
};

&gpioh {
	status = "okay";
};

&gpioi {
	status = "okay";
};

&eth0 {
	/* local-mac-address = <>;*/

	/* PHY address = 0 */
	phy-address = <0>;

	/* PHY management pins */
	location-mdio        = <GECKO_LOCATION(1)>;
	location-phy_mdc     = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(14)>;
	location-phy_mdio    = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(13)>;

	/* RMII interface pins */
	location-rmii        = <GECKO_LOCATION(1)>;
	location-rmii_refclk = <GECKO_LOCATION(5) GECKO_PORT_D GECKO_PIN(10)>;
	location-rmii_crs_dv = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(11)>;
	location-rmii_txd0   = <GECKO_LOCATION(1) GECKO_PORT_F GECKO_PIN(7)>;
	location-rmii_txd1   = <GECKO_LOCATION(1) GECKO_PORT_F GECKO_PIN(6)>;
	location-rmii_tx_en  = <GECKO_LOCATION(1) GECKO_PORT_F GECKO_PIN(8)>;
	location-rmii_rxd0   = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(9)>;
	location-rmii_rxd1   = <GECKO_LOCATION(1) GECKO_PORT_F GECKO_PIN(9)>;
	location-rmii_rx_er  = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(12)>;

	status = "okay";
};

&flash0 {
	/*
	 * For more information, see:
	 * https://docs.zephyrproject.org/latest/guides/dts/legacy-macros.html#legacy-flash-partitions
	 */
	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>;
		};
	};
};
