// 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 {
		device_type = "memory";
		reg = <0x80000000 0x80000000>;
	};

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

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

		led-user {
			label = "debug";
			gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	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_sd2_vmmc: regulator-sd2-vmmc {
		compatible = "regulator-fixed";
		regulator-name = "eMMC-VCCQ";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-boot-on;
	};

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

	sound {
		compatible = "fsl,imx6sl-evk-wm8962", "fsl,imx-audio-wm8962";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_hp>;
		model = "wm8962-audio";
		audio-cpu = <&ssi2>;
		audio-codec = <&wm8962>;
		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>;
		hp-det-gpio = <&gpio4 24 GPIO_ACTIVE_LOW>;
	};
};

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

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

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

	wm8962: audio-codec@1a {
		compatible = "wlf,wm8962";
		reg = <0x1a>;
		clocks = <&clks IMX6SLL_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>;
	};
};

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

&snvs_poweroff {
	status = "okay";
};

&snvs_pwrkey {
	status = "okay";
};

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

&usdhc2 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc2>;
	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
	bus-width = <8>;
	non-removable;
	vqmmc-supply = <&reg_sd2_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;
	wakeup-source;
	vmmc-supply = <&reg_sd3_vmmc>;
	status = "okay";
};

&wdog1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_wdog1>;
	fsl,ext-reset-output;
};

&iomuxc {
	pinctrl_audmux3: audmux3grp {
		fsl,pins = <
			MX6SLL_PAD_AUD_TXC__AUD3_TXC		0x4130b0
			MX6SLL_PAD_AUD_TXFS__AUD3_TXFS		0x4130b0
			MX6SLL_PAD_AUD_TXD__AUD3_TXD		0x4110b0
			MX6SLL_PAD_AUD_RXD__AUD3_RXD		0x4130b0
			MX6SLL_PAD_AUD_MCLK__AUDIO_CLK_OUT	0x4130b0
		>;
	};

	pinctrl_hp: hpgrp {
		fsl,pins = <
			MX6SLL_PAD_GPIO4_IO24__GPIO4_IO24 0x17059 /* HP DETECT */
		>;
	};

	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_usdhc2: usdhc2grp {
		fsl,pins = <
			MX6SLL_PAD_SD2_CMD__SD2_CMD		0x17059
			MX6SLL_PAD_SD2_CLK__SD2_CLK		0x13059
			MX6SLL_PAD_SD2_DATA0__SD2_DATA0		0x17059
			MX6SLL_PAD_SD2_DATA1__SD2_DATA1		0x17059
			MX6SLL_PAD_SD2_DATA2__SD2_DATA2		0x17059
			MX6SLL_PAD_SD2_DATA3__SD2_DATA3		0x17059
			MX6SLL_PAD_SD2_DATA4__SD2_DATA4		0x17059
			MX6SLL_PAD_SD2_DATA5__SD2_DATA5		0x17059
			MX6SLL_PAD_SD2_DATA6__SD2_DATA6		0x17059
			MX6SLL_PAD_SD2_DATA7__SD2_DATA7		0x17059
			MX6SLL_PAD_GPIO4_IO21__SD2_STROBE	0x13059
		>;
	};

	pinctrl_usdhc2_100mhz: usdhc2grp-100mhz {
		fsl,pins = <
			MX6SLL_PAD_SD2_CMD__SD2_CMD		0x170b9
			MX6SLL_PAD_SD2_CLK__SD2_CLK		0x130b9
			MX6SLL_PAD_SD2_DATA0__SD2_DATA0		0x170b9
			MX6SLL_PAD_SD2_DATA1__SD2_DATA1		0x170b9
			MX6SLL_PAD_SD2_DATA2__SD2_DATA2		0x170b9
			MX6SLL_PAD_SD2_DATA3__SD2_DATA3		0x170b9
			MX6SLL_PAD_SD2_DATA4__SD2_DATA4		0x170b9
			MX6SLL_PAD_SD2_DATA5__SD2_DATA5		0x170b9
			MX6SLL_PAD_SD2_DATA6__SD2_DATA6		0x170b9
			MX6SLL_PAD_SD2_DATA7__SD2_DATA7		0x170b9
			MX6SLL_PAD_GPIO4_IO21__SD2_STROBE	0x130b9
		>;
	};

	pinctrl_usdhc2_200mhz: usdhc2grp-200mhz {
		fsl,pins = <
			MX6SLL_PAD_SD2_CMD__SD2_CMD		0x170f9
			MX6SLL_PAD_SD2_CLK__SD2_CLK		0x130f9
			MX6SLL_PAD_SD2_DATA0__SD2_DATA0		0x170f9
			MX6SLL_PAD_SD2_DATA1__SD2_DATA1		0x170f9
			MX6SLL_PAD_SD2_DATA2__SD2_DATA2		0x170f9
			MX6SLL_PAD_SD2_DATA3__SD2_DATA3		0x170f9
			MX6SLL_PAD_SD2_DATA4__SD2_DATA4		0x170f9
			MX6SLL_PAD_SD2_DATA5__SD2_DATA5		0x170f9
			MX6SLL_PAD_SD2_DATA6__SD2_DATA6		0x170f9
			MX6SLL_PAD_SD2_DATA7__SD2_DATA7		0x170f9
			MX6SLL_PAD_GPIO4_IO21__SD2_STROBE	0x130f9
		>;
	};

	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_i2c3: i2c3grp {
		fsl,pins = <
			MX6SLL_PAD_AUD_RXFS__I2C3_SCL  0x4041b8b1
			MX6SLL_PAD_AUD_RXC__I2C3_SDA   0x4041b8b1
		>;
	};

	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_led: ledgrp {
		fsl,pins = <
			MX6SLL_PAD_EPDC_VCOM1__GPIO2_IO04	0x17059
		>;
	};

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

	pinctrl_wdog1: wdog1grp	{
		fsl,pins = <
			MX6SLL_PAD_WDOG_B__WDOG1_B   0x170b0
		>;
	};
};
