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

/dts-v1/;

#include "msm8916-pm8916.dtsi"
#include "msm8916-modem-qdsp6.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/sound/apq8016-lpass.h>

/ {
	aliases {
		mmc0 = &sdhc_1; /* eMMC */
		mmc1 = &sdhc_2; /* SD card */
		serial0 = &blsp_uart2;
	};

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

	reserved-memory {
		/* Additional memory used by Samsung firmware modifications */
		tz-apps@85500000 {
			reg = <0x0 0x85500000 0x0 0xb00000>;
			no-map;
		};
	};

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

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

		label = "GPIO Buttons";

		volume-up-button {
			label = "Volume Up";
			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
		};

		home-button {
			label = "Home";
			gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_HOMEPAGE>;
		};
	};

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

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

		label = "GPIO Hall Effect Sensor";

		hall-sensor-switch {
			label = "Hall Effect Sensor";
			gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_SW>;
			linux,code = <SW_LID>;
			linux,can-disable;
		};
	};
};

&blsp_i2c2 {
	status = "okay";

	light-sensor@10 {
		compatible = "capella,cm3323";
		reg = <0x10>;
	};

	accelerometer@1d {
		compatible = "st,lis2hh12";
		reg = <0x1d>;

		vdd-supply = <&pm8916_l17>;
		vddio-supply = <&pm8916_l5>;

		interrupt-parent = <&tlmm>;
		interrupts = <115 IRQ_TYPE_LEVEL_HIGH>;

		st,drdy-int-pin = <1>;
		mount-matrix = "0", "1", "0",
			      "-1", "0", "0",
			       "0", "0", "1";

		pinctrl-0 = <&accel_int_default>;
		pinctrl-names = "default";
	};
};

&blsp_i2c4 {
	status = "okay";

	fuelgauge@36 {
		compatible = "maxim,max77849-battery";
		reg = <0x36>;

		maxim,rsns-microohm = <10000>;
		maxim,over-heat-temp = <600>;
		maxim,over-volt = <4400>;

		interrupt-parent = <&tlmm>;
		interrupts = <121 IRQ_TYPE_EDGE_FALLING>;

		pinctrl-0 = <&fuelgauge_int_default>;
		pinctrl-names = "default";
	};
};

&blsp_uart2 {
	status = "okay";
};

/*
 * For some reason the speaker amplifier is connected to the second SD line
 * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the
 * device tree, otherwise audio will seemingly play fine on the wrong SD line
 * but the speaker stays silent.
 *
 * When routing audio via QDSP6 (the default) the &lpass node is reserved and
 * the definitions from &q6afedai are used. When the modem is disabled audio can
 * be alternatively routed directly to the LPASS hardware with reduced latency.
 * The definitions for &lpass are here for completeness to simplify changing the
 * setup with minor changes to the DT (either manually or with DT overlays).
 */
&lpass {
	dai-link@3 {
		reg = <MI2S_QUATERNARY>;
		qcom,playback-sd-lines = <1>;
	};
};

&mpss_mem {
	reg = <0x0 0x86800000 0x0 0x5400000>;
};

&pm8916_resin {
	linux,code = <KEY_VOLUMEDOWN>;
	status = "okay";
};

&pm8916_rpm_regulators {
	pm8916_l17: l17 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
	};
};

/* FIXME: Replace with MAX77849 MUIC when driver is available */
&pm8916_usbin {
	status = "okay";
};

&q6afedai {
	dai@22 {
		reg = <QUATERNARY_MI2S_RX>;
		qcom,sd-lines = <1>;
	};
};

&sdhc_1 {
	status = "okay";
};

&sdhc_2 {
	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
	pinctrl-names = "default", "sleep";

	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;

	status = "okay";
};

&sound {
	audio-routing =
		"AMIC1", "MIC BIAS External1",
		"AMIC2", "MIC BIAS Internal2",
		"AMIC3", "MIC BIAS External1";

	sound_link_backend2: backend2-dai-link {
		link-name = "Quaternary MI2S";

		cpu {
			sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
		};
		platform {
			sound-dai = <&q6routing>;
		};
		codec {
			sound-dai = <&speaker_codec>;
		};
	};
};

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

	status = "okay";
};

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

&venus {
	status = "okay";
};

&venus_mem {
	status = "okay";
};

&wcnss {
	status = "okay";
};

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

&wcnss_mem {
	status = "okay";
};

&tlmm {
	accel_int_default: accel-int-default-state {
		pins = "gpio115";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	fuelgauge_int_default: fuelgauge-int-default-state {
		pins = "gpio121";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	gpio_keys_default: gpio-keys-default-state {
		pins = "gpio107", "gpio109";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};

	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
		pins = "gpio52";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	sdc2_cd_default: sdc2-cd-default-state {
		pins = "gpio38";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};
