// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2016 Christoph Fritz <chf.fritz@googlemail.com>
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "imx6sx.dtsi"

/ {
	model = "Softing VIN|ING 2000";
	compatible = "samtec,imx6sx-vining-2000", "fsl,imx6sx";

	chosen {
		stdout-path = &uart1;
	};

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

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

	reg_peri_3v3: regulator-peri_3v3 {
		compatible = "regulator-fixed";
		regulator-name = "peri_3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	pwmleds {
		compatible = "pwm-leds";

		red {
			label = "red";
			max-brightness = <255>;
			pwms = <&pwm6 0 50000>;
		};

		green {
			label = "green";
			max-brightness = <255>;
			pwms = <&pwm2 0 50000>;
		};

		blue {
			label = "blue";
			max-brightness = <255>;
			pwms = <&pwm1 0 50000>;
		};
	};
};

&adc1 {
	vref-supply = <&reg_peri_3v3>;
	status = "okay";
};

&cpu0 {
	/*
	 * This board has a shared rail of reg_arm and reg_soc (supplied by
	 * sw1a_reg) which is modeled below, but still this module behaves
	 * unstable without higher voltages. Hence, set higher voltages here.
	 */
	operating-points = <
		/* kHz    uV */
		996000  1250000
		792000  1175000
		396000  1175000
		198000  1175000
		>;
	fsl,soc-operating-points = <
		/* ARM kHz  SOC uV */
		996000	1250000
		792000	1175000
		396000	1175000
		198000  1175000
	>;
};

&ecspi4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi4>;
	cs-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&fec1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet1>;
	phy-supply = <&reg_peri_3v3>;
	phy-reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
	phy-reset-duration = <5>;
	phy-mode = "rmii";
	phy-handle = <&ethphy0>;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy0: ethernet0-phy@0 {
			reg = <0>;
			max-speed = <100>;
			interrupt-parent = <&gpio2>;
			interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
		};
	};
};

&fec2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet2>;
	phy-supply = <&reg_peri_3v3>;
	phy-reset-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
	phy-reset-duration = <5>;
	phy-mode = "rmii";
	phy-handle = <&ethphy1>;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy1: ethernet1-phy@0 {
			reg = <0>;
			max-speed = <100>;
			interrupt-parent = <&gpio2>;
			interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
		};
	};
};

&flexcan1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan1>;
	status = "okay";
};

