Newer
Older
barebox / arch / arm / dts / imx6qdl-vicut1.dtsi
@Oleksij Rempel Oleksij Rempel on 18 Jun 2020 4 KB ARM: dts: imx6: add Protonic boards
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (c) 2014 Protonic Holland
 */

#include "imx6qdl-prti6q.dtsi"
#include <dt-bindings/input/input.h>

/ {
	gpio_key_pwr: gpio_keys {
		compatible = "gpio-keys";
		autorepeat;

		power {
			label = "GPIO Key Power";
			gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
			gpio-key,wakeup;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_leds>;

		debug0 {
			label = "debug0";
			gpios = <&gpio1 8 0>;
			linux,default-trigger = "heartbeat";
		};

		debug1 {
			label = "debug1";
			gpios = <&gpio1 9 0>;
			linux,default-trigger = "mmc";
		};

		power_led {
			label = "power_led";
			gpios = <&gpio2 24 0>;
			default-state = "on";
		};

		isb_led {
			label = "isb_led";
			gpios = <&gpio4 31 0>;
			default-state = "off";
		};
	};
};

&clks {
	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>;
	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>;
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	status = "okay";
};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3>;
	status = "okay";
};

&i2c3 {
	rtc: pcf8563@51 {
		compatible = "nxp,pcf8563";
		reg = <0x51>;
	};
};

&iomuxc {
	pinctrl_hog: hoggrp {
		fsl,pins = <
			/* SGTL5000 sys_mclk */
			MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1		0x030b0
			/* CAN1_SR + CAN2_SR GPIO outputs */
			MX6QDL_PAD_KEY_COL3__GPIO4_IO12		0x13070
			MX6QDL_PAD_KEY_ROW3__GPIO4_IO13		0x13070
			/* CAN1_TERM */
			MX6QDL_PAD_GPIO_0__GPIO1_IO00		0x1b0b0
			/* ITU656_nRESET */
			MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x1b0b0
			/* CAM1_MIRROR */
			MX6QDL_PAD_GPIO_3__GPIO1_IO03		0x130b0
			/* CAM2_MIRROR */
			MX6QDL_PAD_GPIO_4__GPIO1_IO04		0x130b0
			/* CAM_nDETECT */
			MX6QDL_PAD_GPIO_17__GPIO7_IO12		0x1b0b0
			/* nON_SWITCH */
			MX6QDL_PAD_EIM_CS0__GPIO2_IO23		0x1b0b0
			/* ISB_IN1 */
			MX6QDL_PAD_EIM_A16__GPIO2_IO22		0x130b0
			/* ISB_nIN2 */
			MX6QDL_PAD_EIM_A17__GPIO2_IO21		0x1b0b0
			/* WARN_LIGHT */
			MX6QDL_PAD_EIM_A19__GPIO2_IO19		0x100b0
			/* ON2_FB */
			MX6QDL_PAD_EIM_A25__GPIO5_IO02		0x100b0
			/* YACO_nIRQ */
			MX6QDL_PAD_EIM_D23__GPIO3_IO23		0x1b0b0
			/* YACO_BOOT0 */
			MX6QDL_PAD_EIM_D30__GPIO3_IO30		0x130b0
			/* YACO_nRESET */
			MX6QDL_PAD_EIM_D31__GPIO3_IO31		0x1b0b0
			/* FORCE_ON1 */
			MX6QDL_PAD_EIM_EB2__GPIO2_IO30		0x1b0b0
			/* AUDIO_nRESET */
			MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21	0x1f0b0
			/* ITU656_nPDN */
			MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20	0x1b0b0

			/* HW revision detect */
			/* REV_ID0 */
			MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x1b0b0
			/* REV_ID1 = PWM output LED_PWM (SION) */
			/* defined in &pinctrl_pwm3 */
			/* REV_ID2 */
			MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x1b0b0
			/* REV_ID3 */
			MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x1b0b0
			/* REV_ID4 */
			MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x1b0b0

			/* New in HW revision 1 */
			MX6QDL_PAD_EIM_D20__GPIO3_IO20	0x100b0 /* ON1_FB */
			MX6QDL_PAD_DI0_PIN2__GPIO4_IO18 0x1b0b0 /* DIP1_FB */

			/* New in UTC (UT1 HW revision 1) and TGO */
			/* WHEEL */
			MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x100b0
			/* RADAR */
			MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x100b0
			/* PTO */
			MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x100b0
			/* CPU_ON1_CTRL */
			MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x1b0b0
			/* CPU_ON2_CTRL */
			MX6QDL_PAD_DISP0_DAT1__GPIO4_IO22 0x1b0b0
			/* CPU_HITCH_IN_OUT */
			MX6QDL_PAD_DISP0_DAT2__GPIO4_IO23 0x100b0
			/* CPU_LIGHT_ON */
			MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x100b0
			/* CPU_CONTACT_IN */
			MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x100b0
		>;
	};

	pinctrl_usbotg: usbotggrp {
		fsl,pins = <
			MX6QDL_PAD_EIM_D21__USB_OTG_OC	0x1b0b0
			/* power enable, high active */
			MX6QDL_PAD_EIM_D22__GPIO3_IO22	0x1b0b0
		>;
	};

	/* YaCO AUX Uart */
	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
			MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
		>;
	};

	/* YaCO Touchscreen UART */
	pinctrl_uart3: uart3grp {
		fsl,pins = <
			MX6QDL_PAD_EIM_D24__UART3_TX_DATA	0x1b0b1
			MX6QDL_PAD_EIM_D25__UART3_RX_DATA	0x1b0b1
		>;
	};

	pinctrl_leds: ledsgrp {
		fsl,pins = <
			/* DEBUG0A */
			MX6QDL_PAD_DI0_DISP_CLK__GPIO4_IO16	0x1b0b0
			/* DEBUG1A */
			MX6QDL_PAD_DI0_PIN15__GPIO4_IO17	0x1b0b0
			/* DEBUG0 */
			MX6QDL_PAD_GPIO_8__GPIO1_IO08		0x1b0b0
			/* DEBUG1 */
			MX6QDL_PAD_GPIO_9__GPIO1_IO09		0x1b0b0
			/* POWER_LED */
			MX6QDL_PAD_EIM_CS1__GPIO2_IO24		0x1b0b0
			/* ISB_LED */
			MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31	0x1b0b0
		>;
	};

	pinctrl_pwm2: pwm2grp {
		fsl,pins = <
			/* ISB LED (not in TGO or UTC version 1+) */
			MX6QDL_PAD_DISP0_DAT9__PWM2_OUT		0x1b0b0
		>;
	};

	pinctrl_pwm3: pwm3grp {
		fsl,pins = <
			/* REV_ID1 = PWM output LED_PWM (SION for ID) */
			MX6QDL_PAD_SD4_DAT1__PWM3_OUT   0x4001b0b0
		>;
	};
};