// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, Raffaele Tranquillini <raffaele.tranquillini@gmail.com>
 */

/dts-v1/;

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

/ {
	model = "Xiaomi Mi 5";
	compatible = "xiaomi,gemini", "qcom,msm8996";
	chassis-type = "handset";
	qcom,msm-id = <246 0x30001>;
	qcom,pmic-id = <0x20009 0x2000a 0x00 0x00>;
	qcom,board-id = <31 0>;

	clocks {
		divclk2_haptics: divclk2 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <32768>;
			clock-output-names = "divclk2";

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

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

&blsp2_i2c3 {
	haptics: drv2604@5a {
		compatible = "ti,drv2604";
		reg = <0x5a>;
		enable-gpio = <&tlmm 93 0x00>;
		mode = <DRV260X_LRA_MODE>;
		library-sel = <DRV260X_LIB_LRA>;
		pinctrl-names = "default","sleep";
		pinctrl-0 = <&vibrator_default>;
		pinctrl-1 = <&vibrator_sleep>;
	};

	lp5562@30 {
		compatible = "ti,lp5562";
		reg = <0x30>;
		#address-cells = <1>;
		#size-cells = <0>;
		enable-gpio = <&pm8994_gpios 7 1>;
		clock-mode = /bits/8 <2>;
		label = "button-backlight";

		led@0 {
			reg = <0>;
			chan-name = "button-backlight";
			led-cur = /bits/ 8 <0x32>;
			max-cur = /bits/ 8 <0xC8>;
		};

		led@1 {
			reg = <0>;
			chan-name = "button-backlight1";
			led-cur = /bits/ 8 <0x32>;
			max-cur = /bits/ 8 <0xC8>;
		};
	};
};

&blsp2_i2c6 {
	synaptics@20 {
		compatible = "syna,rmi4-i2c";
		reg = <0x20>;
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = <&tlmm>;
		interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
		vio-supply = <&vreg_l6a_1p8>;
		vdd-supply = <&vdd_3v2_tp>;
		reset-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;

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

};

&dsi0 {
	status = "okay";

	vdd-supply = <&vreg_l2a_1p25>;
	vdda-supply = <&vreg_l19a_3p3>;
	vddio-supply = <&vreg_l14a_1p8>;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&mdss_dsi_default &mdss_te_default>;
	pinctrl-1 = <&mdss_dsi_sleep &mdss_te_sleep>;

	panel: panel@0 {
		compatible = "jdi,fhd-r63452";
		reg = <0>;
		reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
		backlight = <&pmi8994_wled>;

		port {
			panel_in: endpoint {
				remote-endpoint = <&dsi0_out>;
			};
		};
	};
};

&dsi0_out {
	remote-endpoint = <&panel_in>;
};

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

&pmi8994_wled {
	status = "okay";
};

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

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

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

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

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

&sound {
	compatible = "qcom,apq8096-sndcard";
	model = "gemini";
	audio-routing = "RX_BIAS", "MCLK",
		"MM_DL1",  "MultiMedia1 Playback",
		"MM_DL2",  "MultiMedia2 Playback",
		"MultiMedia3 Capture", "MM_UL3";

	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/gemini/venus.mbn";
};

&rpm_requests {
	pm8994-regulators {
		vreg_l17a_2p8: l17 {
			regulator-name = "vreg_l17a_2p8";
			regulator-min-microvolt = <2500000>;
			regulator-max-microvolt = <2500000>;
		};
		vreg_l29a_2p7: l29 {
			regulator-name = "vreg_l29a_2p7";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
		};
	};
};

&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",	/* GPIO_7  */
		"WL_EN",		/* GPIO_8  */
		"3P3_ENABLE",		/* GPIO_9  */
		"FP_ID",		/* GPIO_10 */
		"NC",			/* 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 */

	divclk2_pin_a: divclk2-state {
		pins = "gpio16";
		function = PMIC_GPIO_FUNC_FUNC2;
		bias-disable;
		power-source = <PM8994_GPIO_S4>;
	};
};

&pm8994_mpps {
	gpio-line-names =
		"NC",			/* MPP_1 */
		"CCI_TIMER1",		/* MPP_2 */
		"PMIC_SLB",		/* MPP_3 */
		"EXT_FET_WLED_PWR_EN_N",/* MPP_4 */
		"NC",			/* MPP_5 */
		"NC",			/* 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   */
		"ERR_INT_N",		/* 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   */
		"LCD0_RESET_N",		/* GPIO_8   */
		"NFC_IRQ",		/* GPIO_9   */
		"LCD_TE",		/* GPIO_10  */
		"LCD_ID_DET1",		/* GPIO_11  */
		"NFC_DISABLE",		/* GPIO_12  */
		"CAM_MCLK0",		/* GPIO_13  */
		"NC",			/* 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  */
		"NC",			/* GPIO_29  */
		"CAM1_RST_N",		/* GPIO_30  */
		"NC",			/* 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  */
		"FM_INT_N",		/* GPIO_38  */
		"FM_RESET_N",		/* GPIO_39  */
		"NC",			/* 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  */
		"HIFI_CLK",		/* GPIO_69  */
		"SLIMBUS_CLK",		/* GPIO_70  */
		"SLIMBUS_DATA0",	/* GPIO_71  */
		"SLIMBUS_DATA1",	/* GPIO_72  */
		"LDO_5V_IN_EN",		/* GPIO_73  */
		"NC",			/* GPIO_74  */
		"FM_I2S_CLK",		/* GPIO_75  */
		"FM_I2S_SYNC",		/* GPIO_76  */
		"FM_I2S_DATA",		/* GPIO_77  */
		"FM_STATUS",		/* GPIO_78  */
		"NC",			/* 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  */
		"NC",			/* GPIO_85  */
		"CAM_VDD_1P05_EN",	/* GPIO_86  */
		"MSM_TS_I2C_SDA",	/* GPIO_87  */
		"MSM_TS_I2C_SCL",	/* GPIO_88  */
		"TS_RESOUT_N",		/* GPIO_89  */
		"ESE_SPI_CS_N",		/* GPIO_90  */
		"NC",			/* GPIO_91  */
		"NC",			/* GPIO_92  */
		"HAPTICS_EN",		/* GPIO_93  */
		"NC",			/* GPIO_94  */
		"NC",			/* GPIO_95  */
		"NC",			/* GPIO_96  */
		"NC",			/* 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 */
		"ACCEL_INT",		/* GPIO_117 */
		"GYRO_INT",		/* GPIO_118 */
		"COMPASS_INT",		/* GPIO_119 */
		"PROXIMITY_INT_N",	/* GPIO_120 */
		"FP_IRQ",		/* GPIO_121 */
		"NC",			/* GPIO_122 */
		"HALL_INTR2",		/* GPIO_123 */
		"HALL_INTR1",		/* GPIO_124 */
		"TS_INT_N",		/* GPIO_125 */
		"NC",			/* GPIO_126 */
		"GRFC_11",		/* GPIO_127 */
		"NC",			/* 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 */
		"NC",			/* GPIO_135 */
		"NC",			/* 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 */

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

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

	vibrator_default: vibrator_default {
		pins = "gpio93";
		function = "gpio";
		drive-strength = <8>;
		bias-pull-up;
	};

	vibrator_sleep: vibrator_sleep {
		pins = "gpio93";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};
