// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright (c) 2014 Protonic Holland
 */

/dts-v1/;
#include "imx6dl.dtsi"
#include "imx6qdl-prti6q.dtsi"
#include <dt-bindings/leds/common.h>

/ {
	model = "Protonic RVT board";
	compatible = "prt,prtrvt", "fsl,imx6dl";

	memory@10000000 {
		device_type = "memory";
		reg = <0x10000000 0x10000000>;
	};

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

		led-debug0 {
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};
};

&can1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_can1 &pinctrl_can1phy>;
	status = "okay";
};

&ecspi1 {
	cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi1>;
	status = "okay";

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <20000000>;
		#address-cells = <1>;
		#size-cells = <1>;
	};
};

&ecspi3 {
	cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi3>;
	status = "okay";

	nfc@0 {
		compatible = "ti,trf7970a";
		reg = <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_nfc>;
		spi-max-frequency = <2000000>;
		interrupts-extended = <&gpio5 14 IRQ_TYPE_LEVEL_LOW>;
		ti,enable-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>,
				  <&gpio5 11 GPIO_ACTIVE_LOW>;
		vin-supply = <&reg_3v3>;
		autosuspend-delay = <30000>;
		irq-status-read-quirk;
		en2-rf-quirk;
		status = "okay";
	};
};

&i2c3 {
	adc@49 {
		compatible = "ti,ads1015";
		reg = <0x49>;
		#address-cells = <1>;
		#size-cells = <0>;

		/* nc */
		channel@4 {
			reg = <4>;
			ti,gain = <3>;
			ti,datarate = <3>;
		};

		/* nc */
		channel@5 {
			reg = <5>;
			ti,gain = <3>;
			ti,datarate = <3>;
		};

		/* can1_l */
		channel@6 {
			reg = <6>;
			ti,gain = <3>;
			ti,datarate = <3>;
		};

		/* can1_h */
		channel@7 {
			reg = <7>;
			ti,gain = <3>;
			ti,datarate = <3>;
		};
	};

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

&pcie {
	status = "okay";
};

&usbh1 {
	status = "disabled";
};

&vpu {
	status = "disabled";
};

&iomuxc {
	pinctrl_can1phy: can1phy {
		fsl,pins = <
			/* CAN1_SR */
			MX6QDL_PAD_KEY_COL3__GPIO4_IO12	0x13070
			/* CAN1_TERM */
			MX6QDL_PAD_GPIO_0__GPIO1_IO00	0x1b0b0
		>;
	};

	pinctrl_ecspi1: ecspi1grp {
		fsl,pins = <
			MX6QDL_PAD_EIM_D17__ECSPI1_MISO		0x100b1
			MX6QDL_PAD_EIM_D18__ECSPI1_MOSI		0x100b1
			MX6QDL_PAD_EIM_D16__ECSPI1_SCLK		0x100b1
			/* CS */
			MX6QDL_PAD_EIM_D19__GPIO3_IO19		0x000b1
		>;
	};

	pinctrl_ecspi3: ecspi3grp {
		fsl,pins = <
			MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK	0x100b1
			MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI	0x100b1
			MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO	0x100b1
			MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24	0x000b1
		>;
	};

	pinctrl_leds: ledsgrp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_8__GPIO1_IO08		0x1b0b0
		>;
	};

	pinctrl_nfc: nfcgrp {
		fsl,pins = <
			/* NFC_ASK_OOK */
			MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09	0x100b1
			/* NFC_PWR_EN */
			MX6QDL_PAD_DISP0_DAT16__GPIO5_IO10	0x100b1
			/* NFC_EN2 */
			MX6QDL_PAD_DISP0_DAT17__GPIO5_IO11	0x100b1
			/* NFC_EN */
			MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12	0x100b1
			/* NFC_MOD */
			MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13	0x100b1
			/* NFC_IRQ */
			MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14	0x100b1
		>;
	};
};
