// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2020, Yassine Oudjana <y.oudjana@protonmail.com>
 */

/dts-v1/;

#include "msm8996pro.dtsi"
#include "msm8996-xiaomi-common.dtsi"
#include "pmi8996.dtsi"
#include <dt-bindings/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6asm.h>
#include <dt-bindings/sound/qcom,wcd9335.h>

/ {
	model = "Xiaomi Mi Note 2";
	compatible = "xiaomi,scorpio", "qcom,msm8996pro", "qcom,msm8996";
	chassis-type = "handset";
	qcom,msm-id = <305 0x10000>;
	qcom,board-id = <34 0>;

	chosen {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		framebuffer0: framebuffer@83401000 {
			compatible = "simple-framebuffer";
			reg = <0x00 0x83401000 0x00 (1080 * 1920 * 3)>;
			width = <1080>;
			height = <1920>;
			stride = <(1080 * 3)>;
			format = "r8g8b8";

			/* DSI0 and MDP SMMU clocks */
			clocks = <&mmcc MDSS_MDP_CLK>,
				 <&mmcc MMSS_MMAGIC_AHB_CLK>,
				 <&mmcc MDSS_AHB_CLK>,
				 <&mmcc MDSS_AXI_CLK>,
				 <&mmcc MMSS_MISC_AHB_CLK>,
				 <&mmcc MDSS_BYTE0_CLK>,
				 <&mmcc MDSS_PCLK0_CLK>,
				 <&mmcc MDSS_ESC0_CLK>,
				 <&mmcc SMMU_MDP_AHB_CLK>,
				 <&mmcc SMMU_MDP_AXI_CLK>;

			/* MDSS power domain */
			power-domains = <&mmcc MDSS_GDSC>;
		};
	};

	reserved-memory {
		cont_splash_mem: memory@83401000 {
			reg = <0x0 0x83401000 0x0 (1080 * 1920 * 3)>;
			no-map;
		};
	};
};

&adsp_pil {
	firmware-name = "qcom/msm8996/scorpio/adsp.mbn";
};

&blsp2_i2c6 {
	touchkey: touchkey@28 {
		compatible = "cypress,sf3155";
		reg = <0x28>;
		interrupt-parent = <&tlmm>;
		interrupts = <77 IRQ_TYPE_EDGE_FALLING>;
		avdd-supply = <&vreg_l6a_1p8>;
		vdd-supply = <&vdd_3v2_tp>;
		linux,keycodes = <KEY_BACK KEY_MENU>;

		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&touchkey_default>;
		pinctrl-1 = <&touchkey_sleep>;
	};

	touchscreen: atmel-mxt-ts@4a {
		compatible = "atmel,maxtouch";
		reg = <0x4a>;
		interrupt-parent = <&tlmm>;
		interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
		vdda-supply = <&vreg_l6a_1p8>;
		vdd-supply = <&vdd_3v2_tp>;
		reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;

		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&touchscreen_default>;
		pinctrl-1 = <&touchscreen_sleep>;
	};
};

&gpu {
	zap-shader {
		firmware-name = "qcom/msm8996/scorpio/a530_zap.mbn";
	};
};

&mdp_smmu {
	/*
	 * Probing this SMMU causes a crash due to writing to some secure
	 * registers. Disable it for now.
	 */
	status = "disabled";
};

&mdss {
	/*
	 * MDSS depends on the MDP SMMU, and probing it alters the bootloader
	 * configured framebuffer used by simplefb. Disable it for now.
	 */
	status = "disabled";
};

&mss_pil {
	firmware-name = "qcom/msm8996/scorpio/mba.mbn",
			"qcom/msm8996/scorpio/modem.mbn";
};

&pm8994_lpg {
	pinctrl-names = "default";
	pinctrl-0 = <&keypad_default>;

	led@3 {
		reg = <3>;
		color = <LED_COLOR_ID_WHITE>;
		function = LED_FUNCTION_KBD_BACKLIGHT;
		function-enumerator = <1>;
	};

	led@6 {
		reg = <6>;
		color = <LED_COLOR_ID_WHITE>;
		function = LED_FUNCTION_KBD_BACKLIGHT;
		function-enumerator = <0>;
	};
};

&q6asmdai {
	dai@0 {
		reg = <0>;
	};

	dai@1 {
		reg = <1>;
	};

	dai@2 {
		reg = <2>;
	};
};

&slpi_pil {
	firmware-name = "qcom/msm8996/scorpio/slpi.mbn";
};

