// SPDX-License-Identifier: GPL-2.0-only

#include "msm8916-pm8916.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>

/ {
	chassis-type = "embedded";

	aliases {
		mmc0 = &sdhc_1; /* eMMC */
		serial0 = &blsp_uart2;
	};

	chosen {
		stdout-path = "serial0";
	};

	gpio-keys {
		compatible = "gpio-keys";

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

		label = "GPIO Buttons";

		/* GPIO is board-specific */
		button_restart: button-restart {
			label = "Restart";
			linux,code = <KEY_RESTART>;
		};
	};

	leds {
		compatible = "gpio-leds";

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

		/*
		 * GPIOs are board-specific.
		 * Functions and default-states defined here are fallbacks.
		 * Feel free to override them if your board is different.
		 */
		led_r: led-r {
			color = <LED_COLOR_ID_RED>;
			default-state = "on";
			function = LED_FUNCTION_POWER;
		};

		led_g: led-g {
			color = <LED_COLOR_ID_GREEN>;
			default-state = "off";
			function = LED_FUNCTION_WLAN;
		};

		led_b: led-b {
			color = <LED_COLOR_ID_BLUE>;
			default-state = "off";
			function = LED_FUNCTION_WAN;
		};
	};
};

&bam_dmux {
	status = "okay";
};

&bam_dmux_dma {
	status = "okay";
};

&blsp_uart2 {
	status = "okay";
};

/* Remove &mdss_dsi0_phy from clocks to make sure that gcc probes with display disabled */
&gcc {
	clocks = <&xo_board>, <&sleep_clk>, <0>, <0>, <0>, <0>, <0>;
};

&mba_mem {
	status = "okay";
};

&mpss {
	status = "okay";
};

&mpss_mem {
	reg = <0x0 0x86800000 0x0 0x5500000>;
	status = "okay";
};

&pm8916_usbin {
	status = "okay";
};

&sdhc_1 {
	status = "okay";
};

&usb {
	extcon = <&pm8916_usbin>;
	usb-role-switch;

	status = "okay";
};

&usb_hs_phy {
	extcon = <&pm8916_usbin>;
};

&venus {
	status = "okay";
};

&venus_mem {
	status = "okay";
};

&wcnss {
	status = "okay";
};

&wcnss_iris {
	compatible = "qcom,wcn3620";
};

&wcnss_mem {
	status = "okay";
};

&tlmm {
	/* pins are board-specific */
	button_default: button-default-state {
		function = "gpio";
		drive-strength = <2>;
	};

	gpio_leds_default: gpio-leds-default-state {
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};
