1/*
2 * Copyright (c) 2024 STMicroelectronics
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <st/h5/stm32h533Xe.dtsi>
9#include <st/h5/stm32h533retx-pinctrl.dtsi>
10#include "arduino_r3_connector.dtsi"
11#include "st_morpho_connector.dtsi"
12#include <zephyr/dt-bindings/input/input-event-codes.h>
13
14/ {
15	model = "STMicroelectronics STM32H533RE-NUCLEO board";
16	compatible = "st,stm32h533re-nucleo";
17
18	chosen {
19		zephyr,console = &usart2;
20		zephyr,shell-uart = &usart2;
21		zephyr,sram = &sram1;
22		zephyr,flash = &flash0;
23	};
24
25	leds: leds {
26		compatible = "gpio-leds";
27		green_led_2: led_42 {
28			gpios = <&gpioa 5 GPIO_ACTIVE_LOW>;
29			label = "User LD2";
30		};
31	};
32
33
34	pwmleds {
35		compatible = "pwm-leds";
36
37		green_pwm_led: green_pwm_led {
38			pwms = <&pwm3 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
39		};
40	};
41
42	gpio_keys {
43		compatible = "gpio-keys";
44		user_button: button {
45			label = "User";
46			gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
47			zephyr,code = <INPUT_KEY_0>;
48		};
49	};
50
51	aliases {
52		led0 = &green_led_2;
53		pwm-led0 = &green_pwm_led;
54		sw0 = &user_button;
55		watchdog0 = &iwdg;
56		die-temp0 = &die_temp;
57		volt-sensor0 = &vref;
58		volt-sensor1 = &vbat;
59	};
60};
61
62&clk_csi {
63	status = "okay";
64};
65
66&clk_hsi {
67	status = "okay";
68};
69
70&clk_hse {
71	clock-frequency = <DT_FREQ_M(24)>;
72	status = "okay";
73};
74
75&pll {
76	div-m = <2>;
77	mul-n = <40>;
78	div-p = <2>;
79	div-q = <2>;
80	div-r = <2>;
81	clocks = <&clk_hse>;
82	status = "okay";
83};
84
85&rcc {
86	clocks = <&pll>;
87	clock-frequency = <DT_FREQ_M(240)>;
88	ahb-prescaler = <1>;
89	apb1-prescaler = <1>;
90	apb2-prescaler = <1>;
91	apb3-prescaler = <1>;
92};
93
94&usart1 {
95	pinctrl-0 = <&usart1_tx_pb14 &usart1_rx_pb15>;
96	pinctrl-names = "default";
97	current-speed = <115200>;
98	status = "okay";
99};
100
101&usart2 {
102	pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>;
103	pinctrl-names = "default";
104	current-speed = <115200>;
105	status = "okay";
106};
107
108&spi1 {
109	pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>;
110	pinctrl-names = "default";
111	cs-gpios = <&gpioc 9 GPIO_ACTIVE_LOW>;
112	status = "okay";
113};
114
115&iwdg {
116	status = "okay";
117};
118
119&timers3 {
120	st,prescaler = <1000>;
121	status = "okay";
122
123	pwm3: pwm {
124		pinctrl-0 = <&tim3_ch3_pb0>;
125		pinctrl-names = "default";
126		status = "okay";
127	};
128};
129
130&adc1 {
131	clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000400>,
132		 <&rcc STM32_SRC_HCLK ADCDAC_SEL(0)>;
133	pinctrl-0 = <&adc1_inp0_pa0>; /* Arduino A0 */
134	pinctrl-names = "default";
135	st,adc-clock-source = "ASYNC";
136	st,adc-prescaler = <8>;
137	status = "okay";
138};
139
140&die_temp {
141	status = "okay";
142};
143
144&vref {
145	status = "okay";
146};
147
148&vbat {
149	status = "okay";
150};
151
152&rng {
153	status = "okay";
154};
155
156&clk_lse {
157	status = "okay";
158};
159
160&rtc {
161	clocks = <&rcc STM32_CLOCK_BUS_APB3 0x00200000>,
162		 <&rcc STM32_SRC_LSE RTC_SEL(1)>;
163	status = "okay";
164};
165
166&clk_hsi48 {
167	status = "okay";
168};
169
170zephyr_udc0: &usb {
171	pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>;
172	pinctrl-names = "default";
173	status = "okay";
174};
175