1/*
2 * Copyright (c)  2025 STMicroelectronics
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <st/wba/stm32wba65Xi.dtsi>
9#include <st/wba/stm32wba65rivx-pinctrl.dtsi>
10#include "arduino_r3_connector.dtsi"
11#include <zephyr/dt-bindings/input/input-event-codes.h>
12
13/ {
14	model = "STMicroelectronics STM32WBA65RI-NUCLEO board";
15	compatible = "st,stm32wba65ri-nucleo";
16
17	#address-cells = <1>;
18	#size-cells = <1>;
19
20	chosen {
21		zephyr,bt-c2h-uart = &usart1;
22		zephyr,console = &usart1;
23		zephyr,shell-uart = &usart1;
24		zephyr,sram = &sram0;
25		zephyr,flash = &flash0;
26	};
27
28	leds: leds {
29		compatible = "gpio-leds";
30
31		blue_led_1: led_0 {
32			gpios = <&gpiod 8 GPIO_ACTIVE_LOW>;
33			label = "User LD1";
34		};
35
36		green_led_2: led_1 {
37			gpios = <&gpioc 4 GPIO_ACTIVE_LOW>;
38			label = "User LD2";
39		};
40
41		red_led_3: led_2 {
42			gpios = <&gpiob 8 GPIO_ACTIVE_LOW>;
43			label = "User LD3";
44		};
45	};
46
47	gpio_keys {
48		compatible = "gpio-keys";
49
50		user_button_1: button_0 {
51			label = "User B1";
52			gpios = <&gpioc 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
53			zephyr,code = <INPUT_KEY_0>;
54		};
55
56		user_button_2: button_1 {
57			label = "User B2";
58			gpios = <&gpioc 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
59			zephyr,code = <INPUT_KEY_1>;
60		};
61
62		user_button_3: button_2 {
63			label = "User B3";
64			gpios = <&gpiob 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
65			zephyr,code = <INPUT_KEY_2>;
66		};
67	};
68
69	aliases {
70		led0 = &blue_led_1;
71		led1 = &green_led_2;
72		led2 = &red_led_3;
73		sw0 = &user_button_1;
74		sw1 = &user_button_2;
75		sw2 = &user_button_3;
76		mcuboot-led0 = &blue_led_1;
77		mcuboot-button0 = &user_button_1;
78		die-temp0 = &die_temp;
79	};
80};
81
82&clk_lse {
83	status = "okay";
84};
85
86&clk_hse {
87	hse-div2;
88	status = "okay";
89};
90
91&clk_hsi {
92	status = "okay";
93};
94
95&rcc {
96	clocks = <&clk_hse>;
97	clock-frequency = <DT_FREQ_M(16)>;
98	ahb-prescaler = <1>;
99	ahb5-prescaler = <2>;
100	apb1-prescaler = <1>;
101	apb2-prescaler = <2>;
102	apb7-prescaler = <1>;
103};
104
105&iwdg {
106	status = "okay";
107};
108
109&rtc {
110	status = "okay";
111	clocks = <&rcc STM32_CLOCK(APB7, 21)>,
112			<&rcc STM32_SRC_LSE RTC_SEL(1)>;
113	prescaler = <32768>;
114};
115
116&usart1 {
117	clocks = <&rcc STM32_CLOCK(APB2, 14)>,
118		 <&rcc STM32_SRC_HSI16 USART1_SEL(2)>;
119	pinctrl-0 = <&usart1_tx_pb12 &usart1_rx_pa8>;
120	pinctrl-1 = <&analog_pb12 &analog_pa8>;
121	pinctrl-names = "default", "sleep";
122	current-speed = <115200>;
123	status = "okay";
124};
125
126&spi2 {
127	pinctrl-0 = <&spi2_nss_pb9 &spi2_sck_pb10
128		     &spi2_miso_pa9 &spi2_mosi_pc3>;
129	pinctrl-names = "default";
130	status = "okay";
131};
132
133&i2c1 {
134	pinctrl-0 = <&i2c1_scl_pb2 &i2c1_sda_pb1>;
135	pinctrl-names = "default";
136	status = "okay";
137	clock-frequency = <I2C_BITRATE_FAST>;
138};
139
140&adc4 {
141	pinctrl-0 = <&adc4_in8_pa1>;
142	pinctrl-names = "default";
143	st,adc-clock-source = "ASYNC";
144	st,adc-prescaler = <4>;
145	status = "okay";
146};
147
148&die_temp {
149	status = "okay";
150};
151
152stm32_lp_tick_source: &lptim1 {
153	clocks = <&rcc STM32_CLOCK(APB7, 11)>,
154		 <&rcc STM32_SRC_LSE LPTIM1_SEL(3)>;
155	status = "okay";
156};
157
158&rng {
159	status = "okay";
160};
161
162&flash0 {
163	partitions {
164		compatible = "fixed-partitions";
165		#address-cells = <1>;
166		#size-cells = <1>;
167
168		storage_partition: partition@1c0000 {
169			label = "storage";
170			reg = <0x001c0000 DT_SIZE_K(256)>;
171		};
172	};
173};
174