Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003  * Copyright (c) 2021, Raffaele Tranquillini <raffaele.tranquillini@gmail.com>
0004  */
0005 
0006 /dts-v1/;
0007 
0008 #include "msm8996-xiaomi-common.dtsi"
0009 #include <dt-bindings/sound/qcom,q6afe.h>
0010 #include <dt-bindings/sound/qcom,q6asm.h>
0011 #include <dt-bindings/input/ti-drv260x.h>
0012 
0013 / {
0014         model = "Xiaomi Mi 5";
0015         compatible = "xiaomi,gemini", "qcom,msm8996";
0016         chassis-type = "handset";
0017         qcom,msm-id = <246 0x30001>;
0018         qcom,pmic-id = <0x20009 0x2000a 0x00 0x00>;
0019         qcom,board-id = <31 0>;
0020 
0021         clocks {
0022                 divclk2_haptics: divclk2 {
0023                         compatible = "fixed-clock";
0024                         #clock-cells = <0>;
0025                         clock-frequency = <32768>;
0026                         clock-output-names = "divclk2";
0027 
0028                         pinctrl-names = "default";
0029                         pinctrl-0 = <&divclk2_pin_a>;
0030                 };
0031         };
0032 };
0033 
0034 &adsp_pil {
0035         firmware-name = "qcom/msm8996/gemini/adsp.mbn";
0036 };
0037 
0038 &blsp2_i2c3 {
0039         haptics: drv2604@5a {
0040                 compatible = "ti,drv2604";
0041                 reg = <0x5a>;
0042                 enable-gpio = <&tlmm 93 0x00>;
0043                 mode = <DRV260X_LRA_MODE>;
0044                 library-sel = <DRV260X_LIB_LRA>;
0045                 pinctrl-names = "default","sleep";
0046                 pinctrl-0 = <&vibrator_default>;
0047                 pinctrl-1 = <&vibrator_sleep>;
0048         };
0049 
0050         lp5562@30 {
0051                 compatible = "ti,lp5562";
0052                 reg = <0x30>;
0053                 #address-cells = <1>;
0054                 #size-cells = <0>;
0055                 enable-gpio = <&pm8994_gpios 7 1>;
0056                 clock-mode = /bits/8 <2>;
0057                 label = "button-backlight";
0058 
0059                 led@0 {
0060                         reg = <0>;
0061                         chan-name = "button-backlight";
0062                         led-cur = /bits/ 8 <0x32>;
0063                         max-cur = /bits/ 8 <0xC8>;
0064                 };
0065 
0066                 led@1 {
0067                         reg = <0>;
0068                         chan-name = "button-backlight1";
0069                         led-cur = /bits/ 8 <0x32>;
0070                         max-cur = /bits/ 8 <0xC8>;
0071                 };
0072         };
0073 };
0074 
0075 &blsp2_i2c6 {
0076         synaptics@20 {
0077                 compatible = "syna,rmi4-i2c";
0078                 reg = <0x20>;
0079                 #address-cells = <1>;
0080                 #size-cells = <0>;
0081                 interrupt-parent = <&tlmm>;
0082                 interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
0083                 vdda-supply = <&vreg_l6a_1p8>;
0084                 vdd-supply = <&vdd_3v2_tp>;
0085                 reset-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
0086 
0087                 pinctrl-names = "default", "sleep";
0088                 pinctrl-0 = <&touchscreen_default>;
0089                 pinctrl-1 = <&touchscreen_sleep>;
0090         };
0091 
0092 };
0093 
0094 &dsi0 {
0095         status = "okay";
0096 
0097         vdd-supply = <&vreg_l2a_1p25>;
0098         vdda-supply = <&vreg_l19a_3p3>;
0099         vddio-supply = <&vreg_l14a_1p8>;
0100 
0101         pinctrl-names = "default", "sleep";
0102         pinctrl-0 = <&mdss_dsi_default &mdss_te_default>;
0103         pinctrl-1 = <&mdss_dsi_sleep &mdss_te_sleep>;
0104 
0105         panel: panel@0 {
0106                 compatible = "jdi,fhd-r63452";
0107                 reg = <0>;
0108                 reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
0109                 backlight = <&pmi8994_wled>;
0110 
0111                 port {
0112                         panel_in: endpoint {
0113                                 remote-endpoint = <&dsi0_out>;
0114                         };
0115                 };
0116         };
0117 };
0118 
0119 &dsi0_out {
0120         remote-endpoint = <&panel_in>;
0121 };
0122 
0123 &gpu {
0124         zap-shader {
0125                 firmware-name = "qcom/msm8996/gemini/a530_zap.mbn";
0126         };
0127 };
0128 
0129 &pmi8994_wled {
0130         status = "okay";
0131 };
0132 
0133 &mss_pil {
0134         firmware-name = "qcom/msm8996/gemini/mba.mbn",
0135                         "qcom/msm8996/gemini/modem.mbn";
0136 };
0137 
0138 &q6asmdai {
0139         dai@0 {
0140                 reg = <0>;
0141         };
0142 
0143         dai@1 {
0144                 reg = <1>;
0145         };
0146 
0147         dai@2 {
0148                 reg = <2>;
0149         };
0150 };
0151 
0152 &slpi_pil {
0153         firmware-name = "qcom/msm8996/gemini/slpi.mbn";
0154 };
0155 
0156 &sound {
0157         compatible = "qcom,apq8096-sndcard";
0158         model = "gemini";
0159         audio-routing = "RX_BIAS", "MCLK",
0160                 "MM_DL1",  "MultiMedia1 Playback",
0161                 "MM_DL2",  "MultiMedia2 Playback",
0162                 "MultiMedia3 Capture", "MM_UL3";
0163 
0164         mm1-dai-link {
0165                 link-name = "MultiMedia1";
0166                 cpu {
0167                         sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
0168                 };
0169         };
0170 
0171         mm2-dai-link {
0172                 link-name = "MultiMedia2";
0173                 cpu {
0174                         sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
0175                 };
0176         };
0177 
0178         mm3-dai-link {
0179                 link-name = "MultiMedia3";
0180                 cpu {
0181                         sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
0182                 };
0183         };
0184 
0185         slim-dai-link {
0186                 link-name = "SLIM Playback";
0187                 cpu {
0188                         sound-dai = <&q6afedai SLIMBUS_6_RX>;
0189                 };
0190 
0191                 platform {
0192                         sound-dai = <&q6routing>;
0193                 };
0194 
0195                 codec {
0196                         sound-dai = <&wcd9335 6>;
0197                 };
0198         };
0199 
0200         slimcap-dai-link {
0201                 link-name = "SLIM Capture";
0202                 cpu {
0203                         sound-dai = <&q6afedai SLIMBUS_0_TX>;
0204                 };
0205 
0206                 platform {
0207                         sound-dai = <&q6routing>;
0208                 };
0209 
0210                 codec {
0211                         sound-dai = <&wcd9335 1>;
0212                 };
0213         };
0214 };
0215 
0216 &venus {
0217         firmware-name = "qcom/msm8996/gemini/venus.mbn";
0218 };
0219 
0220 &rpm_requests {
0221         pm8994-regulators {
0222                 vreg_l17a_2p8: l17 {
0223                         regulator-name = "vreg_l17a_2p8";
0224                         regulator-min-microvolt = <2500000>;
0225                         regulator-max-microvolt = <2500000>;
0226                 };
0227                 vreg_l29a_2p7: l29 {
0228                         regulator-name = "vreg_l29a_2p7";
0229                         regulator-min-microvolt = <2800000>;
0230                         regulator-max-microvolt = <2800000>;
0231                 };
0232         };
0233 };
0234 
0235 &pm8994_gpios {
0236         gpio-line-names =
0237                 "NC",                   /* GPIO_1  */
0238                 "VOL_UP_N",             /* GPIO_2  */
0239                 "SPKR_ID",              /* GPIO_3  */
0240                 "PWM_HAPTICS",          /* GPIO_4  */
0241                 "INFARED_DRV",          /* GPIO_5  */
0242                 "NC",                   /* GPIO_6  */
0243                 "KEYPAD_LED_EN",        /* GPIO_7  */
0244                 "WL_EN",                /* GPIO_8  */
0245                 "3P3_ENABLE",           /* GPIO_9  */
0246                 "FP_ID",                /* GPIO_10 */
0247                 "NC",                   /* GPIO_11 */
0248                 "NC",                   /* GPIO_12 */
0249                 "NC",                   /* GPIO_13 */
0250                 "NC",                   /* GPIO_14 */
0251                 "DIVCLK1_CDC",          /* GPIO_15 */
0252                 "DIVCLK2_HAPTICS",      /* GPIO_16 */
0253                 "NC",                   /* GPIO_17 */
0254                 "32KHz_CLK_IN",         /* GPIO_18 */
0255                 "BT_EN",                /* GPIO_19 */
0256                 "PMIC_SLB",             /* GPIO_20 */
0257                 "UIM_BATT_ALARM",       /* GPIO_21 */
0258                 "NC";                   /* GPIO_22 */
0259 
0260         divclk2_pin_a: divclk2-state {
0261                 pins = "gpio16";
0262                 function = PMIC_GPIO_FUNC_FUNC2;
0263                 bias-disable;
0264                 power-source = <PM8994_GPIO_S4>;
0265         };
0266 };
0267 
0268 &pm8994_mpps {
0269         gpio-line-names =
0270                 "NC",                   /* MPP_1 */
0271                 "CCI_TIMER1",           /* MPP_2 */
0272                 "PMIC_SLB",             /* MPP_3 */
0273                 "EXT_FET_WLED_PWR_EN_N",/* MPP_4 */
0274                 "NC",                   /* MPP_5 */
0275                 "NC",                   /* MPP_6 */
0276                 "NC",                   /* MPP_7 */
0277                 "NC";                   /* MPP_8 */
0278 };
0279 
0280 &pmi8994_gpios {
0281         gpio-line-names =
0282                 "NC",                   /* GPIO_1  */
0283                 "SPKR_PA_RST",          /* GPIO_2  */
0284                 "NC",                   /* GPIO_3  */
0285                 "NC",                   /* GPIO_4  */
0286                 "NC",                   /* GPIO_5  */
0287                 "NC",                   /* GPIO_6  */
0288                 "NC",                   /* GPIO_7  */
0289                 "NC",                   /* GPIO_8  */
0290                 "NC",                   /* GPIO_9  */
0291                 "NC";                   /* GPIO_10 */
0292 };
0293 
0294 &tlmm {
0295         gpio-line-names =
0296                 "ESE_SPI_MOSI",         /* GPIO_0   */
0297                 "ESE_SPI_MISO",         /* GPIO_1   */
0298                 "ERR_INT_N",            /* GPIO_2   */
0299                 "ESE_SPI_CLK",          /* GPIO_3   */
0300                 "MSM_UART_TX",          /* GPIO_4   */
0301                 "MSM_UART_RX",          /* GPIO_5   */
0302                 "NFC_I2C_SDA",          /* GPIO_6   */
0303                 "NFC_I2C_SCL",          /* GPIO_7   */
0304                 "LCD0_RESET_N",         /* GPIO_8   */
0305                 "NFC_IRQ",              /* GPIO_9   */
0306                 "LCD_TE",               /* GPIO_10  */
0307                 "LCD_ID_DET1",          /* GPIO_11  */
0308                 "NFC_DISABLE",          /* GPIO_12  */
0309                 "CAM_MCLK0",            /* GPIO_13  */
0310                 "NC",                   /* GPIO_14  */
0311                 "CAM_MCLK2",            /* GPIO_15  */
0312                 "ESE_PWR_REQ",          /* GPIO_16  */
0313                 "CCI_I2C_SDA0",         /* GPIO_17  */
0314                 "CCI_I2C_SCL0",         /* GPIO_18  */
0315                 "CCI_I2C_SDA1",         /* GPIO_19  */
0316                 "CCI_I2C_SCL1",         /* GPIO_20  */
0317                 "NFC_DWL_REQ",          /* GPIO_21  */
0318                 "CCI_TIMER1",           /* GPIO_22  */
0319                 "WEBCAM1_RESET_N",      /* GPIO_23  */
0320                 "ESE_IRQ",              /* GPIO_24  */
0321                 "NC",                   /* GPIO_25  */
0322                 "WEBCAM1_STANDBY",      /* GPIO_26  */
0323                 "NC",                   /* GPIO_27  */
0324                 "NC",                   /* GPIO_28  */
0325                 "NC",                   /* GPIO_29  */
0326                 "CAM1_RST_N",           /* GPIO_30  */
0327                 "NC",                   /* GPIO_31  */
0328                 "NC",                   /* GPIO_32  */
0329                 "NC",                   /* GPIO_33  */
0330                 "FP_DOME_SW",           /* GPIO_34  */
0331                 "PCI_E0_RST_N",         /* GPIO_35  */
0332                 "PCI_E0_CLKREQ_N",      /* GPIO_36  */
0333                 "PCI_E0_WAKE",          /* GPIO_37  */
0334                 "FM_INT_N",             /* GPIO_38  */
0335                 "FM_RESET_N",           /* GPIO_39  */
0336                 "NC",                   /* GPIO_40  */
0337                 "QCA_UART_TXD",         /* GPIO_41  */
0338                 "QCA_UART_RXD",         /* GPIO_42  */
0339                 "QCA_UART_CTS",         /* GPIO_43  */
0340                 "QCA_UART_RTS",         /* GPIO_44  */
0341                 "MAWC_UART_TX",         /* GPIO_45  */
0342                 "MAWC_UART_RX",         /* GPIO_46  */
0343                 "NC",                   /* GPIO_47  */
0344                 "NC",                   /* GPIO_48  */
0345                 "AUDIO_SWITCH_EN",      /* GPIO_49  */
0346                 "FP_SPI_RST",           /* GPIO_50  */
0347                 "TYPEC_I2C_SDA",        /* GPIO_51  */
0348                 "TYPEC_I2C_SCL",        /* GPIO_52  */
0349                 "CODEC_INT2_N",         /* GPIO_53  */
0350                 "CODEC_INT1_N",         /* GPIO_54  */
0351                 "APPS_I2C7_SDA",        /* GPIO_55  */
0352                 "APPS_I2C7_SCL",        /* GPIO_56  */
0353                 "FORCE_USB_BOOT",       /* GPIO_57  */
0354                 "SPKR_I2S_BCK",         /* GPIO_58  */
0355                 "SPKR_I2S_WS",          /* GPIO_59  */
0356                 "SPKR_I2S_DOUT",        /* GPIO_60  */
0357                 "SPKR_I2S_DIN",         /* GPIO_61  */
0358                 "ESE_RSTN",             /* GPIO_62  */
0359                 "TYPEC_INT",            /* GPIO_63  */
0360                 "CODEC_RESET_N",        /* GPIO_64  */
0361                 "PCM_CLK",              /* GPIO_65  */
0362                 "PCM_SYNC",             /* GPIO_66  */
0363                 "PCM_DIN",              /* GPIO_67  */
0364                 "PCM_DOUT",             /* GPIO_68  */
0365                 "HIFI_CLK",             /* GPIO_69  */
0366                 "SLIMBUS_CLK",          /* GPIO_70  */
0367                 "SLIMBUS_DATA0",        /* GPIO_71  */
0368                 "SLIMBUS_DATA1",        /* GPIO_72  */
0369                 "LDO_5V_IN_EN",         /* GPIO_73  */
0370                 "NC",                   /* GPIO_74  */
0371                 "FM_I2S_CLK",           /* GPIO_75  */
0372                 "FM_I2S_SYNC",          /* GPIO_76  */
0373                 "FM_I2S_DATA",          /* GPIO_77  */
0374                 "FM_STATUS",            /* GPIO_78  */
0375                 "NC",                   /* GPIO_79  */
0376                 "SENSOR_RESET_N",       /* GPIO_80  */
0377                 "FP_SPI_MOSI",          /* GPIO_81  */
0378                 "FP_SPI_MISO",          /* GPIO_82  */
0379                 "FP_SPI_CS_N",          /* GPIO_83  */
0380                 "FP_SPI_CLK",           /* GPIO_84  */
0381                 "NC",                   /* GPIO_85  */
0382                 "CAM_VDD_1P05_EN",      /* GPIO_86  */
0383                 "MSM_TS_I2C_SDA",       /* GPIO_87  */
0384                 "MSM_TS_I2C_SCL",       /* GPIO_88  */
0385                 "TS_RESOUT_N",          /* GPIO_89  */
0386                 "ESE_SPI_CS_N",         /* GPIO_90  */
0387                 "NC",                   /* GPIO_91  */
0388                 "NC",                   /* GPIO_92  */
0389                 "HAPTICS_EN",           /* GPIO_93  */
0390                 "NC",                   /* GPIO_94  */
0391                 "NC",                   /* GPIO_95  */
0392                 "NC",                   /* GPIO_96  */
0393                 "NC",                   /* GPIO_97  */
0394                 "GRFC_1",               /* GPIO_98  */
0395                 "NC",                   /* GPIO_99  */
0396                 "GRFC_3",               /* GPIO_100 */
0397                 "GRFC_4",               /* GPIO_101 */
0398                 "NC",                   /* GPIO_102 */
0399                 "NC",                   /* GPIO_103 */
0400                 "GRFC_7",               /* GPIO_104 */
0401                 "UIM2_DATA",            /* GPIO_105 */
0402                 "UIM2_CLK",             /* GPIO_106 */
0403                 "UIM2_RESET",           /* GPIO_107 */
0404                 "UIM2_PRESENT",         /* GPIO_108 */
0405                 "UIM1_DATA",            /* GPIO_109 */
0406                 "UIM1_CLK",             /* GPIO_110 */
0407                 "UIM1_RESET",           /* GPIO_111 */
0408                 "UIM1_PRESENT",         /* GPIO_112 */
0409                 "UIM_BATT_ALARM",       /* GPIO_113 */
0410                 "GRFC_8",               /* GPIO_114 */
0411                 "GRFC_9",               /* GPIO_115 */
0412                 "TX_GTR_THRES",         /* GPIO_116 */
0413                 "ACCEL_INT",            /* GPIO_117 */
0414                 "GYRO_INT",             /* GPIO_118 */
0415                 "COMPASS_INT",          /* GPIO_119 */
0416                 "PROXIMITY_INT_N",      /* GPIO_120 */
0417                 "FP_IRQ",               /* GPIO_121 */
0418                 "NC",                   /* GPIO_122 */
0419                 "HALL_INTR2",           /* GPIO_123 */
0420                 "HALL_INTR1",           /* GPIO_124 */
0421                 "TS_INT_N",             /* GPIO_125 */
0422                 "NC",                   /* GPIO_126 */
0423                 "GRFC_11",              /* GPIO_127 */
0424                 "NC",                   /* GPIO_128 */
0425                 "EXT_GPS_LNA_EN",       /* GPIO_129 */
0426                 "NC",                   /* GPIO_130 */
0427                 "NC",                   /* GPIO_131 */
0428                 "NC",                   /* GPIO_132 */
0429                 "GRFC_14",              /* GPIO_133 */
0430                 "GSM_TX2_PHASE_D",      /* GPIO_134 */
0431                 "NC",                   /* GPIO_135 */
0432                 "NC",                   /* GPIO_136 */
0433                 "RFFE3_DATA",           /* GPIO_137 */
0434                 "RFFE3_CLK",            /* GPIO_138 */
0435                 "NC",                   /* GPIO_139 */
0436                 "NC",                   /* GPIO_140 */
0437                 "RFFE5_DATA",           /* GPIO_141 */
0438                 "RFFE5_CLK",            /* GPIO_142 */
0439                 "NC",                   /* GPIO_143 */
0440                 "COEX_UART_TX",         /* GPIO_144 */
0441                 "COEX_UART_RX",         /* GPIO_145 */
0442                 "RFFE2_DATA",           /* GPIO_146 */
0443                 "RFFE2_CLK",            /* GPIO_147 */
0444                 "RFFE1_DATA",           /* GPIO_148 */
0445                 "RFFE1_CLK";            /* GPIO_149 */
0446 
0447         touchscreen_default: touchscreen_default {
0448                 pins = "gpio89", "gpio125";
0449                 function = "gpio";
0450                 drive-strength = <10>;
0451                 bias-pull-up;
0452         };
0453 
0454         touchscreen_sleep: touchscreen_sleep {
0455                 pins = "gpio89", "gpio125";
0456                 function = "gpio";
0457                 drive-strength = <2>;
0458                 bias-disable;
0459         };
0460 
0461         vibrator_default: vibrator_default {
0462                 pins = "gpio93";
0463                 function = "gpio";
0464                 drive-strength = <8>;
0465                 bias-pull-up;
0466         };
0467 
0468         vibrator_sleep: vibrator_sleep {
0469                 pins = "gpio93";
0470                 function = "gpio";
0471                 drive-strength = <2>;
0472                 bias-disable;
0473         };
0474 };