From: Yassine Oudjana <yassine.oudjana@gmail.com> Date: Sun, 24 Jul 2022 14:04:17 +0000 (+0300) Subject: arm64: dts: qcom: msm8996-xiaomi-scorpio, natrium: Use MSM8996 Pro X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=cea41be7ca66f0cdd0fa8e76ca799eed149d91c3;p=linux.git arm64: dts: qcom: msm8996-xiaomi-scorpio, natrium: Use MSM8996 Pro The Xiaomi Mi Note 2 has the MSM8996 Pro SoC. Rename the dts to match, include msm8996pro.dtsi, and add the qcom,msm8996pro compatible. To do that, the msm8996.dtsi include in msm8996-xiaomi-common has to be moved to msm8996-xiaomi-gemini, the only device that needs it included after this change. Since MSM8996Pro is largely compatible with MSM8996, keep old compatible too rather than insiting on qcom,msm8996pro only. This allows the code that doesn't yet know about msm8996pro to continue supporting these devices. [DB: Dropped msm-id changes.] Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com> [DB: Applied the same change to Xiaomi Mi 5s Plus (natrium).] Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20220724140421.1933004-4-dmitry.baryshkov@linaro.org --- diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index d7669a7cee9f7..e984dba8575a5 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -37,8 +37,8 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8996-sony-xperia-tone-dora.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8996-sony-xperia-tone-kagura.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8996-sony-xperia-tone-keyaki.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8996-xiaomi-gemini.dtb -dtb-$(CONFIG_ARCH_QCOM) += msm8996-xiaomi-natrium.dtb -dtb-$(CONFIG_ARCH_QCOM) += msm8996-xiaomi-scorpio.dtb +dtb-$(CONFIG_ARCH_QCOM) += msm8996pro-xiaomi-natrium.dtb +dtb-$(CONFIG_ARCH_QCOM) += msm8996pro-xiaomi-scorpio.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8998-asus-novago-tp370ql.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8998-fxtec-pro1.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8998-hp-envy-x2.dtb diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi index 78a1977d05937..d2637909a356b 100644 --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi @@ -3,9 +3,6 @@ * Copyright (c) 2020, Yassine Oudjana <y.oudjana@protonmail.com> */ -/dts-v1/; - -#include "msm8996.dtsi" #include "pm8994.dtsi" #include "pmi8994.dtsi" #include <dt-bindings/input/input.h> diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts index c8e84a934678e..40f964ae80db3 100644 --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts +++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts @@ -5,6 +5,7 @@ /dts-v1/; +#include "msm8996.dtsi" #include "msm8996-xiaomi-common.dtsi" #include <dt-bindings/sound/qcom,q6afe.h> #include <dt-bindings/sound/qcom,q6asm.h> diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts deleted file mode 100644 index 7526f8f473b55..0000000000000 --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts +++ /dev/null @@ -1,414 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause -/* - * Copyright (c) 2022, Alec Su <ae40515@yahoo.com.tw> - */ - -/dts-v1/; - -#include "msm8996-xiaomi-common.dtsi" -#include "pmi8996.dtsi" -#include <dt-bindings/sound/qcom,q6afe.h> -#include <dt-bindings/sound/qcom,q6asm.h> - -/ { - model = "Xiaomi Mi 5s Plus"; - compatible = "xiaomi,natrium", "qcom,msm8996"; - chassis-type = "handset"; - qcom,msm-id = <305 0x10000>; - qcom,board-id = <47 0>; -}; - -&adsp_pil { - firmware-name = "qcom/msm8996/natrium/adsp.mbn"; -}; - -&blsp2_i2c6 { - touchscreen@20 { - compatible = "syna,rmi4-i2c"; - reg = <0x20>; - interrupt-parent = <&tlmm>; - interrupts = <125 IRQ_TYPE_LEVEL_LOW>; - vdd-supply = <&vdd_3v2_tp>; - syna,reset-delay-ms = <200>; - syna,startup-delay-ms = <5>; - - pinctrl-names = "default", "sleep"; - pinctrl-0 = <&touchscreen_default>; - pinctrl-1 = <&touchscreen_sleep>; - }; -}; - -&dsi0 { - status = "okay"; - - vdda-supply = <&vreg_l2a_1p25>; - vcca-supply = <&vreg_l28a_0p925>; - - 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/natrium/a530_zap.mbn"; - }; -}; - -&mss_pil { - firmware-name = "qcom/msm8996/natrium/mba.mbn", - "qcom/msm8996/natrium/modem.mbn"; -}; - -&pmi8994_wled { - status = "okay"; - - qcom,enabled-strings = <0 1>; - qcom,switching-freq = <600>; -}; - -&q6asmdai { - dai@0 { - reg = <0>; - }; - - dai@1 { - reg = <1>; - }; - - dai@2 { - reg = <2>; - }; -}; - -&slpi_pil { - firmware-name = "qcom/msm8996/natrium/slpi.mbn"; -}; - -&sound { - compatible = "qcom,apq8096-sndcard"; - model = "natrium"; - 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 6>; - }; - }; - - slimcap-dai-link { - link-name = "SLIM Capture"; - cpu { - sound-dai = <&q6afedai SLIMBUS_0_TX>; - }; - - platform { - sound-dai = <&q6routing>; - }; - - codec { - sound-dai = <&wcd9335 1>; - }; - }; -}; - -&venus { - firmware-name = "qcom/msm8996/natrium/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_l29a_2p8: l29 { - regulator-name = "vreg_l29a_2p8"; - 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_A", /* GPIO_7 */ - "WL_EN", /* GPIO_8 */ - "3P3_ENABLE", /* GPIO_9 */ - "NC", /* 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 */ -}; - -&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_EN", /* 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 */ - "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 */ - "CAM_MCLK1", /* 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 */ - "CAM_VDD_1P2_EN_2", /* GPIO_30 */ - "CAM_RESET_0", /* GPIO_31 */ - "CAM_RESET_1", /* GPIO_32 */ - "NC", /* GPIO_33 */ - "NC", /* GPIO_34 */ - "PCI_E0_RST_N", /* GPIO_35 */ - "PCI_E0_CLKREQ_N", /* GPIO_36 */ - "PCI_E0_WAKE", /* GPIO_37 */ - "CHARGER_INT", /* GPIO_38 */ - "CHARGER_RESET", /* 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 */ - "NC", /* 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 */ - "NC", /* GPIO_58 */ - "NC", /* GPIO_59 */ - "NC", /* GPIO_60 */ - "NC", /* 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 */ - "TYPEC_EN_N", /* GPIO_74 */ - "NC", /* GPIO_75 */ - "NC", /* GPIO_76 */ - "NC", /* GPIO_77 */ - "NC", /* 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_1P2_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 */ - "CAM2_AVDD_EN", /* GPIO_92 */ - "CAM2_VCM_EN", /* 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 */ - "GRFC_5", /* 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 */ - "P_SENSE", /* 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 */ - "LCD_ID_DET2", /* GPIO_131 */ - "LCD_TE2", /* GPIO_132 */ - "GRFC_14", /* GPIO_133 */ - "GSM_TX2_PHASE_D", /* GPIO_134 */ - "NC", /* 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 */ - - 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; - }; -}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts deleted file mode 100644 index b751cbbf1a232..0000000000000 --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts +++ /dev/null @@ -1,498 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause -/* - * Copyright (c) 2020, Yassine Oudjana <y.oudjana@protonmail.com> - */ - -/dts-v1/; - -#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,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 { - pins = "gpio77"; - function = "gpio"; - drive-strength = <16>; - bias-pull-up; - }; - - touchkey_sleep: touchkey_sleep { - pins = "gpio77"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - }; - - touchscreen_default: touchscreen_default { - pins = "gpio75", "gpio125"; - function = "gpio"; - drive-strength = <10>; - bias-pull-up; - }; - - touchscreen_sleep: touchscreen_sleep { - pins = "gpio75", "gpio125"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - }; -}; diff --git a/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-natrium.dts b/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-natrium.dts new file mode 100644 index 0000000000000..b18ee5c1f6789 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-natrium.dts @@ -0,0 +1,415 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022, Alec Su <ae40515@yahoo.com.tw> + */ + +/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> + +/ { + model = "Xiaomi Mi 5s Plus"; + compatible = "xiaomi,natrium", "qcom,msm8996pro", "qcom,msm8996"; + chassis-type = "handset"; + qcom,msm-id = <305 0x10000>; + qcom,board-id = <47 0>; +}; + +&adsp_pil { + firmware-name = "qcom/msm8996/natrium/adsp.mbn"; +}; + +&blsp2_i2c6 { + touchscreen@20 { + compatible = "syna,rmi4-i2c"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 IRQ_TYPE_LEVEL_LOW>; + vdd-supply = <&vdd_3v2_tp>; + syna,reset-delay-ms = <200>; + syna,startup-delay-ms = <5>; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&touchscreen_default>; + pinctrl-1 = <&touchscreen_sleep>; + }; +}; + +&dsi0 { + status = "okay"; + + vdda-supply = <&vreg_l2a_1p25>; + vcca-supply = <&vreg_l28a_0p925>; + + 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/natrium/a530_zap.mbn"; + }; +}; + +&mss_pil { + firmware-name = "qcom/msm8996/natrium/mba.mbn", + "qcom/msm8996/natrium/modem.mbn"; +}; + +&pmi8994_wled { + status = "okay"; + + qcom,enabled-strings = <0 1>; + qcom,switching-freq = <600>; +}; + +&q6asmdai { + dai@0 { + reg = <0>; + }; + + dai@1 { + reg = <1>; + }; + + dai@2 { + reg = <2>; + }; +}; + +&slpi_pil { + firmware-name = "qcom/msm8996/natrium/slpi.mbn"; +}; + +&sound { + compatible = "qcom,apq8096-sndcard"; + model = "natrium"; + 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 6>; + }; + }; + + slimcap-dai-link { + link-name = "SLIM Capture"; + cpu { + sound-dai = <&q6afedai SLIMBUS_0_TX>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <&wcd9335 1>; + }; + }; +}; + +&venus { + firmware-name = "qcom/msm8996/natrium/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_l29a_2p8: l29 { + regulator-name = "vreg_l29a_2p8"; + 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_A", /* GPIO_7 */ + "WL_EN", /* GPIO_8 */ + "3P3_ENABLE", /* GPIO_9 */ + "NC", /* 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 */ +}; + +&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_EN", /* 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 */ + "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 */ + "CAM_MCLK1", /* 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 */ + "CAM_VDD_1P2_EN_2", /* GPIO_30 */ + "CAM_RESET_0", /* GPIO_31 */ + "CAM_RESET_1", /* GPIO_32 */ + "NC", /* GPIO_33 */ + "NC", /* GPIO_34 */ + "PCI_E0_RST_N", /* GPIO_35 */ + "PCI_E0_CLKREQ_N", /* GPIO_36 */ + "PCI_E0_WAKE", /* GPIO_37 */ + "CHARGER_INT", /* GPIO_38 */ + "CHARGER_RESET", /* 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 */ + "NC", /* 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 */ + "NC", /* GPIO_58 */ + "NC", /* GPIO_59 */ + "NC", /* GPIO_60 */ + "NC", /* 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 */ + "TYPEC_EN_N", /* GPIO_74 */ + "NC", /* GPIO_75 */ + "NC", /* GPIO_76 */ + "NC", /* GPIO_77 */ + "NC", /* 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_1P2_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 */ + "CAM2_AVDD_EN", /* GPIO_92 */ + "CAM2_VCM_EN", /* 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 */ + "GRFC_5", /* 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 */ + "P_SENSE", /* 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 */ + "LCD_ID_DET2", /* GPIO_131 */ + "LCD_TE2", /* GPIO_132 */ + "GRFC_14", /* GPIO_133 */ + "GSM_TX2_PHASE_D", /* GPIO_134 */ + "NC", /* 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 */ + + 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; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts b/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts new file mode 100644 index 0000000000000..7bf6ad1a214bd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts @@ -0,0 +1,499 @@ +// 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 { + pins = "gpio77"; + function = "gpio"; + drive-strength = <16>; + bias-pull-up; + }; + + touchkey_sleep: touchkey_sleep { + pins = "gpio77"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + touchscreen_default: touchscreen_default { + pins = "gpio75", "gpio125"; + function = "gpio"; + drive-strength = <10>; + bias-pull-up; + }; + + touchscreen_sleep: touchscreen_sleep { + pins = "gpio75", "gpio125"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; +};