&flexcan2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan2>;
	status = "okay";
};

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

	proximity: sx9500@28 {
		compatible = "semtech,sx9500";
		reg = <0x28>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_sx9500>;
		interrupt-parent = <&gpio2>;
		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
		reset-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
	};

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

		regulators {
			sw1a_reg: sw1ab {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

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

			sw3a_reg: sw3a {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3b_reg: sw3b {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			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: vgen1 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
				regulator-always-on;
			};

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

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

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

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

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

&i2c3 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3>;
	status = "okay";
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_gpios>;

	pinctrl_ecspi4: ecspi4grp {
		fsl,pins = <
			MX6SX_PAD_SD3_CLK__ECSPI4_SCLK		0x130b1
			MX6SX_PAD_SD3_DATA3__ECSPI4_MISO	0x130b1
			MX6SX_PAD_SD3_CMD__ECSPI4_MOSI		0x130b1
			MX6SX_PAD_SD3_DATA2__GPIO7_IO_4		0x30b0
		>;
	};

	pinctrl_enet1: enet1grp {
		fsl,pins = <
			MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0	0x30c1
			MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1	0x30c1
			MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0	0xa0f9
			MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1	0xa0f9
			MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN	0x30c1
			MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN	0xa0f9
			MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1	0x4000a038
			/* LAN8720 PHY Reset */
			MX6SX_PAD_RGMII1_TD3__GPIO5_IO_9	0x10b0
			/* MDIO */
			MX6SX_PAD_ENET1_MDC__ENET1_MDC		0xa0f9
			MX6SX_PAD_ENET1_MDIO__ENET1_MDIO	0xa0f9
			/* IRQ from PHY */
			MX6SX_PAD_KEY_ROW2__GPIO2_IO_17		0x10b0
		>;
	};

	pinctrl_enet2: enet2grp {
		fsl,pins = <
			MX6SX_PAD_RGMII2_TD0__ENET2_TX_DATA_0	0x1b0b0
			MX6SX_PAD_RGMII2_TD1__ENET2_TX_DATA_1	0x1b0b0
			MX6SX_PAD_RGMII2_RD0__ENET2_RX_DATA_0	0x1b0b0
			MX6SX_PAD_RGMII2_RD1__ENET2_RX_DATA_1	0x1b0b0
			MX6SX_PAD_RGMII2_RX_CTL__ENET2_RX_EN	0x1b0b0
			MX6SX_PAD_RGMII2_TX_CTL__ENET2_TX_EN	0x1b0b0
			MX6SX_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4000a038
			/* LAN8720 PHY Reset */
			MX6SX_PAD_RGMII2_TD3__GPIO5_IO_21	0x10b0
			/* MDIO */
			MX6SX_PAD_ENET1_COL__ENET2_MDC		0xa0f9
			MX6SX_PAD_ENET1_CRS__ENET2_MDIO		0xa0f9
			/* IRQ from PHY */
			MX6SX_PAD_KEY_ROW4__GPIO2_IO_19		0x10b0
		>;
	};

	pinctrl_flexcan1: flexcan1grp {
		fsl,pins = <
			MX6SX_PAD_QSPI1B_DQS__CAN1_TX		0x1b0b0
			MX6SX_PAD_QSPI1A_SS1_B__CAN1_RX		0x1b0b0
		>;
	};

	pinctrl_flexcan2: flexcan2grp {
		fsl,pins = <
			MX6SX_PAD_QSPI1B_SS1_B__CAN2_RX		0x1b0b0
			MX6SX_PAD_QSPI1A_DQS__CAN2_TX		0x1b0b0
		>;
	};

	pinctrl_gpios: gpiosgrp {
		fsl,pins = <
			/* reset external uC */
			MX6SX_PAD_QSPI1A_DATA3__GPIO4_IO_19	0x10b0
			/* IRQ from external uC */
			MX6SX_PAD_KEY_ROW0__GPIO2_IO_15		0x10b0
			/* overcurrent detection */
			MX6SX_PAD_GPIO1_IO08__GPIO1_IO_8	0x10b0
		>;
	};

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

	pinctrl_i2c3: i2c3grp {
		fsl,pins = <
			MX6SX_PAD_NAND_ALE__I2C3_SDA		0x4001b8b1
			MX6SX_PAD_NAND_CLE__I2C3_SCL		0x4001b8b1
		>;
	};

	pinctrl_pwm1: pwm1grp-1 {
		fsl,pins = <
			/* blue LED */
			MX6SX_PAD_RGMII2_RD3__PWM1_OUT		0x1b0b1
		>;
	};

	pinctrl_pwm2: pwm2grp-1 {
		fsl,pins = <
			/* green LED */
			MX6SX_PAD_RGMII2_RD2__PWM2_OUT		0x1b0b1
		>;
	};

	pinctrl_pwm6: pwm6grp-1 {
		fsl,pins = <
			/* red LED */
			MX6SX_PAD_RGMII2_TD2__PWM6_OUT		0x1b0b1
		>;
	};

	pinctrl_sx9500: sx9500grp {
		fsl,pins = <
			/* Reset */
			MX6SX_PAD_KEY_COL0__GPIO2_IO_10		0x838
			/* IRQ */
			MX6SX_PAD_KEY_ROW1__GPIO2_IO_16		0x70e0
		>;
	};

	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_usb_otg1: usbotg1grp {
		fsl,pins = <
			MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9	0x10b0
		>;
	};

	pinctrl_usb_otg1_id: usbotg1idgrp {
		fsl,pins = <
			MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID	0x17059
		>;
	};

	pinctrl_usdhc2_50mhz: usdhc2grp-50mhz {
		fsl,pins = <
			MX6SX_PAD_SD2_CLK__USDHC2_CLK		0x10059
			MX6SX_PAD_SD2_CMD__USDHC2_CMD		0x17059
			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_LCD1_VSYNC__GPIO3_IO_28	0x1b000
			MX6SX_PAD_LCD1_HSYNC__GPIO3_IO_26	0x10b0
		>;
	};

	pinctrl_usdhc2_100mhz: usdhc2grp-100mhz {
		fsl,pins = <
			MX6SX_PAD_SD2_CLK__USDHC2_CLK		0x100b9
			MX6SX_PAD_SD2_CMD__USDHC2_CMD		0x170b9
			MX6SX_PAD_SD2_DATA0__USDHC2_DATA0	0x170b9
			MX6SX_PAD_SD2_DATA1__USDHC2_DATA1	0x170b9
			MX6SX_PAD_SD2_DATA2__USDHC2_DATA2	0x170b9
			MX6SX_PAD_SD2_DATA3__USDHC2_DATA3	0x170b9
		>;
	};

	pinctrl_usdhc2_200mhz: usdhc2grp-200mhz {
		fsl,pins = <
			MX6SX_PAD_SD2_CLK__USDHC2_CLK		0x100f9
			MX6SX_PAD_SD2_CMD__USDHC2_CMD		0x170f9
			MX6SX_PAD_SD2_DATA0__USDHC2_DATA0	0x170f9
			MX6SX_PAD_SD2_DATA1__USDHC2_DATA1	0x170f9
			MX6SX_PAD_SD2_DATA2__USDHC2_DATA2	0x170f9
			MX6SX_PAD_SD2_DATA3__USDHC2_DATA3	0x170f9
		>;
	};

	pinctrl_usdhc4_50mhz: usdhc4grp-50mhz {
		fsl,pins = <
			MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x10059
			MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x17059
			MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x17059
			MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x17059
			MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x17059
			MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x17059
			MX6SX_PAD_SD4_DATA4__USDHC4_DATA4	0x17059
			MX6SX_PAD_SD4_DATA5__USDHC4_DATA5	0x17059
			MX6SX_PAD_SD4_DATA6__USDHC4_DATA6	0x17059
			MX6SX_PAD_SD4_DATA7__USDHC4_DATA7	0x17059
			MX6SX_PAD_SD4_RESET_B__USDHC4_RESET_B	0x17068
		>;
	};

	pinctrl_usdhc4_100mhz: usdhc4-100mhz {
		fsl,pins = <
			MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x100b9
			MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x170b9
			MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x170b9
			MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x170b9
			MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x170b9
			MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x170b9
			MX6SX_PAD_SD4_DATA4__USDHC4_DATA4	0x170b9
			MX6SX_PAD_SD4_DATA5__USDHC4_DATA5	0x170b9
			MX6SX_PAD_SD4_DATA6__USDHC4_DATA6	0x170b9
			MX6SX_PAD_SD4_DATA7__USDHC4_DATA7	0x170b9
		>;
	};

	pinctrl_usdhc4_200mhz: usdhc4-200mhz {
		fsl,pins = <
			MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x100f9
			MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x170f9
			MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x170f9
			MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x170f9
			MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x170f9
			MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x170f9
			MX6SX_PAD_SD4_DATA4__USDHC4_DATA4	0x170f9
			MX6SX_PAD_SD4_DATA5__USDHC4_DATA5	0x170f9
			MX6SX_PAD_SD4_DATA6__USDHC4_DATA6	0x170f9
			MX6SX_PAD_SD4_DATA7__USDHC4_DATA7	0x170f9
		>;
	};
};

&pwm1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm1>;
	status = "okay";
};

&pwm2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm2>;
	status = "okay";
};

&pwm6 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm6>;
	status = "okay";
};

&reg_arm {
	vin-supply = <&sw1a_reg>;
};

&reg_soc {
	vin-supply = <&sw1a_reg>;
};

&snvs_poweroff {
	status = "okay";
};

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

&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart2>;
	status = "okay";
};

&usbotg1 {
	vbus-supply = <&reg_usb_otg1_vbus>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb_otg1_id>;
	status = "okay";
};

&usbotg2 {
	dr_mode = "host";
	status = "okay";
};

&usdhc2 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc2_50mhz>;
	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
	cd-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>;
	keep-power-in-suspend;
	status = "okay";
};

&usdhc4 {
	/* hs200-mode is currently unsupported because Vccq is on 3.1V, but
	 * not on necessary 1.8V.
	 */
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc4_50mhz>;
	pinctrl-1 = <&pinctrl_usdhc4_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc4_200mhz>;
	bus-width = <8>;
	keep-power-in-suspend;
	non-removable;
	cap-mmc-hw-reset;
	status = "okay";
};
