/*
 * Copyright (c) 2016 Andreas Färber
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This library is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This library is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

#include "imx6sx.dtsi"

/ {
	compatible = "fsl,imx6sx";

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

	leds {
		compatible = "gpio-leds";

		red {
			label = "udoo-neo:red:mmc";
			gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			linux,default-trigger = "mmc0";
		};

		orange {
			label = "udoo-neo:orange:user";
			gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};
	};

	reg_sdio_pwr: regulator-sdio-pwr {
		compatible = "regulator-fixed";
		gpio = <&gpio6 1 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-name = "SDIO_PWR";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
	};

	reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_otg1_reg>;
		regulator-name = "usb_otg1_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_otg2_reg>;
		regulator-name = "usb_otg2_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio4 12 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_wlan: regulator-wlan {
		compatible = "regulator-fixed";
		regulator-name = "wlan-en-regulator";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <70000>;
		enable-active-high;
	};

	reg_bt: regulator-bt {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_bt_reg>;
		enable-active-high;
		gpio = <&gpio2 17 GPIO_ACTIVE_HIGH>;
		regulator-name = "bt_reg";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};
};

&fec1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet1>;
	phy-mode = "rmii";
	phy-reset-duration = <10>;
	phy-reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
};

&i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c1>;
	clock-frequency = <100000>;
	status = "okay";

	pmic: pmic@8 {
		compatible = "fsl,pfuze3000";
		reg = <0x08>;

		regulators {
			sw1a_reg: sw1a {
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1475000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			sw1c_reg: sw1b {
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1475000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			sw2_reg: sw2 {
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <1850000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3a_reg: sw3 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1650000>;
				regulator-boot-on;
				regulator-always-on;
			};

			swbst_reg: swbst {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5150000>;
			};

			snvs_reg: vsnvs {
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <3000000>;
				regulator-boot-on;
				regulator-always-on;
			};

			vref_reg: vrefddr {
				regulator-boot-on;
				regulator-always-on;
			};

			vgen1_reg: vldo1 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen2_reg: vldo2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
			};

			vgen3_reg: vccsd {
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen4_reg: v33 {
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen5_reg: vldo3 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen6_reg: vldo4 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};
		};
	};
};

&iomuxc {
	pinctrl_bt_reg: btreggrp {
		fsl,pins =
			<MX6SX_PAD_KEY_ROW2__GPIO2_IO_17        0x15059>;
	};

	pinctrl_enet1: enet1grp {
		fsl,pins =
			<MX6SX_PAD_ENET1_CRS__GPIO2_IO_1	0xa0b1>,
			<MX6SX_PAD_ENET1_MDC__ENET1_MDC		0xa0b1>,
			<MX6SX_PAD_ENET1_MDIO__ENET1_MDIO	0xa0b1>,
			<MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0	0xa0b1>,
			<MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1	0xa0b1>,
			<MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN	0xa0b1>,

			<MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1	0x3081>,
			<MX6SX_PAD_ENET2_TX_CLK__GPIO2_IO_9	0x3081>,
			<MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0	0x3081>,
			<MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1	0x3081>,
			<MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN	0x3081>,
			<MX6SX_PAD_RGMII1_RXC__ENET1_RX_ER	0x3081>,

			<MX6SX_PAD_ENET2_RX_CLK__ENET2_REF_CLK_25M	0x91>;
	};

	pinctrl_i2c1: i2c1grp {
		fsl,pins =
			<MX6SX_PAD_GPIO1_IO00__I2C1_SCL		0x4001b8b1>,
			<MX6SX_PAD_GPIO1_IO01__I2C1_SDA		0x4001b8b1>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins =
			<MX6SX_PAD_GPIO1_IO04__UART1_TX		0x1b0b1>,
			<MX6SX_PAD_GPIO1_IO05__UART1_RX		0x1b0b1>;
	};

	pinctrl_uart2: uart2grp {
		fsl,pins =
			<MX6SX_PAD_GPIO1_IO06__UART2_TX		0x1b0b1>,
			<MX6SX_PAD_GPIO1_IO07__UART2_RX		0x1b0b1>;
	};

	pinctrl_uart3: uart3grp {
		fsl,pins =
			<MX6SX_PAD_SD3_DATA4__UART3_RX          0x13059>,
			<MX6SX_PAD_SD3_DATA5__UART3_TX          0x13059>,
			<MX6SX_PAD_SD3_DATA6__UART3_RTS_B       0x13059>,
			<MX6SX_PAD_SD3_DATA7__UART3_CTS_B       0x13059>;
	};

	pinctrl_uart5: uart5grp {
		fsl,pins =
			<MX6SX_PAD_SD4_DATA4__UART5_RX		0x1b0b1>,
			<MX6SX_PAD_SD4_DATA5__UART5_TX		0x1b0b1>;
	};

	pinctrl_uart6: uart6grp {
		fsl,pins =
			<MX6SX_PAD_CSI_DATA00__UART6_RI_B	0x1b0b1>,
			<MX6SX_PAD_CSI_DATA01__UART6_DSR_B	0x1b0b1>,
			<MX6SX_PAD_CSI_DATA02__UART6_DTR_B	0x1b0b1>,
			<MX6SX_PAD_CSI_DATA03__UART6_DCD_B	0x1b0b1>,
			<MX6SX_PAD_CSI_DATA04__UART6_RX		0x1b0b1>,
			<MX6SX_PAD_CSI_DATA05__UART6_TX		0x1b0b1>,
			<MX6SX_PAD_CSI_DATA06__UART6_RTS_B	0x1b0b1>,
			<MX6SX_PAD_CSI_DATA07__UART6_CTS_B	0x1b0b1>;
	};

	pinctrl_otg1_reg: otg1grp {
		fsl,pins =
			<MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9        0x10b0>;
	};


	pinctrl_otg2_reg: otg2grp {
		fsl,pins =
			<MX6SX_PAD_NAND_RE_B__GPIO4_IO_12        0x10b0>;
	};

	pinctrl_usb_otg1: usbotg1grp {
		fsl,pins =
			<MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID    0x17059>,
			<MX6SX_PAD_GPIO1_IO08__USB_OTG1_OC       0x10b0>;
	};

	pinctrl_usb_otg2: usbot2ggrp {
		fsl,pins =
			<MX6SX_PAD_QSPI1A_DATA0__USB_OTG2_OC     0x10b0>;
	};

	pinctrl_usdhc2: usdhc2grp {
		fsl,pins =
			<MX6SX_PAD_SD2_CMD__USDHC2_CMD		0x17059>,
			<MX6SX_PAD_SD2_CLK__USDHC2_CLK		0x10059>,
			<MX6SX_PAD_SD2_DATA0__USDHC2_DATA0	0x17059>,
			<MX6SX_PAD_SD2_DATA1__USDHC2_DATA1	0x17059>,
			<MX6SX_PAD_SD2_DATA2__USDHC2_DATA2	0x17059>,
			<MX6SX_PAD_SD2_DATA3__USDHC2_DATA3	0x17059>,
			<MX6SX_PAD_SD1_DATA0__GPIO6_IO_2	0x17059>; /* CD */
	};

	pinctrl_usdhc3: usdhc3grp {
		fsl,pins =
			<MX6SX_PAD_KEY_COL2__GPIO2_IO_12	0x15059>,
			<MX6SX_PAD_KEY_ROW1__GPIO2_IO_16	0x13059>,
			<MX6SX_PAD_SD3_DATA0__USDHC3_DATA0	0x17069>,
			<MX6SX_PAD_SD3_DATA1__USDHC3_DATA1	0x17069>,
			<MX6SX_PAD_SD3_DATA2__USDHC3_DATA2	0x17069>,
			<MX6SX_PAD_SD3_DATA3__USDHC3_DATA3	0x17069>,
			<MX6SX_PAD_SD3_CMD__USDHC3_CMD		0x17069>,
			<MX6SX_PAD_SD3_CLK__USDHC3_CLK		0x10069>,
			<MX6SX_PAD_CSI_MCLK__OSC32K_32K_OUT	0x10059>;
	};
};

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

