1/*
2 * Copyright (c) 2017, Erwin Rol <erwin@erwinrol.com>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <st/f4/stm32f407Xg.dtsi>
9#include <st/f4/stm32f407z(e-g)tx-pinctrl.dtsi>
10#include <zephyr/dt-bindings/input/input-event-codes.h>
11
12/ {
13	model = "Olimex STM32-E407 board";
14	compatible = "olimex,stm32-e407";
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		green_led_1: led_1 {
27			gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
28			label = "LED1";
29		};
30	};
31
32	gpio_keys {
33		compatible = "gpio-keys";
34		user_button: button {
35			label = "Key";
36			gpios = <&gpioa 0 GPIO_ACTIVE_LOW>;
37			zephyr,code = <INPUT_KEY_0>;
38		};
39	};
40
41	aliases {
42		led0 = &green_led_1;
43		sw0 = &user_button;
44	};
45};
46
47&clk_lsi {
48	status = "okay";
49};
50
51&clk_hse {
52	clock-frequency = <DT_FREQ_M(12)>;
53	status = "okay";
54};
55
56&pll {
57	div-m = <12>;
58	mul-n = <336>;
59	div-p = <2>;
60	div-q = <7>;
61	clocks = <&clk_hse>;
62	status = "okay";
63};
64
65&rcc {
66	clocks = <&pll>;
67	clock-frequency = <DT_FREQ_M(168)>;
68	ahb-prescaler = <1>;
69	apb1-prescaler = <4>;
70	apb2-prescaler = <2>;
71};
72
73&usart1 {
74	pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>;
75	pinctrl-names = "default";
76	current-speed = <115200>;
77	status = "okay";
78};
79
80&usart3 {
81	pinctrl-0 = <&usart3_tx_pb10 &usart3_rx_pb11>;
82	pinctrl-names = "default";
83	current-speed = <115200>;
84	status = "okay";
85};
86
87&usart6 {
88	pinctrl-0 = <&usart6_tx_pc6 &usart6_rx_pc7>;
89	pinctrl-names = "default";
90	current-speed = <115200>;
91	status = "okay";
92};
93
94&rtc {
95	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>,
96		 <&rcc STM32_SRC_LSI RTC_SEL(2)>;
97	status = "okay";
98};
99
100&rng {
101	status = "okay";
102};
103
104/* Only one interface should be enabled at a time: usbotg_fs or usbotg_hs */
105usb_otg1: &usbotg_fs {
106	pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12>;
107	pinctrl-names = "default";
108	status = "disabled";
109};
110
111zephyr_udc0: &usbotg_hs {
112	pinctrl-0 = <&usb_otg_hs_dm_pb14 &usb_otg_hs_dp_pb15>;
113	pinctrl-names = "default";
114	status = "okay";
115};
116
117&mac {
118	status = "okay";
119	pinctrl-0 = <&eth_mdc_pc1
120		     &eth_rxd0_pc4
121		     &eth_rxd1_pc5
122		     &eth_ref_clk_pa1
123		     &eth_mdio_pa2
124		     &eth_col_pa3
125		     &eth_crs_dv_pa7
126		     &eth_tx_en_pg11
127		     &eth_txd0_pg13
128		     &eth_txd1_pg14>;
129	pinctrl-names = "default";
130};
131