/*
 * Copyright (c) 2020 Lucian Copeland for Adafruit Industries
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/f4/stm32f405Xg.dtsi>
#include <st/f4/stm32f405rgtx-pinctrl.dtsi>
#include "feather_connector.dtsi"

/ {
	model = "Adafruit Feather STM32F405 Express";
	compatible = "st,adafruit_feather_stm32f405", "st,stm32f405";

	chosen {
		zephyr,console = &usart3;
		zephyr,shell-uart = &usart3;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,ccm = &ccm0;
	};

	leds {
		compatible = "gpio-leds";
		led: led {
			gpios = <&gpioc 1 GPIO_ACTIVE_HIGH>;
			label = "User LED";
		};
	};

	aliases {
		led0 = &led;
	};
};

&clk_hse {
	clock-frequency = <DT_FREQ_M(12)>;
	status = "okay";
};

&pll {
	div-m = <12>;
	mul-n = <336>;
	div-p = <2>;
	div-q = <7>;
	clocks = <&clk_hse>;
	status = "okay";
};

&rcc {
	clocks = <&pll>;
	clock-frequency = <DT_FREQ_M(168)>;
	ahb-prescaler = <1>;
	apb1-prescaler = <4>;
	apb2-prescaler = <2>;
};

&usart3 {
	pinctrl-0 = <&usart3_tx_pb10 &usart3_rx_pb11>;
	current-speed = <115200>;
	status = "okay";
};

&i2c1 {
	pinctrl-0 = <&i2c1_scl_pb6 &i2c1_sda_pb7>;
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&spi1_nss_pa15 { slew-rate = "very-high-speed"; };

&spi1 {
	pinctrl-0 = <&spi1_nss_pa15 &spi1_sck_pb3
		     &spi1_miso_pb4 &spi1_mosi_pb5>;
	status = "okay";
	cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
	gd25q16: gd25q16c@0 {
		compatible = "jedec,spi-nor";
		label = "GD25Q16C";
		reg = <0>;
		spi-max-frequency = <80000000>;
		size = <0x200000>;
		has-dpd;
		t-enter-dpd = <20000>;
		t-exit-dpd = <100000>;
		jedec-id = [c8 40 15];
	};
};

&spi2 {
	pinctrl-0 = <&spi2_sck_pb13 &spi2_miso_pb14 &spi2_mosi_pb15>;
	status = "okay";
};

&rtc {
	status = "okay";
};

&usbotg_fs {
	pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12>;
	status = "okay";
};