/* Cortex-M4 serial */
&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart2>;
	status = "disabled";
};

&uart3 { /* Bluetooth */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3>;
	uart-has-rtscts;
	status = "okay";
};

/* Arduino serial */
&uart5 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart5>;
	status = "disabled";
};

&uart6 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart6>;
	uart-has-rtscts;
	status = "disabled";
};

&usbotg1 { /* J2 micro USB port */
	vbus-supply = <&reg_usb_otg1_vbus>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb_otg1>;
	status = "okay";
};

&usbotg2 { /* J3 host USB port */
	vbus-supply = <&reg_usb_otg2_vbus>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb_otg2>;
	dr_mode = "host";
	status = "okay";
};

&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc2>;
	vmmc-supply = <&reg_sdio_pwr>;
	bus-width = <4>;
	cd-gpios = <&gpio6 2 GPIO_ACTIVE_LOW>;
	no-1-8-v;
	keep-power-in-suspend;
	wakeup-source;
	status = "okay";
};

&usdhc3 { /* Wi-Fi */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc3>;
	non-removable;
	vmmc-supply = <&reg_wlan>;
	cap-power-off-card;
	wakeup-source;
	keep-power-in-suspend;
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	wlcore: wlcore@2 {
		compatible = "ti,wl1831";
		reg = <2>;
		interrupt-parent = <&gpio2>;
		interrupts = <16 IRQ_TYPE_EDGE_RISING>;
		ref-clock-frequency = <38400000>;
		tcxo-clock-frequency = <26000000>;
	};
};
