1/*
2 * Copyright (c) 2024 STMicroelectronics
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <st/wb0/stm32wb05Xz.dtsi>
9#include <st/wb0/stm32wb05kzvx-pinctrl.dtsi>
10#include <zephyr/dt-bindings/input/input-event-codes.h>
11
12#include "arduino_r3_connector.dtsi"
13
14/ {
15	model = "STMicroelectronics STM32WB05KZ-NUCLEO board";
16	compatible = "st,stm32wb05kz-nucleo";
17
18	#address-cells = <1>;
19	#size-cells = <1>;
20
21	chosen {
22		zephyr,console = &usart1;
23		zephyr,shell-uart = &usart1;
24		zephyr,sram = &sram0;
25		zephyr,flash = &flash0;
26		zephyr,bt-c2h-uart = &usart1;
27	};
28
29	leds: leds {
30		compatible ="gpio-leds";
31		blue_led_1: led_0 {
32			gpios = <&gpiob 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
33		};
34		green_led_1: led_1 {
35			gpios = <&gpiob 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
36		};
37		red_led_1: led_2 {
38			gpios = <&gpiob 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
39		};
40	};
41
42	gpio_keys {
43		compatible = "gpio-keys";
44		user_button_1: button_0 {
45			label = "SW1";
46			gpios = <&gpioa 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
47			zephyr,code = <INPUT_KEY_0>;
48		};
49		user_button_2: button_1 {
50			label = "SW2";
51			gpios = <&gpiob 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
52			zephyr,code = <INPUT_KEY_1>;
53		};
54		user_button_3: button_2 {
55			label = "SW3";
56			gpios = <&gpiob 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
57			zephyr,code = <INPUT_KEY_2>;
58		};
59	};
60
61	aliases {
62		led0 = &blue_led_1;
63		led1 = &green_led_1;
64		led2 = &red_led_1;
65		sw0 = &user_button_1;
66		sw1 = &user_button_2;
67		sw2 = &user_button_3;
68	};
69};
70
71&pwrc {
72	smps-mode = "RUN";
73	smps-bom = <3>;
74};
75
76&clk_lse {
77	status = "okay";
78};
79
80&clk_hse {
81	status = "okay";
82};
83
84&clk_hsi {
85	status = "okay";
86};
87
88&pll {
89	status = "okay";
90};
91
92&rcc {
93	clocks = <&pll>;
94	clock-frequency = <DT_FREQ_M(64)>;
95	clksys-prescaler = <1>;
96	slow-clock = <&clk_lse>;
97};
98
99&bt_hci_wb0 {
100	status = "okay";
101};
102
103&usart1 {
104	pinctrl-0 = <&usart1_tx_pa1 &usart1_rx_pb0>;
105	pinctrl-names = "default";
106	current-speed = <115200>;
107	status = "okay";
108};
109
110&i2c1 {
111	pinctrl-0 = <&i2c1_scl_pb6 &i2c1_sda_pb7>;
112	pinctrl-names = "default";
113	status = "okay";
114};
115
116&spi3 {
117	pinctrl-0 = <&spi3_nss_pa9 &spi3_sck_pb3 &spi3_miso_pa8 &spi3_mosi_pa11>;
118	pinctrl-names = "default";
119	status = "okay";
120	/* Select 64MHz clock for SPI3 */
121	clocks = <&rcc STM32_CLOCK_BUS_APB1 (1 << 14)>,
122		<&rcc STM32_SRC_SYSCLK SPI3_I2S3_SEL(3)>;
123};
124
125&flash0 {
126	partitions {
127		compatible = "fixed-partitions";
128		#address-cells = <1>;
129		#size-cells = <1>;
130		/* Set 8KB of storage at the end of 192KB flash */
131		storage_partition: partition@2e000 {
132			label = "storage";
133			reg = <0x0002e000 DT_SIZE_K(8)>;
134		};
135	};
136};
137