// SPDX-License-Identifier: GPL-2.0+
//
// Copyright (C) 2016-2018 Vladimir Zapolskiy <vz@mleia.com>

/dts-v1/;

#include "imx31.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	model = "LogicPD i.MX31 Lite";
	compatible = "logicpd,imx31-lite", "fsl,imx31";

	chosen {
		stdout-path = &uart1;
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x8000000>;
	};

	leds {
		compatible = "gpio-leds";

		led0 {
			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
		};

		led1 {
			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
		};
	};
};

&ata {
	status = "okay";
};

&nfc {
	nand-bus-width = <8>;
	nand-ecc-mode = "hw";
	nand-on-flash-bbt;
	status = "okay";
};

&sdhci1 {
	bus-width = <4>;
	cd-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
	wp-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&spi2 {
	status = "okay";

	pmic@0 {
		compatible = "fsl,mc13783";
		reg = <0>;
		spi-cs-high;
		spi-max-frequency = <1000000>;
		interrupt-parent = <&gpio1>;
		interrupts = <3 IRQ_TYPE_EDGE_RISING>;

		fsl,mc13xxx-uses-adc;
		fsl,mc13xxx-uses-rtc;

		regulators {
			sw1a {		/* QVCC */
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
			};

			sw1b {		/* QVCC */
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
			};

			sw2a {		/* 1.8V_DDR, NVCC2, NVCC21 and NVCC22 */
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
			};

			sw2b {		/* NVCC10 */
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
			};

			violo {		/* NVCC1 and NVCC7 */
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
			};

			viohi {		/* VIOHI */
				regulator-min-microvolt = <2775000>;
				regulator-max-microvolt = <2775000>;
				regulator-always-on;
				regulator-boot-on;
			};

			vaudio {	/* VAUDIO */
				regulator-min-microvolt = <2775000>;
				regulator-max-microvolt = <2775000>;
			};

			vcam {		/* NVCC4 */
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
			};

			vgen {		/* NVCC5 / NVCC8 and NVCC6 / NVCC9 */
				regulator-min-microvolt = <2775000>;
				regulator-max-microvolt = <2775000>;
				regulator-always-on;
				regulator-boot-on;
			};

			vmmc2 {		/* NVCC3 */
				regulator-min-microvolt = <1600000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
				regulator-boot-on;
			};
		};
	};
};

&uart1 {
	uart-has-rtscts;
	status = "okay";
};

/* Routed to the extension board */
&uart2 {
	uart-has-rtscts;
	status = "okay";
};

/* Routed to the extension board */
&uart3 {
	uart-has-rtscts;
	status = "okay";
};

&weim {
	status = "okay";

	flash@0,0 {
		compatible = "cfi-flash";
		reg = <0 0x0 0x200000>;
		bank-width = <2>;
		linux,mtd-name = "physmap-flash.0";
		fsl,weim-cs-timing = <0x0000cf03 0xa0330d01 0x00220800>;
	};

	ethernet@4,0 {
		compatible = "smsc,lan9117", "smsc,lan9115";
		reg = <4 0x0 0x100>;
		interrupt-parent = <&gpio1>;
		interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
		phy-mode = "mii";
		reg-io-width = <2>;
		smsc,irq-push-pull;
		fsl,weim-cs-timing = <0x00008701 0x04000541 0x00010000>;
	};
};
