/*
 * Copyright (c) 2022 YuLong Yao <feilongphone@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <gigadevice/gd32vf103Xb.dtsi>
#include "gd32vf103c_starter-pinctrl.dtsi"

/ {
	model = "GigaDevice GD32VF103C-STARTER";
	compatible = "gd,gd32vf103c-starter";

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

	leds {
		compatible = "gpio-leds";
		led1: led1 {
			gpios = <&gpioa 7 GPIO_ACTIVE_HIGH>;
			label = "LED1";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		key_a: key_a {
			label = "KEY_A";
			gpios = <&gpioa 0 GPIO_ACTIVE_LOW>;
		};
	};

	pwmleds {
		compatible = "pwm-leds";

		/* NOTE: pwm_led and led1 are share same pin (PA7). */
		/* When CONFIG_PWM=y it can only be controlled using the PWM API. */
		pwm_led: pwm_led {
			pwms = <&pwm2 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
		};
	};

	aliases {
		led0 = &led1;
		sw0 = &key_a;
		pwm-led0 = &pwm_led;
	};
};

&gpioa {
	status = "okay";
};

&gpiob {
	status = "okay";
};

&gpioc {
	status = "okay";
};

&gpioe {
	status = "okay";
};

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

&timer2 {
	status = "okay";
	prescaler = <128>;

	pwm2: pwm {
		status = "okay";
		pinctrl-0 = <&pwm2_default>;
		pinctrl-names = "default";
	};
};
