// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
/*
 * Copyright (C) 2020 Marek Vasut <marex@denx.de>
 */

#include <dt-bindings/input/input.h>
#include <dt-bindings/pwm/pwm.h>

/ {
	aliases {
		serial0 = &uart4;
		serial1 = &usart3;
		serial2 = &uart8;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	led {
		compatible = "gpio-leds";

		led-0 {
			label = "yellow:led";
			gpios = <&gpioi 3 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};
};

&adc {
	status = "disabled";
};

&dac {
	status = "disabled";
};

&fmc {
	status = "disabled";
};

&gpioa {
	/*
	 * NOTE: The USB Port on the PicoITX needs a PWR_EN signal to enable
	 * port power. This signal should be handled by USB power sequencing
	 * in order to turn on port power when USB bus is powered up, but so
	 * far there is no such functionality.
	 */
	usb-port-power-hog {
		gpio-hog;
		gpios = <13 0>;
		output-low;
		line-name = "usb-port-power";
	};
};

&gpioc {
	gpio-line-names = "", "", "", "",
			  "", "", "PicoITX-In1", "",
			  "", "", "", "",
			  "", "", "", "";
};

&gpiod {
	gpio-line-names = "", "", "", "",
			  "", "", "DHCOM-B", "",
			  "", "", "", "PicoITX-Out1",
			  "PicoITX-Out2", "", "", "";
};

&gpiog {
	gpio-line-names = "PicoITX-In2", "", "", "",
			  "", "", "", "",
			  "DHCOM-L", "", "", "",
			  "", "", "", "";
};

&i2c2 {	/* On board-to-board connector (optional) */
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins_a>;
	i2c-scl-rising-time-ns = <185>;
	i2c-scl-falling-time-ns = <20>;
	status = "okay";
	/* spare dmas for other usage */
	/delete-property/dmas;
	/delete-property/dma-names;
};

&i2c5 {	/* On board-to-board connector */
	pinctrl-names = "default";
	pinctrl-0 = <&i2c5_pins_a>;
	i2c-scl-rising-time-ns = <185>;
	i2c-scl-falling-time-ns = <20>;
	status = "okay";
	/* spare dmas for other usage */
	/delete-property/dmas;
	/delete-property/dma-names;
};

&ksz8851 {
	status = "disabled";
};

&usart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&usart3_pins_a>;
	/delete-property/dmas;
	/delete-property/dma-names;
	status = "okay";
};

&uart8 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart8_pins_a &uart8_rtscts_pins_a>;
	/delete-property/dmas;
	/delete-property/dma-names;
	status = "okay";
};

&usbh_ehci {
	phys = <&usbphyc_port0>;
	status = "okay";
};

&usbh_ohci {
	phys = <&usbphyc_port0>;
	status = "okay";
};

&usbotg_hs {
	dr_mode = "otg";
	pinctrl-0 = <&usbotg_hs_pins_a>;
	pinctrl-names = "default";
	phy-names = "usb2-phy";
	phys = <&usbphyc_port1 0>;
	vbus-supply = <&vbus_otg>;
	status = "okay";
};

&usbphyc {
	status = "okay";
};

&usbphyc_port0 {
	phy-supply = <&vdd_usb>;
};

&usbphyc_port1 {
	phy-supply = <&vdd_usb>;
};
