1/*
2 * Copyright (c) 2024 STMicroelectronics
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <st/u0/stm32u083Xc.dtsi>
9#include <st/u0/stm32u083rctx-pinctrl.dtsi>
10#include "arduino_r3_connector.dtsi"
11#include <zephyr/dt-bindings/input/input-event-codes.h>
12
13/ {
14	model = "STMicroelectronics STM32U83RC-NUCLEO board";
15	compatible = "st,stm32u083rc-nucleo";
16
17	#address-cells = <1>;
18	#size-cells = <1>;
19
20	chosen {
21		zephyr,console = &usart2;
22		zephyr,shell-uart = &usart2;
23		zephyr,sram = &sram0;
24		zephyr,flash = &flash0;
25	};
26
27	leds: leds {
28		compatible = "gpio-leds";
29		green_led_1: led_4 {
30			gpios = <&gpioa 5 GPIO_ACTIVE_HIGH>;
31			label = "User LD4";
32		};
33	};
34
35	gpio_keys {
36		compatible = "gpio-keys";
37		user_button: button {
38			label = "User";
39			gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
40			zephyr,code = <INPUT_KEY_0>;
41		};
42	};
43
44	aliases {
45		led0 = &green_led_1;
46		sw0 = &user_button;
47		watchdog0 = &iwdg;
48	};
49};
50
51&usart1 {
52	pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
53	pinctrl-names = "default";
54	current-speed = <115200>;
55	status = "okay";
56};
57
58&usart2 {
59	pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>;
60	pinctrl-names = "default";
61	current-speed = <115200>;
62	status = "okay";
63};
64
65&iwdg {
66	status = "okay";
67};
68
69&clk_hsi {
70	status = "okay";
71};
72
73&clk_hsi48 {
74	status = "okay";
75};
76
77&clk_lse {
78	status = "okay";
79};
80
81&clk_lsi {
82	status = "okay";
83};
84
85&pll {
86	div-m = <1>;
87	mul-n = <6>;
88	div-p = <2>;
89	div-q = <2>;
90	div-r = <2>;
91	clocks = <&clk_hsi>;
92	status = "okay";
93};
94
95&rcc {
96	clocks = <&pll>;
97	clock-frequency = <DT_FREQ_M(48)>;
98	ahb-prescaler = <1>;
99	apb1-prescaler = <1>;
100};
101
102&dac1 {
103	status = "okay";
104	pinctrl-0 = <&dac1_out1_pa4>;
105	pinctrl-names = "default";
106};
107
108&i2c1 {
109	pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb9>;
110	pinctrl-names = "default";
111	status = "okay";
112	clock-frequency = <I2C_BITRATE_FAST>;
113};
114
115&adc1 {
116	pinctrl-0 = <&adc1_in0_pc0 &adc1_in1_pc1>;
117	pinctrl-names = "default";
118	st,adc-clock-source = "ASYNC";
119	clocks = <&rcc STM32_CLOCK_BUS_APB1_2 0x00100000>,
120		 <&rcc STM32_SRC_HSI ADC_SEL(2)>;
121	st,adc-prescaler = <4>;
122	status = "okay";
123	vref-mv = <3300>;
124};
125
126&timers1 {
127	st,prescaler = <10000>;
128	status = "okay";
129
130	pwm1: pwm {
131		status = "okay";
132		pinctrl-0 = <&tim1_ch1_pa8>;
133		pinctrl-names = "default";
134	};
135};
136
137&timers2 {
138	st,prescaler = <10000>;
139	status = "okay";
140
141	pwm2: pwm {
142		pinctrl-0 = <&tim2_ch1_pa5>;
143		pinctrl-names = "default";
144		status = "okay";
145	};
146};
147
148stm32_lp_tick_source: &lptim1 {
149	clocks = <&rcc STM32_CLOCK(APB1, 31U)>,
150		<&rcc STM32_SRC_LSI LPTIM1_SEL(1)>;
151	status = "okay";
152};
153
154&spi1{
155	pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>;
156	cs-gpios = <&gpioa 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
157	pinctrl-names = "default";
158	status = "okay";
159};
160
161&dma1 {
162	status = "okay";
163};
164
165&dmamux1 {
166	status = "okay";
167};
168
169&rng {
170	clocks = <&rcc STM32_CLOCK(AHB1, 18U)>,
171		<&rcc STM32_SRC_HSI48 CLK48_SEL(1)>;
172	status = "okay";
173};
174
175&aes {
176	status = "okay";
177};
178
179zephyr_udc0: &usb {
180	clocks = <&rcc STM32_CLOCK(APB1, 13U)>,
181		 <&rcc STM32_SRC_HSI48 CLK48_SEL(1)>;
182	pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>;
183	pinctrl-names = "default";
184	status = "okay";
185};
186
187&rtc {
188	clocks = <&rcc STM32_CLOCK(APB1, 10U)>,
189		 <&rcc STM32_SRC_LSE RTC_SEL(1)>;
190	status = "okay";
191};
192