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

#include "arduino_r3_connector.dtsi"
#include "pmod_connector.dtsi"

/ {
	leds {
		compatible = "gpio-leds";
		green_led_1:led_1 {
			gpios = <&gpioi 12 GPIO_ACTIVE_LOW>;
			label = "User LD1";
			status = "disabled";
		};
		orange_led_2:led_2 {
			gpios = <&gpioi 13 GPIO_ACTIVE_LOW>;
			label = "User LD2";
			status = "disabled";
		};
		red_led_3:led_3 {
			gpios = <&gpioi 14 GPIO_ACTIVE_LOW>;
			label = "User LD3";
			status = "disabled";
		};
		blue_led_4:led_4 {
			gpios = <&gpioi 15 GPIO_ACTIVE_LOW>;
			label = "User LD4";
			status = "disabled";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		wake_up: button {
			label = "Wakeup";
			gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
			status = "disabled";
		};
		joy_center: joystick_center {
			label = "joystick center";
			gpios = <&gpiok 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			status = "disabled";
		};
		joy_down: joystick_down {
			label = "joystick down";
			gpios = <&gpiok 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			status = "disabled";
		};
		joy_up: joystick_up {
			label = "joystick up";
			gpios = <&gpiok 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			status = "disabled";
		};
		joy_left: joystick_left {
			label = "joystick left";
			gpios = <&gpiok 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			status = "disabled";
		};
		joy_right: joystick_right {
			label = "joystick right";
			gpios = <&gpiok 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			status = "disabled";
		};
	};

	dsi_lcd_qsh_030: connector_dsi_lcd {
		compatible = "st,dsi-lcd-qsh-030";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = <4 0 &gpiok 7 0>,	/* TOUCH_INT */
			   <35 0 &gpioe 5 0>,	/* SCLK/MCLK */
			   <37 0 &gpioe 4 0>,	/* LRCLK */
			   <39 0 &gpioe 6 0>,	/* I2S */
			   <40 0 &gpiod 13 0>,	/* I2C4_SDA */
			   <44 0 &gpiod 12 0>,	/* I2C4_SCL */
			   <45 0 &gpioa 8 0>,	/* CEC_CLK */
			   <47 0 &gpiob 6 0>,	/* CEC */
			   <49 0 &gpioj 2 0>,	/* DSI_TE */
			   <53 0 &gpioj 12 0>,	/* LCD_BL_CTRL */
			   <57 0 &gpiog 3 0>;	/* DSI_RESET */
	};
};

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

&usart1 {
	pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

&uart8 {
	pinctrl-0 = <&uart8_tx_pj8 &uart8_rx_pj9>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

&spi5 {
	pinctrl-0 = <&spi5_nss_pk1 &spi5_sck_pk0
		     &spi5_miso_pj11 &spi5_mosi_pj10>;
	pinctrl-names = "default";
};
