1/*
2 * Copyright (c) 2024 Pavlo Yadvychuk
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <st/f4/stm32f405Xg.dtsi>
9#include <st/f4/stm32f405rgtx-pinctrl.dtsi>
10#include <zephyr/dt-bindings/input/input-event-codes.h>
11
12/ {
13	model = "WeAct Studio STM32F405 Core Board";
14	compatible = "weact,stm32f405-core", "st,stm32f405";
15
16	chosen {
17		zephyr,console = &usart1;
18		zephyr,shell-uart = &usart1;
19		zephyr,sram = &sram0;
20		zephyr,flash = &flash0;
21		zephyr,ccm = &ccm0;
22	};
23
24	leds {
25		compatible = "gpio-leds";
26		led: led {
27			gpios = <&gpiob 2 GPIO_ACTIVE_HIGH>;
28			label = "User LED";
29		};
30	};
31
32	gpio_keys {
33		compatible = "gpio-keys";
34		user_button: button {
35			label = "User";
36			gpios = <&gpioc 13 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>;
37			zephyr,code = <INPUT_KEY_0>;
38		};
39	};
40
41	aliases {
42		led0 = &led;
43		sw0 = &user_button;
44		watchdog0 = &iwdg;
45		sdhc0 = &sdmmc1;
46	};
47};
48
49&clk_lsi {
50	status = "okay";
51};
52
53&clk_hse {
54	clock-frequency = <DT_FREQ_M(8)>;
55	status = "okay";
56};
57
58&pll {
59	div-m = <8>;
60	mul-n = <336>;
61	div-p = <2>;
62	div-q = <7>;
63	clocks = <&clk_hse>;
64	status = "okay";
65};
66
67&rcc {
68	clocks = <&pll>;
69	clock-frequency = <DT_FREQ_M(168)>;
70	ahb-prescaler = <1>;
71	apb1-prescaler = <4>;
72	apb2-prescaler = <2>;
73};
74
75&usart1 {
76	pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
77	pinctrl-names = "default";
78	current-speed = <115200>;
79	status = "okay";
80};
81
82&usart2 {
83	pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>;
84	pinctrl-names = "default";
85	current-speed = <115200>;
86	status = "okay";
87};
88
89&i2c1 {
90	pinctrl-0 = <&i2c1_scl_pb6 &i2c1_sda_pb7>;
91	pinctrl-names = "default";
92	status = "okay";
93	clock-frequency = <I2C_BITRATE_FAST>;
94};
95
96&spi1 {
97	pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>;
98	pinctrl-names = "default";
99	status = "okay";
100};
101
102&can1 {
103	pinctrl-0 = <&can1_rx_pb8 &can1_tx_pb9>;
104	pinctrl-names = "default";
105	status = "okay";
106};
107
108&sdmmc1 {
109	status = "okay";
110	pinctrl-0 = <&sdio_d0_pc8 &sdio_d1_pc9
111		     &sdio_d2_pc10 &sdio_d3_pc11
112		     &sdio_ck_pc12 &sdio_cmd_pd2>;
113	pinctrl-names = "default";
114	cd-gpios = <&gpioa 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
115};
116
117&rtc {
118	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>,
119		 <&rcc STM32_SRC_LSI RTC_SEL(2)>;
120	status = "okay";
121};
122
123zephyr_udc0: &usbotg_fs {
124	pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12>;
125	pinctrl-names = "default";
126	status = "okay";
127};
128
129&iwdg {
130	status = "okay";
131};
132
133&backup_sram {
134	status = "okay";
135};
136