&sound {
	compatible = "qcom,apq8096-sndcard";
	model = "scorpio";
	audio-routing = "RX_BIAS", "MCLK";

	mm1-dai-link {
		link-name = "MultiMedia1";
		cpu {
			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
		};
	};

	mm2-dai-link {
		link-name = "MultiMedia2";
		cpu {
			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
		};
	};

	mm3-dai-link {
		link-name = "MultiMedia3";
		cpu {
			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
		};
	};

	slim-dai-link {
		link-name = "SLIM Playback";
		cpu {
			sound-dai = <&q6afedai SLIMBUS_6_RX>;
		};

		platform {
			sound-dai = <&q6routing>;
		};

		codec {
			sound-dai = <&wcd9335 AIF4_PB>;
		};
	};

	slimcap-dai-link {
		link-name = "SLIM Capture";
		cpu {
			sound-dai = <&q6afedai SLIMBUS_0_TX>;
		};

		platform {
			sound-dai = <&q6routing>;
		};

		codec {
			sound-dai = <&wcd9335 AIF1_CAP>;
		};
	};
};

&venus {
	firmware-name = "qcom/msm8996/scorpio/venus.mbn";
};

&rpm_requests {
	regulators-0 {
		vreg_l3a_0p875: l3 {
			regulator-name = "vreg_l3a_0p875";
			regulator-min-microvolt = <850000>;
			regulator-max-microvolt = <1300000>;
		};
		vreg_l11a_1p1: l11 {
			regulator-name = "vreg_l11a_1p1";
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1100000>;
		};
		vreg_l17a_2p8: l17 {
			regulator-name = "vreg_l17a_2p8";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
		};
		vreg_l18a_2p8: l18 {
			regulator-name = "vreg_l18a_2p8";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
		};
		vreg_l22a_3p0: l22 {
			regulator-name = "vreg_l22a_3p0";
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <3500000>;
		};
		vreg_l29a_2p7: l29 {
			regulator-name = "vreg_l29a_2p7";
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <2700000>;
		};
	};
};

&vdd_gfx {
	regulator-max-microvolt = <1065000>;
};

&pm8994_gpios {
	gpio-line-names =
		"NC",			/* GPIO_1  */
		"VOL_UP_N",		/* GPIO_2  */
		"SPKR_ID",		/* GPIO_3  */
		"PWM_HAPTICS",		/* GPIO_4  */
		"INFARED_DRV",		/* GPIO_5  */
		"NC",			/* GPIO_6  */
		"KEYPAD_LED_EN_A",	/* GPIO_7  */
		"WL_EN",		/* GPIO_8  */
		"3P3_ENABLE",		/* GPIO_9  */
		"KEYPAD_LED_EN_B",	/* GPIO_10 */
		"FP_ID",		/* GPIO_11 */
		"NC",			/* GPIO_12 */
		"NC",			/* GPIO_13 */
		"NC",			/* GPIO_14 */
		"DIVCLK1_CDC",		/* GPIO_15 */
		"DIVCLK2_HAPTICS",	/* GPIO_16 */
		"NC",			/* GPIO_17 */
		"32KHz_CLK_IN",		/* GPIO_18 */
		"BT_EN",		/* GPIO_19 */
		"PMIC_SLB",		/* GPIO_20 */
		"UIM_BATT_ALARM",	/* GPIO_21 */
		"NC";			/* GPIO_22 */

	keypad_default: keypad-default-state {
		pins = "gpio7", "gpio10";
		function = PMIC_GPIO_FUNC_FUNC1;
		output-low;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
		power-source = <PM8994_GPIO_S4>;
		bias-disable;
	};
};

&pm8994_mpps {
	gpio-line-names =
		"VREF_SDC_UIM_APC",	/* MPP_1 */
		"NC",			/* MPP_2 */
		"VREF_DACX",		/* MPP_3 */
		"NC",			/* MPP_4 */
		"NC",			/* MPP_5 */
		"STAT_SMB1351",		/* MPP_6 */
		"NC",			/* MPP_7 */
		"NC";			/* MPP_8 */
};

&pmi8994_gpios {
	gpio-line-names =
		"NC",			/* GPIO_1  */
		"SPKR_PA_RST",		/* GPIO_2  */
		"NC",			/* GPIO_3  */
		"NC",			/* GPIO_4  */
		"NC",			/* GPIO_5  */
		"NC",			/* GPIO_6  */
		"NC",			/* GPIO_7  */
		"NC",			/* GPIO_8  */
		"NC",			/* GPIO_9  */
		"NC";			/* GPIO_10 */
};

