// SPDX-License-Identifier: GPL-2.0
/*
 * Support for CompuLab CM-T3730
 */
/dts-v1/;

#include "omap36xx.dtsi"
#include "omap3-cm-t3x30.dtsi"

/ {
	model = "CompuLab CM-T3730";
	compatible = "compulab,omap3-cm-t3730", "ti,omap3630", "ti,omap3";

	wl12xx_vmmc2: wl12xx_vmmc2 {
		compatible = "regulator-fixed";
		regulator-name = "vw1271";
		pinctrl-names = "default";
		pinctrl-0 = <&wl12xx_gpio>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>;   /* gpio73 */
		startup-delay-us = <20000>;
		enable-active-high;
	};

	wl12xx_vaux2: wl12xx_vaux2 {
		compatible = "regulator-fixed";
		regulator-name = "vwl1271_vaux2";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vaux2>;
	};
};

&omap3_pmx_wkup {
	dss_dpi_pins_cm_t3730: dss-dpi-cm-t3730-pins {
		pinctrl-single,pins = <
			OMAP3_WKUP_IOPAD(0x2a08, PIN_OUTPUT | MUX_MODE3)   /* sys_boot0.dss_data18 */
			OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3)   /* sys_boot1.dss_data19 */
			OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3)   /* sys_boot3.dss_data20 */
			OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3)   /* sys_boot4.dss_data21 */
			OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3)   /* sys_boot5.dss_data22 */
			OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3)   /* sys_boot6.dss_data23 */
		>;
	};
};

&omap3_pmx_core {

	mmc2_pins: mmc2-pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk.sdmmc2_clk */
			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd.sdmmc2_cmd */
			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat0.sdmmc2_dat0 */
			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1.sdmmc2_dat1 */
			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2.sdmmc2_dat2 */
			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3.sdmmc2_dat3 */
		>;
	};

	wl12xx_gpio: wl12xx-gpio-pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4)	/* dss_data3.gpio_73 */
			OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT | MUX_MODE4)	/* sdmmc2_dat4.gpio_136 */
		>;
	};
};

&mmc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&mmc2_pins>;
	vmmc-supply = <&wl12xx_vmmc2>;
	vqmmc-supply = <&wl12xx_vaux2>;
	non-removable;
	bus-width = <4>;
	cap-power-off-card;

	#address-cells = <1>;
	#size-cells = <0>;
	wlcore: wlcore@2 {
		compatible = "ti,wl1271";
		reg = <2>;
		interrupt-parent = <&gpio5>;
		interrupts = <8 IRQ_TYPE_EDGE_RISING>; /* gpio 136 */
		ref-clock-frequency = <38400000>;
	};
};

&dss {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <
		&dss_dpi_pins_common
		&dss_dpi_pins_cm_t3730
	>;
};