/*
 * 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;
		watchdog0 = &wdog0;
	};

	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 {
	/* 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 {

	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>;
};
