// 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 {
		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";

	nor@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>;
	};
};
