// SPDX-License-Identifier: GPL-2.0
//
//Copyright (C) 2013 Freescale Semiconductor, Inc.

/dts-v1/;

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

/ {
	model = "Freescale i.MX6 SoloLite EVK Board";
	compatible = "fsl,imx6sl-evk", "fsl,imx6sl";

	chosen {
		stdout-path = &uart1;
	};

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

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

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_led>;

		user {
			label = "debug";
			gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usb_otg1_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio4 0 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&swbst_reg>;
	};

	reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usb_otg2_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&swbst_reg>;
	};

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

	sound {
		compatible = "fsl,imx6sl-evk-wm8962", "fsl,imx-audio-wm8962";
		model = "wm8962-audio";
		ssi-controller = <&ssi2>;
		audio-codec = <&codec>;
		audio-routing =
			"Headphone Jack", "HPOUTL",
			"Headphone Jack", "HPOUTR",
			"Ext Spk", "SPKOUTL",
			"Ext Spk", "SPKOUTR",
			"AMIC", "MICBIAS",
			"IN3R", "AMIC";
		mux-int-port = <2>;
		mux-ext-port = <3>;
	};

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

&audmux {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_audmux3>;
	status = "okay";
};

&ecspi1 {
	cs-gpios = <&gpio4 11 0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi1>;
	status = "okay";

	flash: m25p80@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "st,m25p32", "jedec,spi-nor";
		spi-max-frequency = <20000000>;
		reg = <0>;
	};
};

