// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2021 Sancloud Ltd
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 */
/dts-v1/;

#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
#include "am335x-boneblack-common.dtsi"
#include "am335x-sancloud-bbe-common.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	model = "SanCloud BeagleBone Enhanced Extended WiFi";
	compatible = "sancloud,am335x-boneenhanced",
		     "ti,am335x-bone-black",
		     "ti,am335x-bone",
		     "ti,am33xx";

	wlan_en_reg: fixedregulator@2 {
		compatible = "regulator-fixed";
		regulator-name = "wlan-en-regulator";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		startup-delay-us = <100000>;
	};
};

&am33xx_pinmux {
	mmc3_pins: mmc3-pins {
		pinctrl-single,pins = <
			/* gpmc_a9.gpio1_25: RADIO_EN */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_OUTPUT_PULLUP, MUX_MODE7)

			/* gpmc_ad12.mmc2_dat0 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_INPUT_PULLUP, MUX_MODE3)

			/* gpmc_ad13.mmc2_dat1 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_INPUT_PULLUP, MUX_MODE3)

			/* gpmc_ad14.mmc2_dat2 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE3)

			/* gpmc_ad15.mmc2_dat3 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_INPUT_PULLUP, MUX_MODE3)

			/* gpmc_csn3.mmc2_cmd */
			AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, PIN_INPUT_PULLUP, MUX_MODE3)

			/* gpmc_clk.mmc2_clk */
			AM33XX_PADCONF(AM335X_PIN_GPMC_CLK, PIN_INPUT_PULLUP, MUX_MODE3)
		>;
	};

	bluetooth_pins: bluetooth-pins {
		pinctrl-single,pins = <
			/* event_intr0.gpio0_19 */
			AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
	};

	uart1_pins: uart1-pins {
		pinctrl-single,pins = <
			/* uart1_rxd */
			AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT, MUX_MODE0)

			/* uart1_txd */
			AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_INPUT, MUX_MODE0)

			/* uart1_ctsn */
			AM33XX_PADCONF(AM335X_PIN_UART1_CTSN, PIN_INPUT_PULLDOWN, MUX_MODE0)

			/* uart1_rtsn */
			AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
		>;
	};
};

&i2c2 {
	status = "disabled";
};

&mmc3 {
	status = "okay";
	vmmc-supply = <&wlan_en_reg>;
	bus-width = <4>;
	non-removable;
	cap-power-off-card;
	ti,needs-special-hs-handling;
	keep-power-in-suspend;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc3_pins>;
	dmas = <&edma_xbar 12 0 1
		&edma_xbar 13 0 2>;
	dma-names = "tx", "rx";
	clock-frequency = <50000000>;
	max-frequency = <50000000>;
};

&uart1 {
	status = "okay";

	bluetooth {
		pinctrl-names = "default";
		pinctrl-0 = <&uart1_pins &bluetooth_pins>;
		compatible = "qcom,qca6174-bt";
		enable-gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>;
		clocks = <&l4ls_clkctrl AM3_L4LS_UART2_CLKCTRL 0>;
		interrupt-parent = <&gpio0>;
		interrupts = <19 IRQ_TYPE_EDGE_RISING>;
	};
};
