123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475 |
- // SPDX-License-Identifier: BSD-3-Clause
- /*
- * Copyright (c) 2021, Raffaele Tranquillini <[email protected]>
- */
- /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;
- };
- };
|