&fec {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_fec>;
	pinctrl-1 = <&pinctrl_fec_sleep>;
	phy-mode = "rmii";
	status = "okay";
};

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

	pmic: pfuze100@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;
			};
		};
	};
};

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

	codec: wm8962@1a {
		compatible = "wlf,wm8962";
		reg = <0x1a>;
		clocks = <&clks IMX6SL_CLK_EXTERN_AUDIO>;
		DCVDD-supply = <&vgen3_reg>;
		DBVDD-supply = <&reg_aud3v>;
		AVDD-supply = <&vgen3_reg>;
		CPVDD-supply = <&vgen3_reg>;
		MICVDD-supply = <&reg_aud3v>;
		PLLVDD-supply = <&vgen3_reg>;
		SPKVDD1-supply = <&reg_aud4v>;
		SPKVDD2-supply = <&reg_aud4v>;
	};
};

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

	imx6sl-evk {
		pinctrl_hog: hoggrp {
			fsl,pins = <
				MX6SL_PAD_KEY_ROW7__GPIO4_IO07    0x17059
				MX6SL_PAD_KEY_COL7__GPIO4_IO06    0x17059
				MX6SL_PAD_SD2_DAT7__GPIO5_IO00    0x17059
				MX6SL_PAD_SD2_DAT6__GPIO4_IO29    0x17059
				MX6SL_PAD_REF_CLK_32K__GPIO3_IO22 0x17059
				MX6SL_PAD_KEY_COL4__GPIO4_IO00	0x80000000
				MX6SL_PAD_KEY_COL5__GPIO4_IO02	0x80000000
				MX6SL_PAD_AUD_MCLK__AUDIO_CLK_OUT 0x4130b0
			>;
		};

		pinctrl_audmux3: audmux3grp {
			fsl,pins = <
				MX6SL_PAD_AUD_RXD__AUD3_RXD	  0x4130b0
				MX6SL_PAD_AUD_TXC__AUD3_TXC	  0x4130b0
				MX6SL_PAD_AUD_TXD__AUD3_TXD	  0x4110b0
				MX6SL_PAD_AUD_TXFS__AUD3_TXFS	  0x4130b0
			>;
		};

		pinctrl_ecspi1: ecspi1grp {
			fsl,pins = <
				MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO	0x100b1
				MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI	0x100b1
				MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK	0x100b1
				MX6SL_PAD_ECSPI1_SS0__GPIO4_IO11	0x80000000
			>;
		};

		pinctrl_fec: fecgrp {
			fsl,pins = <
				MX6SL_PAD_FEC_MDC__FEC_MDC		0x1b0b0
				MX6SL_PAD_FEC_MDIO__FEC_MDIO		0x1b0b0
				MX6SL_PAD_FEC_CRS_DV__FEC_RX_DV		0x1b0b0
				MX6SL_PAD_FEC_RXD0__FEC_RX_DATA0	0x1b0b0
				MX6SL_PAD_FEC_RXD1__FEC_RX_DATA1	0x1b0b0
				MX6SL_PAD_FEC_TX_EN__FEC_TX_EN		0x1b0b0
				MX6SL_PAD_FEC_TXD0__FEC_TX_DATA0	0x1b0b0
				MX6SL_PAD_FEC_TXD1__FEC_TX_DATA1	0x1b0b0
				MX6SL_PAD_FEC_REF_CLK__FEC_REF_OUT	0x4001b0a8
			>;
		};

		pinctrl_fec_sleep: fecgrp-sleep {
			fsl,pins = <
				MX6SL_PAD_FEC_MDC__GPIO4_IO23      0x3080
				MX6SL_PAD_FEC_CRS_DV__GPIO4_IO25   0x3080
				MX6SL_PAD_FEC_RXD0__GPIO4_IO17     0x3080
				MX6SL_PAD_FEC_RXD1__GPIO4_IO18     0x3080
				MX6SL_PAD_FEC_TX_EN__GPIO4_IO22    0x3080
				MX6SL_PAD_FEC_TXD0__GPIO4_IO24     0x3080
				MX6SL_PAD_FEC_TXD1__GPIO4_IO16     0x3080
				MX6SL_PAD_FEC_REF_CLK__GPIO4_IO26  0x3080
			>;
		};

		pinctrl_i2c1: i2c1grp {
			fsl,pins = <
				MX6SL_PAD_I2C1_SCL__I2C1_SCL	0x4001b8b1
				MX6SL_PAD_I2C1_SDA__I2C1_SDA	0x4001b8b1
			>;
		};


		pinctrl_i2c2: i2c2grp {
			fsl,pins = <
				MX6SL_PAD_I2C2_SCL__I2C2_SCL	0x4001b8b1
				MX6SL_PAD_I2C2_SDA__I2C2_SDA	0x4001b8b1
			>;
		};

		pinctrl_kpp: kppgrp {
			fsl,pins = <
				MX6SL_PAD_KEY_ROW0__KEY_ROW0    0x1b010
				MX6SL_PAD_KEY_ROW1__KEY_ROW1    0x1b010
				MX6SL_PAD_KEY_ROW2__KEY_ROW2    0x1b0b0
				MX6SL_PAD_KEY_COL0__KEY_COL0    0x110b0
				MX6SL_PAD_KEY_COL1__KEY_COL1    0x110b0
				MX6SL_PAD_KEY_COL2__KEY_COL2    0x110b0
			>;
		};

		pinctrl_lcd: lcdgrp {
			fsl,pins = <
				MX6SL_PAD_LCD_DAT0__LCD_DATA00 0x1b0b0
				MX6SL_PAD_LCD_DAT1__LCD_DATA01 0x1b0b0
				MX6SL_PAD_LCD_DAT2__LCD_DATA02 0x1b0b0
				MX6SL_PAD_LCD_DAT3__LCD_DATA03 0x1b0b0
				MX6SL_PAD_LCD_DAT4__LCD_DATA04 0x1b0b0
				MX6SL_PAD_LCD_DAT5__LCD_DATA05 0x1b0b0
				MX6SL_PAD_LCD_DAT6__LCD_DATA06 0x1b0b0
				MX6SL_PAD_LCD_DAT7__LCD_DATA07 0x1b0b0
				MX6SL_PAD_LCD_DAT8__LCD_DATA08 0x1b0b0
				MX6SL_PAD_LCD_DAT9__LCD_DATA09 0x1b0b0
				MX6SL_PAD_LCD_DAT10__LCD_DATA10 0x1b0b0
				MX6SL_PAD_LCD_DAT11__LCD_DATA11 0x1b0b0
				MX6SL_PAD_LCD_DAT12__LCD_DATA12 0x1b0b0
				MX6SL_PAD_LCD_DAT13__LCD_DATA13 0x1b0b0
				MX6SL_PAD_LCD_DAT14__LCD_DATA14 0x1b0b0
				MX6SL_PAD_LCD_DAT15__LCD_DATA15 0x1b0b0
				MX6SL_PAD_LCD_DAT16__LCD_DATA16 0x1b0b0
				MX6SL_PAD_LCD_DAT17__LCD_DATA17 0x1b0b0
				MX6SL_PAD_LCD_DAT18__LCD_DATA18 0x1b0b0
				MX6SL_PAD_LCD_DAT19__LCD_DATA19 0x1b0b0
				MX6SL_PAD_LCD_DAT20__LCD_DATA20 0x1b0b0
				MX6SL_PAD_LCD_DAT21__LCD_DATA21 0x1b0b0
				MX6SL_PAD_LCD_DAT22__LCD_DATA22 0x1b0b0
				MX6SL_PAD_LCD_DAT23__LCD_DATA23 0x1b0b0
				MX6SL_PAD_LCD_CLK__LCD_CLK 0x1b0b0
				MX6SL_PAD_LCD_ENABLE__LCD_ENABLE 0x1b0b0
				MX6SL_PAD_LCD_HSYNC__LCD_HSYNC 0x1b0b0
				MX6SL_PAD_LCD_VSYNC__LCD_VSYNC 0x1b0b0
			>;
		};

		pinctrl_led: ledgrp {
			fsl,pins = <
				MX6SL_PAD_HSIC_STROBE__GPIO3_IO20 0x17059
			>;
		};

		pinctrl_pwm1: pwmgrp {
			fsl,pins = <
				MX6SL_PAD_PWM1__PWM1_OUT 0x110b0
			>;
		};

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

		pinctrl_uart1: uart1grp {
			fsl,pins = <
				MX6SL_PAD_UART1_RXD__UART1_RX_DATA	0x1b0b1
				MX6SL_PAD_UART1_TXD__UART1_TX_DATA	0x1b0b1
			>;
		};

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

		pinctrl_usdhc1: usdhc1grp {
			fsl,pins = <
				MX6SL_PAD_SD1_CMD__SD1_CMD		0x17059
				MX6SL_PAD_SD1_CLK__SD1_CLK		0x10059
				MX6SL_PAD_SD1_DAT0__SD1_DATA0		0x17059
				MX6SL_PAD_SD1_DAT1__SD1_DATA1		0x17059
				MX6SL_PAD_SD1_DAT2__SD1_DATA2		0x17059
				MX6SL_PAD_SD1_DAT3__SD1_DATA3		0x17059
				MX6SL_PAD_SD1_DAT4__SD1_DATA4		0x17059
				MX6SL_PAD_SD1_DAT5__SD1_DATA5		0x17059
				MX6SL_PAD_SD1_DAT6__SD1_DATA6		0x17059
				MX6SL_PAD_SD1_DAT7__SD1_DATA7		0x17059
			>;
		};

		pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
			fsl,pins = <
				MX6SL_PAD_SD1_CMD__SD1_CMD		0x170b9
				MX6SL_PAD_SD1_CLK__SD1_CLK		0x100b9
				MX6SL_PAD_SD1_DAT0__SD1_DATA0		0x170b9
				MX6SL_PAD_SD1_DAT1__SD1_DATA1		0x170b9
				MX6SL_PAD_SD1_DAT2__SD1_DATA2		0x170b9
				MX6SL_PAD_SD1_DAT3__SD1_DATA3		0x170b9
				MX6SL_PAD_SD1_DAT4__SD1_DATA4		0x170b9
				MX6SL_PAD_SD1_DAT5__SD1_DATA5		0x170b9
				MX6SL_PAD_SD1_DAT6__SD1_DATA6		0x170b9
				MX6SL_PAD_SD1_DAT7__SD1_DATA7		0x170b9
			>;
		};

		pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
			fsl,pins = <
				MX6SL_PAD_SD1_CMD__SD1_CMD		0x170f9
				MX6SL_PAD_SD1_CLK__SD1_CLK		0x100f9
				MX6SL_PAD_SD1_DAT0__SD1_DATA0		0x170f9
				MX6SL_PAD_SD1_DAT1__SD1_DATA1		0x170f9
				MX6SL_PAD_SD1_DAT2__SD1_DATA2		0x170f9
				MX6SL_PAD_SD1_DAT3__SD1_DATA3		0x170f9
				MX6SL_PAD_SD1_DAT4__SD1_DATA4		0x170f9
				MX6SL_PAD_SD1_DAT5__SD1_DATA5		0x170f9
				MX6SL_PAD_SD1_DAT6__SD1_DATA6		0x170f9
				MX6SL_PAD_SD1_DAT7__SD1_DATA7		0x170f9
			>;
		};

		pinctrl_usdhc2: usdhc2grp {
			fsl,pins = <
				MX6SL_PAD_SD2_CMD__SD2_CMD		0x17059
				MX6SL_PAD_SD2_CLK__SD2_CLK		0x10059
				MX6SL_PAD_SD2_DAT0__SD2_DATA0		0x17059
				MX6SL_PAD_SD2_DAT1__SD2_DATA1		0x17059
				MX6SL_PAD_SD2_DAT2__SD2_DATA2		0x17059
				MX6SL_PAD_SD2_DAT3__SD2_DATA3		0x17059
			>;
		};

		pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
			fsl,pins = <
				MX6SL_PAD_SD2_CMD__SD2_CMD		0x170b9
				MX6SL_PAD_SD2_CLK__SD2_CLK		0x100b9
				MX6SL_PAD_SD2_DAT0__SD2_DATA0		0x170b9
				MX6SL_PAD_SD2_DAT1__SD2_DATA1		0x170b9
				MX6SL_PAD_SD2_DAT2__SD2_DATA2		0x170b9
				MX6SL_PAD_SD2_DAT3__SD2_DATA3		0x170b9
			>;
		};

		pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
			fsl,pins = <
				MX6SL_PAD_SD2_CMD__SD2_CMD		0x170f9
				MX6SL_PAD_SD2_CLK__SD2_CLK		0x100f9
				MX6SL_PAD_SD2_DAT0__SD2_DATA0		0x170f9
				MX6SL_PAD_SD2_DAT1__SD2_DATA1		0x170f9
				MX6SL_PAD_SD2_DAT2__SD2_DATA2		0x170f9
				MX6SL_PAD_SD2_DAT3__SD2_DATA3		0x170f9
			>;
		};

		pinctrl_usdhc3: usdhc3grp {
			fsl,pins = <
				MX6SL_PAD_SD3_CMD__SD3_CMD		0x17059
				MX6SL_PAD_SD3_CLK__SD3_CLK		0x10059
				MX6SL_PAD_SD3_DAT0__SD3_DATA0		0x17059
				MX6SL_PAD_SD3_DAT1__SD3_DATA1		0x17059
				MX6SL_PAD_SD3_DAT2__SD3_DATA2		0x17059
				MX6SL_PAD_SD3_DAT3__SD3_DATA3		0x17059
			>;
		};

		pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
			fsl,pins = <
				MX6SL_PAD_SD3_CMD__SD3_CMD		0x170b9
				MX6SL_PAD_SD3_CLK__SD3_CLK		0x100b9
				MX6SL_PAD_SD3_DAT0__SD3_DATA0		0x170b9
				MX6SL_PAD_SD3_DAT1__SD3_DATA1		0x170b9
				MX6SL_PAD_SD3_DAT2__SD3_DATA2		0x170b9
				MX6SL_PAD_SD3_DAT3__SD3_DATA3		0x170b9
			>;
		};

		pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
			fsl,pins = <
				MX6SL_PAD_SD3_CMD__SD3_CMD		0x170f9
				MX6SL_PAD_SD3_CLK__SD3_CLK		0x100f9
				MX6SL_PAD_SD3_DAT0__SD3_DATA0		0x170f9
				MX6SL_PAD_SD3_DAT1__SD3_DATA1		0x170f9
				MX6SL_PAD_SD3_DAT2__SD3_DATA2		0x170f9
				MX6SL_PAD_SD3_DAT3__SD3_DATA3		0x170f9
			>;
		};
	};
};

