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

#include <arm/armv7-m.dtsi>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/i2c/i2c.h>
#include "gpio_gecko.h"

/ {
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,cortex-m4f";
			reg = <0>;
		};
	};

	sram0: memory@20000000 {
	       device_type = "memory";
	       compatible = "mmio-sram";
	};

	soc {
		flash-controller@40000000 {
			compatible = "silabs,gecko-flash-controller";
			label = "FLASH_CTRL";
			reg = <0x40000000 0x110>;
			interrupts = <33 0>;

			#address-cells = <1>;
			#size-cells = <1>;

			flash0: flash@0 {
				compatible = "soc-nv-flash";
				label = "FLASH_0";
				write-block-size = <4>;
				erase-block-size = <4096>;
			};
		};

		rtcc0: rtcc@40062000 { /* RTCC0 */
			compatible = "silabs,gecko-rtcc";
			reg = <0x40062000 0x184>;
			interrupts = <31 0>;
			clock-frequency = <32768>;
			prescaler = <1>;
			status = "disabled";
			label = "RTCC_0";
		};

		uart0: uart@40014000 { /* UART0 */
			compatible = "silabs,gecko-uart";
			reg = <0x40014000 0x400>;
			interrupts = <21 0 22 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <0>;
			status = "disabled";
			label = "UART_0";
		};

		uart1: uart@40014400 { /* UART1 */
			compatible = "silabs,gecko-uart";
			reg = <0x40014400 0x400>;
			interrupts = <23 0 24 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <1>;
			status = "disabled";
			label = "UART_1";
		};

		usart0: usart@40010000 { /* USART0 */
			compatible = "silabs,gecko-usart";
			reg = <0x40010000 0x400>;
			interrupts = <6 0 7 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <0>;
			status = "disabled";
			label = "USART_0";
		};

		usart1: usart@40010400 { /* USART1 */
			compatible = "silabs,gecko-usart";
			reg = <0x40010400 0x400>;
			interrupts = <17 0 18 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <1>;
			status = "disabled";
			label = "USART_1";
		};

		usart2: usart@40010800 { /* USART2 */
			compatible = "silabs,gecko-usart";
			reg = <0x40010800 0x400>;
			interrupts = <19 0 20 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <2>;
			status = "disabled";
			label = "USART_2";
		};

		usart3: usart@40010c00 { /* USART3 */
			compatible = "silabs,gecko-usart";
			reg = <0x40010c00 0x400>;
			interrupts = <37 0 38 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <3>;
			status = "disabled";
			label = "USART_3";
		};

		usart4: usart@40011000 { /* USART4 */
			compatible = "silabs,gecko-usart";
			reg = <0x40011000 0x400>;
			interrupts = <39 0 40 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <4>;
			status = "disabled";
			label = "USART_4";
		};

		usart5: usart@40011400 { /* USART5 */
			compatible = "silabs,gecko-usart";
			reg = <0x40011400 0x400>;
			interrupts = <50 0 51 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <5>;
			status = "disabled";
			label = "USART_5";
		};

		leuart0: leuart@4006a000 { /* LEUART0 */
			compatible = "silabs,gecko-leuart";
			reg = <0x4006a000 0x400>;
			interrupts = <25 0>;
			peripheral-id = <0>;
			status = "disabled";
			label = "LEUART_0";
		};

		leuart1: leuart@4006a400 { /* LEUART1 */
			compatible = "silabs,gecko-leuart";
			reg = <0x4006a400 0x400>;
			interrupts = <26 0>;
			peripheral-id = <1>;
			status = "disabled";
			label = "LEUART_1";
		};

		i2c0: i2c@40089000 {
			compatible = "silabs,gecko-i2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40089000 0x400>;
			interrupts = <11 0>;
			label = "I2C_0";
			status = "disabled";
		};

		i2c1: i2c@40089400 {
			compatible = "silabs,gecko-i2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40089400 0x400>;
			interrupts = <12 0>;
			label = "I2C_1";
			status = "disabled";
		};

		i2c2: i2c@40089800 {
			compatible = "silabs,gecko-i2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40089800 0x400>;
			interrupts = <45 0>;
			label = "I2C_2";
			status = "disabled";
		};

		gpio: gpio@40088400 {
			compatible = "silabs,efm32-gpio";
			reg = <0x40088400 0xc00>;
			interrupts = <3 2 13 2>;
			interrupt-names = "GPIO_EVEN", "GPIO_ODD";
			label = "GPIO";

			ranges;
			#address-cells = <1>;
			#size-cells = <1>;

			gpioa: gpio@40088000 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x40088000 0x30>;
				label = "GPIO_A";
				gpio-controller;
				#gpio-cells = <2>;
			};

			gpiob: gpio@40088030 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x40088030 0x30>;
				label = "GPIO_B";
				gpio-controller;
				#gpio-cells = <2>;
			};

			gpioc: gpio@40088060 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x40088060 0x30>;
				label = "GPIO_C";
				gpio-controller;
				#gpio-cells = <2>;
			};

			gpiod: gpio@40088090 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x40088090 0x30>;
				label = "GPIO_D";
				gpio-controller;
				#gpio-cells = <2>;
			};

			gpioe: gpio@400880c0 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x400880c0 0x30>;
				label = "GPIO_E";
				gpio-controller;
				#gpio-cells = <2>;
			};

			gpiof: gpio@400880f0 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x400880f0 0x30>;
				label = "GPIO_F";
				gpio-controller;
				#gpio-cells = <2>;
			};

			gpiog: gpio@40088120 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x40088120 0x30>;
				label = "GPIO_G";
				gpio-controller;
				#gpio-cells = <2>;
			};

			gpioh: gpio@40088150 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x40088150 0x30>;
				label = "GPIO_H";
				gpio-controller;
				#gpio-cells = <2>;
			};

			gpioi: gpio@40088180 {
				compatible = "silabs,efm32-gpio-port";
				reg = <0x40088180 0x30>;
				label = "GPIO_I";
				gpio-controller;
				#gpio-cells = <2>;
			};
		};
	};
};

&nvic {
	arm,num-irq-priority-bits = <3>;
};
