// 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 {
		serial0 = &blsp1_uart2;
	};

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

	reserved-memory {
		mpss_mem: mpss@86800000 {
			reg = <0x0 0x86800000 0x0 0x5500000>;
			no-map;
		};

		gps_mem: gps@8bd00000 {
			reg = <0x0 0x8bd00000 0x0 0x200000>;
			no-map;
		};
	};

	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";
};

&blsp1_uart2 {
	status = "okay";
};

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

&mpss {
	pinctrl-0 = <&sim_ctrl_default>;
	pinctrl-names = "default";

	status = "okay";
};

&pm8916_usbin {
	status = "okay";
};

&pronto {
	status = "okay";
};

&sdhc_1 {
	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
	pinctrl-names = "default", "sleep";

	status = "okay";
};

&usb {
	extcon = <&pm8916_usbin>;
	dr_mode = "peripheral";

	status = "okay";
};

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

&smd_rpm_regulators {
	vdd_l1_l2_l3-supply = <&pm8916_s3>;
	vdd_l4_l5_l6-supply = <&pm8916_s4>;
	vdd_l7-supply = <&pm8916_s4>;

	s3 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1300000>;
	};

	s4 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2100000>;
	};

	l1 {
		regulator-min-microvolt = <1225000>;
		regulator-max-microvolt = <1225000>;
	};

	l2 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
	};

	l4 {
		regulator-min-microvolt = <2050000>;
		regulator-max-microvolt = <2050000>;
	};

	l5 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l6 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l7 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l8 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2900000>;
	};

	l9 {
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	l10 {
		regulator-min-microvolt = <2700000>;
		regulator-max-microvolt = <2800000>;
	};

	l11 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
		regulator-system-load = <200000>;
		regulator-allow-set-load;
	};

	l12 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
	};

	l13 {
		regulator-min-microvolt = <3075000>;
		regulator-max-microvolt = <3075000>;
	};

	l14 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l15 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l16 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l17 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
	};

	l18 {
		regulator-min-microvolt = <2700000>;
		regulator-max-microvolt = <2700000>;
	};
};

&msmgpio {
	/* 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;
	};

	sim_ctrl_default: sim-ctrl-default-state {
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-low;
	};
};
