// 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>;

			usb_con: connector {
				compatible = "usb-b-connector";
				label = "micro-USB";
				type = "micro";
			};
		};
	};

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