// 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-hog {
		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.yaml
 */

&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>;
		vdda-supply = <&vio>;
		vddd-supply = <&vio>;
	};
};
