1/*
2 * Copyright (c) 2017 Linaro Limited
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <st/f4/stm32f429Xi.dtsi>
9#include <st/f4/stm32f429zitx-pinctrl.dtsi>
10#include "arduino_r3_connector.dtsi"
11
12/ {
13	model = "STMicroelectronics STM32F429ZI-NUCLEO board";
14	compatible = "st,stm32f429zi-nucleo";
15
16	chosen {
17		zephyr,console = &usart3;
18		zephyr,shell-uart = &usart3;
19		zephyr,sram = &sram0;
20		zephyr,flash = &flash0;
21		zephyr,ccm = &ccm0;
22		zephyr,code-partition = &slot0_partition;
23	};
24
25	leds {
26		compatible = "gpio-leds";
27		green_led_1: led_1 {
28			gpios = <&gpiob 0 GPIO_ACTIVE_HIGH>;
29			label = "User LD1";
30		};
31		blue_led_1: led_2 {
32			gpios = <&gpiob 7 GPIO_ACTIVE_HIGH>;
33			label = "User LD2";
34		};
35		red_led_1: led_3 {
36			gpios = <&gpiob 14 GPIO_ACTIVE_HIGH>;
37			label = "User LD3";
38		};
39	};
40
41	gpio_keys {
42		compatible = "gpio-keys";
43		user_button: button {
44			label = "User";
45			gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
46		};
47	};
48
49	aliases {
50		led0 = &green_led_1;
51		led1 = &blue_led_1;
52		led2 = &red_led_1;
53		sw0 = &user_button;
54	};
55};
56
57&clk_hse {
58	hse-bypass;
59	clock-frequency = <DT_FREQ_M(8)>; /* STLink 8MHz clock */
60	status = "okay";
61};
62
63&pll {
64	div-m = <8>;
65	mul-n = <336>;
66	div-p = <2>;
67	div-q = <7>;
68	clocks = <&clk_hse>;
69	status = "okay";
70};
71
72&rcc {
73	clocks = <&pll>;
74	clock-frequency = <DT_FREQ_M(168)>; /* highest value to get a precise USB clock */
75	ahb-prescaler = <1>;
76	apb1-prescaler = <4>;
77	apb2-prescaler = <2>;
78};
79
80&adc1 {
81	pinctrl-0 = <&adc1_in0_pa0>;
82	status = "okay";
83};
84
85&dac1 {
86	status = "okay";
87	pinctrl-0 = <&dac_out1_pa4>;
88};
89
90&i2c1 {
91	pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb9>;
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	cs-gpios = <&gpiod 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
99	status = "okay";
100};
101
102&usart3 {
103	pinctrl-0 = <&usart3_tx_pd8 &usart3_rx_pd9>;
104	current-speed = <115200>;
105	status = "okay";
106};
107&usart6 {
108	pinctrl-0 = <&usart6_tx_pg14 &usart6_rx_pg9>;
109	current-speed = <115200>;
110	status = "okay";
111};
112
113zephyr_udc0: &usbotg_fs {
114	pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12>;
115	status = "okay";
116};
117
118&timers1 {
119	status = "okay";
120
121	pwm1: pwm {
122		status = "okay";
123		st,prescaler = <10000>;
124		pinctrl-0 = <&tim1_ch3_pe13>;
125	};
126};
127
128&rtc {
129	status = "okay";
130};
131
132&iwdg {
133	status = "okay";
134};
135
136&rng {
137	status = "okay";
138};
139
140&dma2 {
141	status = "okay";
142};
143
144&mac {
145	status = "okay";
146	pinctrl-0 = <&eth_mdc_pc1
147		     &eth_rxd0_pc4
148		     &eth_rxd1_pc5
149		     &eth_ref_clk_pa1
150		     &eth_mdio_pa2
151		     &eth_crs_dv_pa7
152		     &eth_tx_en_pg11
153		     &eth_txd0_pg13
154		     &eth_txd1_pb13>;
155};
156
157&flash0 {
158	/*
159	 * For more information, see:
160	 * https://docs.zephyrproject.org/latest/reference/devicetree/index.html#fixed-flash-partitions
161	 */
162	partitions {
163		compatible = "fixed-partitions";
164		#address-cells = <1>;
165		#size-cells = <1>;
166
167		/* 64KB for bootloader */
168		boot_partition: partition@0 {
169			label = "mcuboot";
170			reg = <0x00000000 0x00010000>;
171			read-only;
172		};
173
174		/* storage: 64KB for settings */
175		storage_partition: partition@10000 {
176			label = "storage";
177			reg = <0x00010000 0x00010000>;
178		};
179
180		/* application image slot: 256KB */
181		slot0_partition: partition@20000 {
182			label = "image-0";
183			reg = <0x00020000 0x00040000>;
184		};
185
186		/* backup slot: 256KB */
187		slot1_partition: partition@60000 {
188			label = "image-1";
189			reg = <0x00060000 0x00040000>;
190		};
191
192		/* swap slot: 128KB */
193		scratch_partition: partition@a0000 {
194			label = "image-scratch";
195			reg = <0x000a0000 0x00020000>;
196		};
197
198	};
199};
200