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

/dts-v1/;

#include "msm8939-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>

/ {
	model = "Samsung Galaxy A7 (2015)";
	compatible = "samsung,a7", "qcom,msm8939";
	chassis-type = "handset";

	aliases {
		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
		mmc1 = &sdhc_2; /* SDC2 SD card slot */
		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-hall-sensor {
		compatible = "gpio-keys";

		pinctrl-0 = <&gpio_hall_sensor_default>;
		pinctrl-names = "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;
		};
	};

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

		pinctrl-0 = <&gpio_keys_default>;
		pinctrl-names = "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>;
		};
	};

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

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

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

		battery@35 {
			compatible = "richtek,rt5033-battery";
			reg = <0x35>;

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

			pinctrl-0 = <&fg_alert_default>;
			pinctrl-names = "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-0 = <&nfc_i2c_default>;
		pinctrl-names = "default";

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

		nfc@2b {
			compatible = "nxp,pn547", "nxp,nxp-nci-i2c";
			reg = <0x2b>;

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

			enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
			firmware-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;

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

	i2c-sensor {
		compatible = "i2c-gpio";
		sda-gpios = <&tlmm 84 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&tlmm 85 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

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

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

		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-0 = <&accel_int_default>;
			pinctrl-names = "default";

			mount-matrix = "-1", "0", "0",
					"0", "-1", "0",
					"0", "0", "1";
		};

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

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

	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-0 = <&tkey_i2c_default>;
		pinctrl-names = "default";

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

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

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

			vcc-supply = <&reg_touch_key>;
			vdd-supply = <&reg_keyled>;
			vddio-supply = <&pm8916_l6>;

			linux,keycodes = <KEY_APPSELECT KEY_BACK>;

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

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

		clocks = <&gcc GCC_GP2_CLK>;

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

	reg_keyled: regulator-keyled {
		compatible = "regulator-fixed";
		regulator-name = "keyled";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		/* NOTE: On some variants e.g. SM-A700FD it's GPIO 91 */
		gpio = <&tlmm 100 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

	reg_touch_key: regulator-touch-key {
		compatible = "regulator-fixed";
		regulator-name = "touch_key";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;

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

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

	reg_tsp_vdd: regulator-tsp-vdd {
		compatible = "regulator-fixed";
		regulator-name = "tsp_vdd";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&pm8916_s4>;

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

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

	reg_vdd_tsp: regulator-vdd-tsp {
		compatible = "regulator-fixed";
		regulator-name = "vdd_tsp";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

	reg_vibrator: regulator-vibrator {
		compatible = "regulator-fixed";
		regulator-name = "motor_en";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;

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

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

	vibrator {
		compatible = "pwm-vibrator";

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

		vcc-supply = <&reg_vibrator>;
	};
};

&blsp_i2c1 {
	status = "okay";

	muic: extcon@25 {
		compatible = "siliconmitus,sm5502-muic";
		reg = <0x25>;

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

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

&blsp_i2c2 {
	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_i2c5 {
	status = "okay";

	touchscreen@24 {
		compatible = "cypress,tt21000";

		reg = <0x24>;
		interrupt-parent = <&tlmm>;
		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;

		vdd-supply = <&reg_vdd_tsp>;
		vddio-supply = <&reg_tsp_vdd>;

		pinctrl-0 = <&tsp_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 0x5800000>;
};

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

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

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

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

	fg_alert_default: fg-alert-default-state {
		pins = "gpio121";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	fg_i2c_default: fg-i2c-default-state {
		pins = "gpio105", "gpio106";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
		pins = "gpio52";
		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;
	};

	motor_en_default: motor-en-default-state {
		pins = "gpio86";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

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

	muic_int_default: muic-int-default-state {
		pins = "gpio12";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	nfc_default: nfc-default-state {
		irq-pins {
			pins = "gpio21";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-down;
		};

		nfc-pins {
			pins = "gpio49", "gpio116";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};
	};

	nfc_i2c_default: nfc-i2c-default-state {
		pins = "gpio0", "gpio1";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	reg_tsp_en_default: reg-tsp-en-default-state {
		pins = "gpio73";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	reg_tsp_io_en_default: reg-tsp-io-en-default-state {
		pins = "gpio8";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

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

	sensor_i2c_default: sensor-i2c-default-state {
		pins = "gpio84", "gpio85";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	tkey_default: tkey-default-state {
		pins = "gpio20";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	tkey_en_default: tkey-en-default-state {
		pins = "gpio56";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	tkey_i2c_default: tkey-i2c-default-state {
		pins = "gpio16", "gpio17";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	tkey_led_en_default: tkey-led-en-default-state {
		pins = "gpio100";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	tsp_int_default: tsp-int-default-state {
		pins = "gpio13";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};
