/*
 * Copyright (c) 2020 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <st/f4/stm32f427vi.dtsi>
#include <st/f4/stm32f427v(g-i)tx-pinctrl.dtsi>

/ {
	model = "96Boards Gumstix AeroCore 2";
	compatible = "gumstix,aerocore2";

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

	leds {
		compatible = "gpio-leds";
		yellow_led_1: led_1 {
			gpios = <&gpioe 10 GPIO_ACTIVE_HIGH>;
			label = "USR1 LED";
		};
		blue_led_2: led_2 {
			gpios = <&gpioe 9 GPIO_ACTIVE_HIGH>;
			label = "USR2 LED";
		};
	};

	aliases {
		led0 = &yellow_led_1;
		led1 = &blue_led_2;
	};

};

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

&pll {
	div-m = <24>;
	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>;
};

&usart1 {
	pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&usart2 {
	pinctrl-0 = <&usart2_tx_pd5 &usart2_rx_pd6>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&usart3 {
	pinctrl-0 = <&usart3_tx_pd8 &usart3_rx_pd9>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&uart7 {
	pinctrl-0 = <&uart7_tx_pe8 &uart7_rx_pe7>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&uart8 {
	pinctrl-0 = <&uart8_tx_pe1 &uart8_rx_pe0>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

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

&spi1 {
	pinctrl-0 = <&spi1_nss_pa4 &spi1_sck_pa5
		     &spi1_miso_pa6 &spi1_mosi_pa7>;
	pinctrl-names = "default";
	status = "okay";
};

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

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

&spi3 {
	pinctrl-0 = <&spi3_sck_pc10 &spi3_miso_pc11 &spi3_mosi_pc12>;
	pinctrl-names = "default";
	status = "okay";
};

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

&spi4 {
	pinctrl-0 = <&spi4_nss_pe11 &spi4_sck_pe12
		     &spi4_miso_pe13 &spi4_mosi_pe14>;
	pinctrl-names = "default";
	status = "okay";
};

&i2c2 {
	pinctrl-0 = <&i2c2_scl_pb10 &i2c2_sda_pb11>;
	pinctrl-names = "default";
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

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

&timers4 {
	status = "okay";

	pwm4: pwm {
		status = "okay";
		pinctrl-0 = <&tim4_ch1_pd12
			     &tim4_ch2_pd13
			     &tim4_ch3_pd14
			     &tim4_ch4_pd15>;
		pinctrl-names = "default";
	};
};

&timers5 {
	status = "okay";

	pwm5: pwm {
		status = "okay";
		pinctrl-0 = <&tim5_ch1_pa0
			     &tim5_ch2_pa1
			     &tim5_ch3_pa2
			     &tim5_ch4_pa3>;
		pinctrl-names = "default";
	};
};

&adc1 {
	pinctrl-0 = <&adc1_in10_pc0 &adc1_in11_pc1
		     &adc1_in12_pc2 &adc1_in13_pc3>;
	pinctrl-names = "default";
	status = "okay";
};

&rng {
	status = "okay";
};
