/* SPDX-License-Identifier: Apache-2.0 */

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

/ {
	chosen {
		zephyr,flash-controller = &msc;
	};

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

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

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

	soc {
		msc: flash-controller@400c0000 {
			compatible = "silabs,gecko-flash-controller";
			label = "FLASH_CTRL";
			reg = <0x400c0000 0x78>;
			interrupts = <35 0>;

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

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

		usart0: usart@4000c000 { /* USART0 */
			compatible = "silabs,gecko-usart";
			reg = <0x4000c000 0x400>;
			interrupts = <3 0>, <4 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <0>;
			status = "disabled";
			label = "UART_0";
		};

		usart1: usart@4000c400 { /* USART1 */
			compatible = "silabs,gecko-usart";
			reg = <0x4000c400 0x400>;
			interrupts = <15 0>, <16 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <1>;
			status = "disabled";
			label = "UART_1";
		};

		usart2: usart@4000c800 { /* USART2 */
			compatible = "silabs,gecko-usart";
			reg = <0x4000c800 0x400>;
			interrupts = <18 0>, <19 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <2>;
			status = "disabled";
			label = "UART_2";
		};

		uart0: uart@4000e000 { /* UART0 */
			compatible = "silabs,gecko-uart";
			reg = <0x4000e000 0x400>;
			interrupts = <20 0>, <21 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <0>;
			status = "disabled";
			label = "UART_3";
		};

		uart1: uart@4000e400 { /* UART1 */
			compatible = "silabs,gecko-uart";
			reg = <0x4000e400 0x400>;
			interrupts = <22 0>, <23 0>;
			interrupt-names = "rx", "tx";
			peripheral-id = <1>;
			status = "disabled";
			label = "UART_4";
		};

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

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

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

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

		gpio@40006100 {
			compatible = "silabs,gecko-gpio";
			reg = <0x40006100 0xf00>;
			interrupts = <1 2 11 2>;
			interrupt-names = "GPIO_EVEN", "GPIO_ODD";
			label = "GPIO";

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

			gpioa: gpio@40006000 {
				compatible = "silabs,gecko-gpio-port";
				reg = <0x40006000 0x24>;
				peripheral-id = <0>;
				label = "GPIO_A";
				gpio-controller;
				#gpio-cells = <2>;
				status = "disabled";
			};

			gpiob: gpio@40006024 {
				compatible = "silabs,gecko-gpio-port";
				reg = <0x40006024 0x24>;
				peripheral-id = <1>;
				label = "GPIO_B";
				gpio-controller;
				#gpio-cells = <2>;
				status = "disabled";
			};

			gpioc: gpio@40006048 {
				compatible = "silabs,gecko-gpio-port";
				reg = <0x40006048 0x24>;
				peripheral-id = <2>;
				label = "GPIO_C";
				gpio-controller;
				#gpio-cells = <2>;
				status = "disabled";
			};

			gpiod: gpio@4000606c {
				compatible = "silabs,gecko-gpio-port";
				reg = <0x4000606c 0x24>;
				peripheral-id = <3>;
				label = "GPIO_D";
				gpio-controller;
				#gpio-cells = <2>;
				status = "disabled";
			};

			gpioe: gpio@40006090 {
				compatible = "silabs,gecko-gpio-port";
				reg = <0x40006090 0x24>;
				peripheral-id = <4>;
				label = "GPIO_E";
				gpio-controller;
				#gpio-cells = <2>;
				status = "disabled";
			};

			gpiof: gpio@400060b4 {
				compatible = "silabs,gecko-gpio-port";
				reg = <0x400060b4 0x24>;
				peripheral-id = <5>;
				label = "GPIO_F";
				gpio-controller;
				#gpio-cells = <2>;
				status = "disabled";
			};
		};
	};
};

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