// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2016 Freescale Semiconductor, Inc.
 * Copyright 2017-2018 NXP.
 *
 */

/dts-v1/;

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

/ {
	model = "Freescale i.MX6SLL EVK Board";
	compatible = "fsl,imx6sll-evk", "fsl,imx6sll";

	chosen {
		stdout-path = &uart1;
	};

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

	backlight_display: backlight-display {
		compatible = "pwm-backlight";
		pwms = <&pwm1 0 5000000>;
		brightness-levels = <0 4 8 16 32 64 128 255>;
		default-brightness-level = <6>;
		status = "okay";
	};

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

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

	reg_aud3v: regulator-aud3v {
		compatible = "regulator-fixed";
		regulator-name = "wm8962-supply-3v15";
		regulator-min-microvolt = <3150000>;
		regulator-max-microvolt = <3150000>;
		regulator-boot-on;
	};

	reg_aud4v: regulator-aud4v {
		compatible = "regulator-fixed";
		regulator-name = "wm8962-supply-4v2";
		regulator-min-microvolt = <4325000>;
		regulator-max-microvolt = <4325000>;
		regulator-boot-on;
	};

	reg_lcd_3v3: regulator-lcd-3v3 {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_reg_lcd_3v3>;
		regulator-name = "lcd-3v3";
		gpio = <&gpio4 3 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_lcd_5v: regulator-lcd-5v {
		compatible = "regulator-fixed";
		regulator-name = "lcd-5v0";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	reg_sd1_vmmc: regulator-sd1-vmmc {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_reg_sd1_vmmc>;
		regulator-name = "SD1_SPWR";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;
		gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_sd3_vmmc: regulator-sd3-vmmc {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_reg_sd3_vmmc>;
		regulator-name = "SD3_WIFI";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;
		gpio = <&gpio4 4 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	panel {
		compatible = "sii,43wvf1g";
		backlight = <&backlight_display>;
		dvdd-supply = <&reg_lcd_3v3>;
		avdd-supply = <&reg_lcd_5v>;

		port {
			panel_in: endpoint {
				remote-endpoint = <&display_out>;
			};
		};
	};
};

&cpu0 {
	arm-supply = <&sw1a_reg>;
	soc-supply = <&sw1c_reg>;
};

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

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

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

			sw1c_reg: sw1c {
				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;
			};

			sw4_reg: sw4 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				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: 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>;
			};

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

&lcdif {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lcd>;
	status = "okay";

	port {
		display_out: endpoint {
			remote-endpoint = <&panel_in>;
		};
	};
};

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

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

&usdhc1 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc1>;
	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
	cd-gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;
	wp-gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
	keep-power-in-suspend;
	wakeup-source;
	vmmc-supply = <&reg_sd1_vmmc>;
	status = "okay";
};

&usbotg1 {
	vbus-supply = <&reg_usb_otg1_vbus>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usbotg1>;
	disable-over-current;
	srp-disable;
	hnp-disable;
	adp-disable;
	status = "okay";
};

&usbotg2 {
	vbus-supply = <&reg_usb_otg2_vbus>;
	dr_mode = "host";
	disable-over-current;
	status = "okay";
};

&usdhc3 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc3>;
	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
	cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
	keep-power-in-suspend;
	enable-sdio-wakeup;
	vmmc-supply = <&reg_sd3_vmmc>;
	status = "okay";
};

&iomuxc {
	pinctrl_reg_sd3_vmmc: sd3vmmcgrp {
		fsl,pins = <
			MX6SLL_PAD_KEY_COL6__GPIO4_IO04 0x17059
		>;
	};

	pinctrl_usb_otg1_vbus: vbus1grp {
		fsl,pins = <
			MX6SLL_PAD_KEY_COL4__GPIO4_IO00 0x17059
		>;
	};

	pinctrl_usb_otg2_vbus: vbus2grp {
		fsl,pins = <
			MX6SLL_PAD_KEY_COL5__GPIO4_IO02 0x17059
		>;
	};

	pinctrl_reg_lcd_3v3: reglcd3v3grp {
		fsl,pins = <
			MX6SLL_PAD_KEY_ROW5__GPIO4_IO03 0x17059
		>;
	};

	pinctrl_reg_sd1_vmmc: sd1vmmcgrp {
		fsl,pins = <
			MX6SLL_PAD_KEY_COL3__GPIO3_IO30 0x17059
		>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX6SLL_PAD_UART1_TXD__UART1_DCE_TX 0x1b0b1
			MX6SLL_PAD_UART1_RXD__UART1_DCE_RX 0x1b0b1
		>;
	};

	pinctrl_usdhc1: usdhc1grp {
		fsl,pins = <
			MX6SLL_PAD_SD1_CMD__SD1_CMD	0x17059
			MX6SLL_PAD_SD1_CLK__SD1_CLK	0x13059
			MX6SLL_PAD_SD1_DATA0__SD1_DATA0	0x17059
			MX6SLL_PAD_SD1_DATA1__SD1_DATA1	0x17059
			MX6SLL_PAD_SD1_DATA2__SD1_DATA2	0x17059
			MX6SLL_PAD_SD1_DATA3__SD1_DATA3	0x17059
		>;
	};

	pinctrl_usdhc1_100mhz: usdhc1grp_100mhz {
		fsl,pins = <
			MX6SLL_PAD_SD1_CMD__SD1_CMD	0x170b9
			MX6SLL_PAD_SD1_CLK__SD1_CLK	0x130b9
			MX6SLL_PAD_SD1_DATA0__SD1_DATA0	0x170b9
			MX6SLL_PAD_SD1_DATA1__SD1_DATA1	0x170b9
			MX6SLL_PAD_SD1_DATA2__SD1_DATA2	0x170b9
			MX6SLL_PAD_SD1_DATA3__SD1_DATA3	0x170b9
		>;
	};

	pinctrl_usdhc1_200mhz: usdhc1grp_200mhz {
		fsl,pins = <
			MX6SLL_PAD_SD1_CMD__SD1_CMD	0x170f9
			MX6SLL_PAD_SD1_CLK__SD1_CLK	0x130f9
			MX6SLL_PAD_SD1_DATA0__SD1_DATA0	0x170f9
			MX6SLL_PAD_SD1_DATA1__SD1_DATA1	0x170f9
			MX6SLL_PAD_SD1_DATA2__SD1_DATA2	0x170f9
			MX6SLL_PAD_SD1_DATA3__SD1_DATA3	0x170f9
		>;
	};

	pinctrl_usbotg1: usbotg1grp {
		fsl,pins = <
			MX6SLL_PAD_EPDC_PWR_COM__USB_OTG1_ID 0x17059
		>;
	};

	pinctrl_usdhc3: usdhc3grp {
		fsl,pins = <
			MX6SLL_PAD_SD3_CMD__SD3_CMD		0x17061
			MX6SLL_PAD_SD3_CLK__SD3_CLK		0x13061
			MX6SLL_PAD_SD3_DATA0__SD3_DATA0		0x17061
			MX6SLL_PAD_SD3_DATA1__SD3_DATA1		0x17061
			MX6SLL_PAD_SD3_DATA2__SD3_DATA2		0x17061
			MX6SLL_PAD_SD3_DATA3__SD3_DATA3		0x17061
			MX6SLL_PAD_REF_CLK_32K__GPIO3_IO22	0x17059
		>;
	};

	pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
		fsl,pins = <
			MX6SLL_PAD_SD3_CMD__SD3_CMD		0x170a1
			MX6SLL_PAD_SD3_CLK__SD3_CLK		0x130a1
			MX6SLL_PAD_SD3_DATA0__SD3_DATA0		0x170a1
			MX6SLL_PAD_SD3_DATA1__SD3_DATA1		0x170a1
			MX6SLL_PAD_SD3_DATA2__SD3_DATA2		0x170a1
			MX6SLL_PAD_SD3_DATA3__SD3_DATA3		0x170a1
			MX6SLL_PAD_REF_CLK_32K__GPIO3_IO22	0x17059
		>;
	};

	pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
		fsl,pins = <
			MX6SLL_PAD_SD3_CMD__SD3_CMD		0x170e9
			MX6SLL_PAD_SD3_CLK__SD3_CLK		0x130f9
			MX6SLL_PAD_SD3_DATA0__SD3_DATA0		0x170e9
			MX6SLL_PAD_SD3_DATA1__SD3_DATA1		0x170e9
			MX6SLL_PAD_SD3_DATA2__SD3_DATA2		0x170e9
			MX6SLL_PAD_SD3_DATA3__SD3_DATA3		0x170e9
			MX6SLL_PAD_REF_CLK_32K__GPIO3_IO22	0x17059
		>;
	};

	pinctrl_i2c1: i2c1grp {
		fsl,pins = <
			MX6SLL_PAD_I2C1_SCL__I2C1_SCL	 0x4001b8b1
			MX6SLL_PAD_I2C1_SDA__I2C1_SDA	 0x4001b8b1
		>;
	};

	pinctrl_lcd: lcdgrp {
		fsl,pins = <
			MX6SLL_PAD_LCD_DATA00__LCD_DATA00	0x79
			MX6SLL_PAD_LCD_DATA01__LCD_DATA01	0x79
			MX6SLL_PAD_LCD_DATA02__LCD_DATA02	0x79
			MX6SLL_PAD_LCD_DATA03__LCD_DATA03	0x79
			MX6SLL_PAD_LCD_DATA04__LCD_DATA04	0x79
			MX6SLL_PAD_LCD_DATA05__LCD_DATA05	0x79
			MX6SLL_PAD_LCD_DATA06__LCD_DATA06	0x79
			MX6SLL_PAD_LCD_DATA07__LCD_DATA07	0x79
			MX6SLL_PAD_LCD_DATA08__LCD_DATA08	0x79
			MX6SLL_PAD_LCD_DATA09__LCD_DATA09	0x79
			MX6SLL_PAD_LCD_DATA10__LCD_DATA10	0x79
			MX6SLL_PAD_LCD_DATA11__LCD_DATA11	0x79
			MX6SLL_PAD_LCD_DATA12__LCD_DATA12	0x79
			MX6SLL_PAD_LCD_DATA13__LCD_DATA13	0x79
			MX6SLL_PAD_LCD_DATA14__LCD_DATA14	0x79
			MX6SLL_PAD_LCD_DATA15__LCD_DATA15	0x79
			MX6SLL_PAD_LCD_DATA16__LCD_DATA16	0x79
			MX6SLL_PAD_LCD_DATA17__LCD_DATA17	0x79
			MX6SLL_PAD_LCD_DATA18__LCD_DATA18	0x79
			MX6SLL_PAD_LCD_DATA19__LCD_DATA19	0x79
			MX6SLL_PAD_LCD_DATA20__LCD_DATA20	0x79
			MX6SLL_PAD_LCD_DATA21__LCD_DATA21	0x79
			MX6SLL_PAD_LCD_DATA22__LCD_DATA22	0x79
			MX6SLL_PAD_LCD_DATA23__LCD_DATA23	0x79
			MX6SLL_PAD_LCD_CLK__LCD_CLK		0x79
			MX6SLL_PAD_LCD_ENABLE__LCD_ENABLE	0x79
			MX6SLL_PAD_LCD_HSYNC__LCD_HSYNC		0x79
			MX6SLL_PAD_LCD_VSYNC__LCD_VSYNC		0x79
			MX6SLL_PAD_LCD_RESET__LCD_RESET		0x79
		>;
	};

	pinctrl_pwm1: pmw1grp {
		fsl,pins = <
			MX6SLL_PAD_PWM1__PWM1_OUT   0x110b0
		>;
	};
};
