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

#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/pinctrl/qcom,pmic-gpio.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;
		};
	};

	clk_pwm: pwm {
		compatible = "clk-pwm";
		#pwm-cells = <2>;

		clocks = <&gcc GCC_GP2_CLK>;

		pinctrl-names = "default";
		pinctrl-0 = <&motor_pwm_default>;
		status = "disabled";
	};

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

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

		label = "GPIO Buttons";

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

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

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

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

		label = "GPIO Hall Effect Sensor";

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

	/*
	 * NOTE: A5 connects GPIO 76 to a reglator powering the motor
	 * driver IC but A3 connects the same signal to an ENABLE pin of
	 * the driver.
	 */
	reg_motor_vdd: regulator-motor-vdd {
		compatible = "regulator-fixed";
		regulator-name = "motor_vdd";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;

		gpio = <&tlmm 76 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

	reg_vdd_tsp_a: regulator-vdd-tsp-a {
		compatible = "regulator-fixed";
		regulator-name = "vdd_tsp_a";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

	i2c-muic {
		compatible = "i2c-gpio";
		sda-gpios = <&tlmm 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&tlmm 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

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

		#address-cells = <1>;
		#size-cells = <0>;

		muic: extcon@25 {
			compatible = "siliconmitus,sm5502-muic";

			reg = <0x25>;
			interrupt-parent = <&tlmm>;
			interrupts = <12 IRQ_TYPE_EDGE_FALLING>;

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

	i2c-tkey {
		compatible = "i2c-gpio";
		sda-gpios = <&tlmm 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&tlmm 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

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

		#address-cells = <1>;
		#size-cells = <0>;

		touchkey: touchkey@20 {
			/* Note: Actually an ABOV MCU that implements same interface */
			compatible = "coreriver,tc360-touchkey";
			reg = <0x20>;

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

			/* vcc/vdd-supply are board-specific */
			vddio-supply = <&pm8916_l6>;

			linux,keycodes = <KEY_APPSELECT KEY_BACK>;

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

	i2c-nfc {
		compatible = "i2c-gpio";
		sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

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

		#address-cells = <1>;
		#size-cells = <0>;

		nfc@27 {
			compatible = "samsung,s3fwrn5-i2c";
			reg = <0x27>;

			interrupt-parent = <&tlmm>;
			interrupts = <21 IRQ_TYPE_EDGE_RISING>;

			en-gpios = <&tlmm 20 GPIO_ACTIVE_LOW>;
			wake-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;

			clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>;

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

	vibrator: vibrator {
		compatible = "pwm-vibrator";

		pwms = <&clk_pwm 0 100000>;
		pwm-names = "enable";

		vcc-supply = <&reg_motor_vdd>;
		status = "disabled";
	};
};

&blsp_i2c1 {
	status = "okay";

	speaker_codec: audio-codec@34 {
		compatible = "nxp,tfa9895";
		reg = <0x34>;
		vddd-supply = <&pm8916_l5>;
		sound-name-prefix = "Speaker";
		#sound-dai-cells = <0>;
	};
};

&blsp_i2c2 {
	status = "okay";

	accelerometer: accelerometer@10 {
		compatible = "bosch,bmc150_accel";
		reg = <0x10>;
		interrupt-parent = <&tlmm>;
		interrupts = <115 IRQ_TYPE_EDGE_RISING>;

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

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

	magnetometer@12 {
		compatible = "bosch,bmc150_magn";
		reg = <0x12>;

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

&blsp_i2c4 {
	status = "okay";

	battery@35 {
		compatible = "richtek,rt5033-battery";
		reg = <0x35>;
		interrupt-parent = <&tlmm>;
		interrupts = <121 IRQ_TYPE_EDGE_BOTH>;

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

&blsp_uart2 {
	status = "okay";
};

&gpu {
	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>;
	};
};

&mdss {
	status = "okay";
};

&mdss_dsi0 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&mdss_default>;
	pinctrl-1 = <&mdss_sleep>;
};

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

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

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

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

&sdhc_1 {
	status = "okay";
};

&sdhc_2 {
	status = "okay";

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

	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
};

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

	pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
	pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
	pinctrl-names = "default", "sleep";

	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 {
	status = "okay";
	extcon = <&muic>, <&muic>;
};

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

&venus {
	status = "okay";
};

&venus_mem {
	status = "okay";
};

&tlmm {
	accel_int_default: accel-int-default-state {
		pins = "gpio115";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	fg_alert_default: fg-alert-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;
	};

	mdss_default: mdss-default-state {
		pins = "gpio25";
		function = "gpio";

		drive-strength = <8>;
		bias-disable;
	};
	mdss_sleep: mdss-sleep-state {
		pins = "gpio25";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-down;
	};

	motor_en_default: motor-en-default-state {
		pins = "gpio76";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	motor_pwm_default: motor-pwm-default-state {
		pins = "gpio50";
		function = "gcc_gp2_clk_a";
	};

	muic_i2c_default: muic-i2c-default-state {
		pins = "gpio105", "gpio106";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	muic_int_default: muic-int-default-state {
		pins = "gpio12";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	nfc_default: nfc-default-state {
		nfc-pins {
			pins = "gpio20", "gpio49";
			function = "gpio";

			drive-strength = <2>;
			bias-disable;
		};

		irq-pins {
			pins = "gpio21";
			function = "gpio";

			drive-strength = <2>;
			bias-pull-down;
		};
	};

	nfc_i2c_default: nfc-i2c-default-state {
		pins = "gpio0", "gpio1";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

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

	tkey_default: tkey-default-state {
		pins = "gpio98";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	tkey_i2c_default: tkey-i2c-default-state {
		pins = "gpio16", "gpio17";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	tsp_en_default: tsp-en-default-state {
		pins = "gpio73";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	ts_int_default: ts-int-default-state {
		pins = "gpio13";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};
};

&pm8916_gpios {
	nfc_clk_req: nfc-clk-req-state {
		pins = "gpio2";
		function = "func1";

		input-enable;
		bias-disable;
		power-source = <PM8916_GPIO_L2>;
	};
};
