/*
 * Copyright (c) 2022 BrainCo Inc.
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <gigadevice/gd32l23x/gd32l233rc.dtsi>
#include "gd32l233r_eval-pinctrl.dtsi"

/ {
	model = "GigaDevice GD32L233R Evaluation Kit";
	compatible = "gd,gd32l233r-eval";

	chosen {
		zephyr,sram = &sram;
		zephyr,flash = &flash0;
		zephyr,console = &usart1;
		zephyr,shell-uart = &usart1;
		zephyr,flash-controller = &fmc;
	};

	leds {
		compatible = "gpio-leds";
		led2: led2 {
			gpios = <&gpioc 7 GPIO_ACTIVE_HIGH>;
			label = "LED2";
		};
		led3: led3 {
			gpios = <&gpioc 8 GPIO_ACTIVE_HIGH>;
			label = "LED3";
		};
		led4: led4 {
			gpios = <&gpioc 9 GPIO_ACTIVE_HIGH>;
			label = "LED4";
		};
		led5: led5 {
			gpios = <&gpioc 11 GPIO_ACTIVE_HIGH>;
			label = "LED5";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		wakeup_key: wakeup_key {
			label = "WAKEUP_KEY";
			gpios = <&gpioa 0 GPIO_ACTIVE_LOW>;
		};
		tamper_key: tamper_key {
			label = "TAMPER_KEY";
			gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
		};
	};

	aliases {
		led0 = &led2;
		led1 = &led3;
	};
};

&gpioa {
	status = "okay";
};

&gpiob {
	status = "okay";
};

&gpioc {
	status = "okay";
};

&gpiod {
	status = "okay";
};

&gpiof {
	status = "okay";
};

&usart1 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&usart1_default>;
	pinctrl-names = "default";
};

&adc0 {
	status = "okay";
	pinctrl-0 = <&adc0_default>;
	pinctrl-names = "default";
};
