/*
 * Copyright (c) 2017 I-SENSE group of ICCS
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/f3/stm32f303Xc.dtsi>
#include <st/f3/stm32f303v(b-c)tx-pinctrl.dtsi>

/ {
	model = "STMicroelectronics STM32F3DISCOVERY board";
	compatible = "st,stm32f3discovery";

	chosen {
		zephyr,console = &usart1;
		zephyr,shell-uart = &usart1;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,canbus = &can1;
	};

	leds {
		compatible = "gpio-leds";
		red_led_3: led_3 {
			gpios = <&gpioe 9 GPIO_ACTIVE_HIGH>;
			label = "User LD3";
		};
		blue_led_4: led_4 {
			gpios = <&gpioe 8 GPIO_ACTIVE_HIGH>;
			label = "User LD4";
		};
		orange_led_5: led_5 {
			gpios = <&gpioe 10 GPIO_ACTIVE_HIGH>;
			label = "User LD5";
		};
		green_led_6: led_6 {
			gpios = <&gpioe 15 GPIO_ACTIVE_HIGH>;
			label = "User LD6";
		};
		green_led_7: led_7 {
			gpios = <&gpioe 11 GPIO_ACTIVE_HIGH>;
			label = "User LD7";
		};
		orange_led_8: led_8 {
			gpios = <&gpioe 14 GPIO_ACTIVE_HIGH>;
			label = "User LD8";
		};
		blue_led_9: led_9 {
			gpios = <&gpioe 12 GPIO_ACTIVE_HIGH>;
			label = "User LD9";
		};
		red_led_10: led_10 {
			gpios = <&gpioe 13 GPIO_ACTIVE_HIGH>;
			label = "User LD10";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button {
			label = "User";
			gpios = <&gpioa 0 GPIO_ACTIVE_LOW>;
		};
	};

	aliases {
		led0 = &green_led_6;
		led1 = &green_led_7;
		sw0 = &user_button;
	};
};

&clk_hse {
	hse-bypass;
	clock-frequency = <DT_FREQ_M(8)>; /* STLink 8MHz clock */
	status = "okay";
};

&pll {
	prediv = <1>;
	mul = <9>;
	clocks = <&clk_hse>;
	status = "okay";
};

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

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

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

&uart4 {
	pinctrl-0 = <&uart4_tx_pc10 &uart4_rx_pc11>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

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

	lsm303dlhc-magn@1e {
		compatible = "st,lsm303dlhc-magn";
		reg = <0x1e>;
		label = "LSM303DLHC-MAGN";
	};

	lsm303dlhc-accel@19 {
		compatible = "st,lis2dh", "st,lsm303dlhc-accel";
		reg = <0x19>;
		irq-gpios = <&gpioe 4 GPIO_ACTIVE_HIGH>,
			  <&gpioe 5 GPIO_ACTIVE_HIGH>;
		label = "LSM303DLHC-ACCEL";
	};
};

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

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

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

zephyr_udc0: &usb {
	pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>;
	pinctrl-names = "default";
	status = "okay";
};

&rtc {
	status = "okay";
};

&can1 {
	pinctrl-0 = <&can_rx_pd0 &can_tx_pd1>;
	pinctrl-names = "default";
	status = "okay";
	bus-speed = <125000>;
};

&flash0 {

	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		/* Set 6Kb of storage at the end of the 256Kb of flash */
		storage_partition: partition@3e800 {
			label = "storage";
			reg = <0x0003e800 DT_SIZE_K(6)>;
		};
	};
};

&iwdg {
	status = "okay";
};

&timers1 {
	st,prescaler = <10000>;
	status = "okay";
	pwm1: pwm {
		status = "okay";
		pinctrl-0 = <&tim1_ch1_pa8>;
		pinctrl-names = "default";
	};
};

&adc1 {
	pinctrl-0 = <&adc1_in1_pa0>;
	pinctrl-names = "default";
	status = "okay";
};

&dac1 {
	status = "okay";
	/* dac output pins(pa4,pa5,pa6) might conflict with spi1 pins */
	pinctrl-0 = <&dac_out1_pa4>;
	pinctrl-names = "default";
};

&dma1 {
	status = "okay";
};