&kpp {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_kpp>;
	linux,keymap = <
			MATRIX_KEY(0x0, 0x0, KEY_UP)         /* ROW0, COL0 */
			MATRIX_KEY(0x0, 0x1, KEY_DOWN)       /* ROW0, COL1 */
			MATRIX_KEY(0x0, 0x2, KEY_ENTER)      /* ROW0, COL2 */
			MATRIX_KEY(0x1, 0x0, KEY_HOME)       /* ROW1, COL0 */
			MATRIX_KEY(0x1, 0x1, KEY_RIGHT)      /* ROW1, COL1 */
			MATRIX_KEY(0x1, 0x2, KEY_LEFT)       /* ROW1, COL2 */
			MATRIX_KEY(0x2, 0x0, KEY_VOLUMEDOWN) /* ROW2, COL0 */
			MATRIX_KEY(0x2, 0x1, KEY_VOLUMEUP)   /* ROW2, COL1 */
	>;
	status = "okay";
};

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

&snvs_poweroff {
	status = "okay";
};

&ssi2 {
	status = "okay";
};

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

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

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

&usdhc1 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc1>;
	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
	bus-width = <8>;
	cd-gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;
	wp-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&usdhc2 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc2>;
	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
	cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
	wp-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
	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>;
	status = "okay";
};
