/*
 * Copyright (c) 2019 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/wb/stm32wb55Xg.dtsi>

/ {
	model = "STMicroelectronics STM32WB55RG-NUCLEO board";
	compatible = "st,stm32wb55rg-nucleo", "st,stm32wb55rg";

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

	leds {
		compatible = "gpio-leds";
		blue_led_1: led_0 {
			gpios = <&gpiob 5 GPIO_INT_ACTIVE_HIGH>;
			label = "User LED1";
		};
		green_led_2: led_1 {
			gpios = <&gpiob 0 GPIO_INT_ACTIVE_HIGH>;
			label = "User LED2";
		};
		green_led_3: led_2 {
			gpios = <&gpiob 1 GPIO_INT_ACTIVE_HIGH>;
			label = "User LED3";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_1: button_0 {
			label = "SW1";
			gpios = <&gpioc 4 GPIO_INT_ACTIVE_LOW>;
		};
		user_button_2: button_1 {
			label = "SW2";
			gpios = <&gpiod 0 GPIO_INT_ACTIVE_LOW>;
		};
		user_button_3: button_2 {
			label = "SW3";
			gpios = <&gpiod 1 GPIO_INT_ACTIVE_LOW>;
		};
	};

	aliases {
		led0 = &green_led_2;
		sw0 = &user_button_1;
		sw1 = &user_button_2;
	};
};

&usart1 {
	current-speed = <115200>;
	status = "ok";
};
