/*
 * Copyright (c) 2022 Benjamin Björnsson <benjamin.bjornsson@gmail.com>.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	leds {
		compatible = "gpio-leds";
		red_led: led_0 {
			gpios = <&gpiok 5 GPIO_ACTIVE_LOW>;
		};
		green_led: led_1 {
			gpios = <&gpiok 6 GPIO_ACTIVE_LOW>;
		};
		blue_led: led_2 {
			gpios = <&gpiok 7 GPIO_ACTIVE_LOW>;
		};
	};

	aliases {
		led0 = &red_led;
		led1 = &green_led;
		led2 = &blue_led;
	};
};

&clk_hsi48 {
	/* HSI48 required for USB */
	status = "okay";
};

&rcc {
	d1cpre = <1>;
	hpre = <1>;
	d1ppre = <1>;
	d2ppre1 = <1>;
	d2ppre2 = <2>;
	d3ppre = <1>;
};

/* UART0 in datasheet */
&uart4 {
	pinctrl-0 = <&uart4_tx_pa0 &uart4_rx_pi9>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

/* UART1 in datasheet */
&usart1 {
	pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

/* UART2 in datasheet */
&usart6 {
	pinctrl-0 = <&usart6_tx_pg14 &usart6_rx_pg9>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

/* UART3 in datasheet */
&uart8 {
	pinctrl-0 = <&uart8_tx_pj8 &uart8_rx_pj9>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

/* I2C0 in datasheet */
&i2c3 {
	pinctrl-0 = <&i2c3_scl_ph7 &i2c3_sda_ph8>;
	pinctrl-names = "default";
	clock-frequency = <I2C_BITRATE_FAST>;
};

/* I2C1 in datasheet */
&i2c1 {
	pinctrl-0 = <&i2c1_scl_pb6 &i2c1_sda_pb7>;
	pinctrl-names = "default";
	clock-frequency = <I2C_BITRATE_FAST>;
};

/* I2C2 in datasheet */
&i2c4 {
	pinctrl-0 = <&i2c4_scl_ph11 &i2c4_sda_ph12>;
	pinctrl-names = "default";
	clock-frequency = <I2C_BITRATE_FAST>;
};

/* I2C3 in datasheet */
&i2c3 {
	pinctrl-0 = <&i2c3_scl_ph7 &i2c3_sda_ph8>;
	pinctrl-names = "default";
	clock-frequency = <I2C_BITRATE_FAST>;
};

/* SPI1 in datasheet */
&spi2 {
	pinctrl-0 = <&spi2_nss_pi0 &spi2_sck_pi1
		     &spi2_miso_pc2 &spi2_mosi_pc3>;
	pinctrl-names = "default";
};

&fdcan1 {
	pinctrl-0 = <&fdcan1_rx_pb8 &fdcan1_tx_ph13>;
	pinctrl-names = "default";
	clocks = <&rcc STM32_CLOCK_BUS_APB1_2 0x00000100>,
		 <&rcc STM32_SRC_PLL1_Q FDCAN_SEL(1)>;
};

&rtc {
	status = "okay";
};

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

&mailbox {
	status = "okay";
};