&tlmm {
	gpio-line-names =
		"ESE_SPI_MOSI",		/* GPIO_0   */
		"ESE_SPI_MISO",		/* GPIO_1   */
		"NC",			/* GPIO_2   */
		"ESE_SPI_CLK",		/* GPIO_3   */
		"MSM_UART_TX",		/* GPIO_4   */
		"MSM_UART_RX",		/* GPIO_5   */
		"NFC_I2C_SDA",		/* GPIO_6   */
		"NFC_I2C_SCL",		/* GPIO_7   */
		"OLED_RESET_N",		/* GPIO_8   */
		"NFC_IRQ",		/* GPIO_9   */
		"OLED_TE",		/* GPIO_10  */
		"OLED_ID_DET1",		/* GPIO_11  */
		"NFC_DISABLE",		/* GPIO_12  */
		"CAM_MCLK0",		/* GPIO_13  */
		"OLED_ID_DET2",		/* GPIO_14  */
		"CAM_MCLK2",		/* GPIO_15  */
		"ESE_PWR_REQ",		/* GPIO_16  */
		"CCI_I2C_SDA0",		/* GPIO_17  */
		"CCI_I2C_SCL0",		/* GPIO_18  */
		"CCI_I2C_SDA1",		/* GPIO_19  */
		"CCI_I2C_SCL1",		/* GPIO_20  */
		"NFC_DWL_REQ",		/* GPIO_21  */
		"CCI_TIMER1",		/* GPIO_22  */
		"WEBCAM1_RESET_N",	/* GPIO_23  */
		"ESE_IRQ",		/* GPIO_24  */
		"NC",			/* GPIO_25  */
		"WEBCAM1_STANDBY",	/* GPIO_26  */
		"NC",			/* GPIO_27  */
		"NC",			/* GPIO_28  */
		"OLED_ERR_FG",		/* GPIO_29  */
		"CAM1_RST_N",		/* GPIO_30  */
		"HIFI_SW_MUTE",		/* GPIO_31  */
		"NC",			/* GPIO_32  */
		"NC",			/* GPIO_33  */
		"FP_DOME_SW",		/* GPIO_34  */
		"PCI_E0_RST_N",		/* GPIO_35  */
		"PCI_E0_CLKREQ_N",	/* GPIO_36  */
		"PCI_E0_WAKE",		/* GPIO_37  */
		"OV_PWDN",		/* GPIO_38  */
		"NC",			/* GPIO_39  */
		"VDDR_1P6_EN",		/* GPIO_40  */
		"QCA_UART_TXD",		/* GPIO_41  */
		"QCA_UART_RXD",		/* GPIO_42  */
		"QCA_UART_CTS",		/* GPIO_43  */
		"QCA_UART_RTS",		/* GPIO_44  */
		"MAWC_UART_TX",		/* GPIO_45  */
		"MAWC_UART_RX",		/* GPIO_46  */
		"NC",			/* GPIO_47  */
		"NC",			/* GPIO_48  */
		"AUDIO_SWITCH_EN",	/* GPIO_49  */
		"FP_SPI_RST",		/* GPIO_50  */
		"TYPEC_I2C_SDA",	/* GPIO_51  */
		"TYPEC_I2C_SCL",	/* GPIO_52  */
		"CODEC_INT2_N",		/* GPIO_53  */
		"CODEC_INT1_N",		/* GPIO_54  */
		"APPS_I2C7_SDA",	/* GPIO_55  */
		"APPS_I2C7_SCL",	/* GPIO_56  */
		"FORCE_USB_BOOT",	/* GPIO_57  */
		"SPKR_I2S_BCK",		/* GPIO_58  */
		"SPKR_I2S_WS",		/* GPIO_59  */
		"SPKR_I2S_DOUT",	/* GPIO_60  */
		"SPKR_I2S_DIN",		/* GPIO_61  */
		"ESE_RSTN",		/* GPIO_62  */
		"TYPEC_INT",		/* GPIO_63  */
		"CODEC_RESET_N",	/* GPIO_64  */
		"PCM_CLK",		/* GPIO_65  */
		"PCM_SYNC",		/* GPIO_66  */
		"PCM_DIN",		/* GPIO_67  */
		"PCM_DOUT",		/* GPIO_68  */
		"CDC_44K1_CLK",		/* GPIO_69  */
		"SLIMBUS_CLK",		/* GPIO_70  */
		"SLIMBUS_DATA0",	/* GPIO_71  */
		"SLIMBUS_DATA1",	/* GPIO_72  */
		"LDO_5V_IN_EN",		/* GPIO_73  */
		"NC",			/* GPIO_74  */
		"TSP_RST_N",		/* GPIO_75  */
		"NC",			/* GPIO_76  */
		"TOUCHKEY_INT",		/* GPIO_77  */
		"SPKR_I2S_MCLK",	/* GPIO_78  */
		"SPKR_PA_INT",		/* GPIO_79  */
		"SENSOR_RESET_N",	/* GPIO_80  */
		"FP_SPI_MOSI",		/* GPIO_81  */
		"FP_SPI_MISO",		/* GPIO_82  */
		"FP_SPI_CS_N",		/* GPIO_83  */
		"FP_SPI_CLK",		/* GPIO_84  */
		"HIFI_SD",		/* GPIO_85  */
		"CAM_VDD_1P05_EN",	/* GPIO_86  */
		"MSM_TS_I2C_SDA",	/* GPIO_87  */
		"MSM_TS_I2C_SCL",	/* GPIO_88  */
		"NC",			/* GPIO_89  */
		"ESE_SPI_CS_N",		/* GPIO_90  */
		"NC",			/* GPIO_91  */
		"NC",			/* GPIO_92  */
		"NC",			/* GPIO_93  */
		"NC",			/* GPIO_94  */
		"NC",			/* GPIO_95  */
		"NC",			/* GPIO_96  */
		"GRFC_0",		/* GPIO_97  */
		"GRFC_1",		/* GPIO_98  */
		"NC",			/* GPIO_99  */
		"GRFC_3",		/* GPIO_100 */
		"GRFC_4",		/* GPIO_101 */
		"NC",			/* GPIO_102 */
		"NC",			/* GPIO_103 */
		"GRFC_7",		/* GPIO_104 */
		"UIM2_DATA",		/* GPIO_105 */
		"UIM2_CLK",		/* GPIO_106 */
		"UIM2_RESET",		/* GPIO_107 */
		"UIM2_PRESENT",		/* GPIO_108 */
		"UIM1_DATA",		/* GPIO_109 */
		"UIM1_CLK",		/* GPIO_110 */
		"UIM1_RESET",		/* GPIO_111 */
		"UIM1_PRESENT",		/* GPIO_112 */
		"UIM_BATT_ALARM",	/* GPIO_113 */
		"GRFC_8",		/* GPIO_114 */
		"GRFC_9",		/* GPIO_115 */
		"TX_GTR_THRES",		/* GPIO_116 */
		"ACC_INT",		/* GPIO_117 */
		"GYRO_INT",		/* GPIO_118 */
		"COMPASS_INT",		/* GPIO_119 */
		"PROXIMITY_INT_N",	/* GPIO_120 */
		"FP_IRQ",		/* GPIO_121 */
		"TSP_TA",		/* GPIO_122 */
		"HALL_INTR2",		/* GPIO_123 */
		"HALL_INTR1",		/* GPIO_124 */
		"TS_INT_N",		/* GPIO_125 */
		"NC",			/* GPIO_126 */
		"GRFC_11",		/* GPIO_127 */
		"HIFI_PWR_EN",		/* GPIO_128 */
		"EXT_GPS_LNA_EN",	/* GPIO_129 */
		"NC",			/* GPIO_130 */
		"NC",			/* GPIO_131 */
		"NC",			/* GPIO_132 */
		"GRFC_14",		/* GPIO_133 */
		"GSM_TX2_PHASE_D",	/* GPIO_134 */
		"HIFI_SW_SEL",		/* GPIO_135 */
		"GRFC_15",		/* GPIO_136 */
		"RFFE3_DATA",		/* GPIO_137 */
		"RFFE3_CLK",		/* GPIO_138 */
		"NC",			/* GPIO_139 */
		"NC",			/* GPIO_140 */
		"RFFE5_DATA",		/* GPIO_141 */
		"RFFE5_CLK",		/* GPIO_142 */
		"NC",			/* GPIO_143 */
		"COEX_UART_TX",		/* GPIO_144 */
		"COEX_UART_RX",		/* GPIO_145 */
		"RFFE2_DATA",		/* GPIO_146 */
		"RFFE2_CLK",		/* GPIO_147 */
		"RFFE1_DATA",		/* GPIO_148 */
		"RFFE1_CLK";		/* GPIO_149 */

	touchkey_default: touchkey-default-state {
		pins = "gpio77";
		function = "gpio";
		drive-strength = <16>;
		bias-pull-up;
	};

	touchkey_sleep: touchkey-sleep-state {
		pins = "gpio77";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	touchscreen_default: touchscreen-default-state {
		pins = "gpio75", "gpio125";
		function = "gpio";
		drive-strength = <10>;
		bias-pull-up;
	};

	touchscreen_sleep: touchscreen-sleep-state {
		pins = "gpio75", "gpio125";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};
