/*
 * Suppport for CompuLab SBC-T3517 with CM-T3517
 */

#include "omap3-cm-t3517.dts"
#include "omap3-sb-t35.dtsi"

/ {
	model = "CompuLab SBC-T3517 with CM-T3517";
	compatible = "compulab,omap3-sbc-t3517", "compulab,omap3-cm-t3517", "ti,am3517", "ti,omap3";
};

&omap3_pmx_core {
	pinctrl-names = "default";
	pinctrl-0 = <
			&sb_t35_usb_hub_pins
			&usb_hub_pins
		    >;

	mmc1_aux_pins: pinmux_mmc1_aux_pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x20c0, PIN_INPUT_PULLUP | MUX_MODE4) /* gpmc_clk.gpio_59   */
			OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE4) /* uart2_cts.gpio_144 */
		>;
	};

	sb_t35_usb_hub_pins: pinmux_sb_t35_usb_hub_pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x21ec, PIN_OUTPUT | MUX_MODE4) /* ccdc_wen.gpio_98 - SB-T35 USB HUB RST */
		>;
	};
};

&mmc1 {
	pinctrl-names = "default";
	pinctrl-0 = <
		&mmc1_pins
		&mmc1_aux_pins
	>;

	wp-gpios =  <&gpio2 27 GPIO_ACTIVE_HIGH>; /* gpio_59  */
	cd-gpios =  <&gpio5 16 GPIO_ACTIVE_HIGH>; /* gpio_144 */
};
