// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2014-18 H. Nikolaus Schaller <hns@goldelico.com>
 */

#include "omap3-gta04.dtsi"

/ {
	model = "Goldelico GTA04A5/Letux 2804";

	sound {
		ti,jack-det-gpio = <&twl_gpio 2 GPIO_ACTIVE_HIGH>;	/* GTA04A5 only */
	};

	wlan_en: wlan_en_regulator {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&wlan_pins>;
		regulator-name = "wlan-en-regulator";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>;	/* GPIO_138 */

		startup-delay-us = <70000>;
		enable-active-high;
	};

	pps {
		compatible = "pps-gpio";
		pinctrl-names = "default";
		pinctrl-0 = <&pps_pins>;

		gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>; /* GPIN_114 */
	};

};

&gpio5 {
	irda_en {
		gpio-hog;
		gpios = <(175-160) GPIO_ACTIVE_HIGH>;
		output-high;	/* activate gpio_175 to disable IrDA receiver */
	};
};

&omap3_pmx_core {
	bt_pins: pinmux_bt_pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE4)	/* mmc2_dat5 = mmc3_dat1 = gpio137 */
		>;
	};

	wlan_pins: pinmux_wlan_pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT | MUX_MODE4)	/* mmc2_dat6 = mmc3_dat2 = gpio138 */
		>;
	};

	wlan_irq_pin: pinmux_wlan_irq_pin {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE4)	/* mmc2_dat7 = mmc3_dat3 = gpio139 */
		>;
	};

	irda_pins: pinmux_irda {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x21d0, PIN_OUTPUT_PULLUP | MUX_MODE4)	/* mcspi1_cs1 = gpio175 */
		>;
	};

	pps_pins: pinmux_pps_pins {
		pinctrl-single,pins = <
			OMAP3_CORE1_IOPAD(0x2138, PIN_INPUT | MUX_MODE4) /* gpin114 */
		>;
	};

};

/*
 * for WL183x module see
 * Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt
 */

&wifi_pwrseq {
	/delete-property/ reset-gpios;
};

&mmc2 {
	vmmc-supply = <&wlan_en>;
	bus-width = <4>;
	cap-power-off-card;
	non-removable;

	pinctrl-names = "default";
	pinctrl-0 = <&wlan_irq_pin>;

	#address-cells = <1>;
	#size-cells = <0>;

	/delete-property/ mmc-pwrseq;

	wlcore: wlcore@2 {
		compatible = "ti,wl1837";
		reg = <2>;
		interrupt-parent = <&gpio5>;
		interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;	/* GPIO_139 */
		ref-clock-frequency = <26000000>;
	};
};

&i2c2 {
	/delete-node/ bmp085@77;
	/delete-node/ bma180@41;
	/delete-node/ itg3200@68;
	/delete-node/ hmc5843@1e;

	bmg160@69 {
		compatible = "bosch,bmg160";
		reg = <0x69>;
	};

	bmc150@10 {
		compatible = "bosch,bmc150_accel";
		reg = <0x10>;
	};

	bmc150@12 {
		compatible = "bosch,bmc150_magn";
		reg = <0x12>;
	};

	bme280@76 {
		compatible = "bosch,bme280";
		reg = <0x76>;
	};
};
