1/*
2 * Copyright (c) 2020 Lucian Copeland for Adafruit Industries
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 "feather_connector.dtsi"
11
12/ {
13	model = "Adafruit Feather STM32F405 Express";
14	compatible = "adafruit,adafruit_feather_stm32f405", "st,stm32f405";
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	};
23
24	leds {
25		compatible = "gpio-leds";
26		led: led {
27			gpios = <&gpioc 1 GPIO_ACTIVE_HIGH>;
28			label = "User LED";
29		};
30	};
31
32	aliases {
33		led0 = &led;
34		spi-flash0 = &gd25q16;
35	};
36};
37
38&clk_lsi {
39	status = "okay";
40};
41
42&clk_hse {
43	clock-frequency = <DT_FREQ_M(12)>;
44	status = "okay";
45};
46
47&pll {
48	div-m = <12>;
49	mul-n = <336>;
50	div-p = <2>;
51	div-q = <7>;
52	clocks = <&clk_hse>;
53	status = "okay";
54};
55
56&rcc {
57	clocks = <&pll>;
58	clock-frequency = <DT_FREQ_M(168)>;
59	ahb-prescaler = <1>;
60	apb1-prescaler = <4>;
61	apb2-prescaler = <2>;
62};
63
64&usart3 {
65	pinctrl-0 = <&usart3_tx_pb10 &usart3_rx_pb11>;
66	pinctrl-names = "default";
67	current-speed = <115200>;
68	status = "okay";
69};
70
71&i2c1 {
72	pinctrl-0 = <&i2c1_scl_pb6 &i2c1_sda_pb7>;
73	pinctrl-names = "default";
74	status = "okay";
75	clock-frequency = <I2C_BITRATE_FAST>;
76};
77
78&spi1_nss_pa15 { slew-rate = "very-high-speed"; };
79
80&spi1 {
81	pinctrl-0 = <&spi1_nss_pa15 &spi1_sck_pb3
82		     &spi1_miso_pb4 &spi1_mosi_pb5>;
83	pinctrl-names = "default";
84	status = "okay";
85	cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
86	gd25q16: gd25q16c@0 {
87		compatible = "jedec,spi-nor";
88		reg = <0>;
89		spi-max-frequency = <80000000>;
90		size = <0x200000>;
91		has-dpd;
92		t-enter-dpd = <20000>;
93		t-exit-dpd = <100000>;
94		jedec-id = [c8 40 15];
95	};
96};
97
98&spi2 {
99	pinctrl-0 = <&spi2_sck_pb13 &spi2_miso_pb14 &spi2_mosi_pb15>;
100	pinctrl-names = "default";
101	status = "okay";
102};
103
104&rtc {
105	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>,
106		 <&rcc STM32_SRC_LSI RTC_SEL(2)>;
107	status = "okay";
108};
109
110zephyr_udc0: &usbotg_fs {
111	pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12>;
112	pinctrl-names = "default";
113	status = "okay";
114};
115