// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2022 Toradex
 */

/dts-v1/;

#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include "imx6dl.dtsi"
#include "imx6qdl-colibri.dtsi"

/ {
	model = "Toradex Colibri iMX6DL/S on Colibri Iris Board";
	compatible = "toradex,colibri_imx6dl-iris", "toradex,colibri_imx6dl",
		     "fsl,imx6dl";

	aliases {
		i2c0 = &i2c2;
		i2c1 = &i2c3;
	};

	aliases {
		rtc0 = &rtc_i2c;
		rtc1 = &snvs_rtc;
	};

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

/* Colibri SSP */
&ecspi4 {
	status = "okay";
};

&gpio2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1_forceoff &pinctrl_uart23_forceoff>;

	/*
	 * uart-a-on-x13-enable turns the UART transceiver for UART_A on. If one
	 * wants to turn the transceiver off, that property has to be deleted
	 * and the gpio handled in userspace.
	 * The same applies to uart-b-c-on-x14-enable where the UART_B and
	 * UART_C transceiver is turned on.
	 */
	uart-a-on-x13-enable-hog {
		gpio-hog;
		gpios = <4 GPIO_ACTIVE_HIGH>; /* SODIMM 102 */
		output-high;
	};

	uart-b-c-on-x14-enable-hog {
		gpio-hog;
		gpios = <8 GPIO_ACTIVE_HIGH>; /* SODIMM 104 */
		output-high;
	};
};

/*
 * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
 */
&i2c3 {
	status = "okay";

	rtc_i2c: rtc@68 {
		compatible = "st,m41t0";
		reg = <0x68>;
	};
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <
		&pinctrl_gpio_iris
		&pinctrl_usbh_oc_1
		&pinctrl_usbc_id_1
	>;

	pinctrl_gpio_iris: gpioirisgrp {
		fsl,pins = <
			MX6QDL_PAD_EIM_A17__GPIO2_IO21	0x1b0b0
			MX6QDL_PAD_EIM_A18__GPIO2_IO20	0x1b0b0
			MX6QDL_PAD_EIM_A19__GPIO2_IO19	0x1b0b0
			MX6QDL_PAD_EIM_A20__GPIO2_IO18	0x1b0b0
			MX6QDL_PAD_EIM_A23__GPIO6_IO06	0x1b0b0
			MX6QDL_PAD_EIM_D27__GPIO3_IO27	0x1b0b0
			MX6QDL_PAD_NANDF_D3__GPIO2_IO03	0x1b0b0
			MX6QDL_PAD_SD2_DAT0__GPIO1_IO15	0x1b0b0
		>;
	};

	pinctrl_uart1_forceoff: uart1forceoffgrp {
		fsl,pins = <
			MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0
		>;
	};

	pinctrl_uart23_forceoff: uart23forceoffgrp {
		fsl,pins = <
			MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x1b0b0
		>;
	};
};

&pwm1 {
	status = "okay";
};

&pwm2 {
	status = "okay";
};

&pwm3 {
	status = "okay";
};

&pwm4 {
	status = "okay";
};

&reg_usb_host_vbus {
	status = "okay";
};

&uart1 {
	status = "okay";
};

&uart2 {
	status = "okay";
};

&uart3 {
	status = "okay";
};

&usbh1 {
	status = "okay";
};

&usbotg {
	status = "okay";
};

/* Colibri MMC */
&usdhc1 {
	status = "okay";
};
