diff mbox series

[1/2] arm64: dts: qcom: msm8996-xiaomi-natrium: Add support for Xiaomi Mi 5s Plus

Message ID 20220519074112.25600-2-ae40515@yahoo.com.tw (mailing list archive)
State Superseded
Headers show
Series Add support for Xiaomi Mi 5s Plus | expand

Commit Message

Alec Su May 19, 2022, 7:41 a.m. UTC
Add the device tree for Xiaomi Mi 5s Plus (natrium).

Signed-off-by: Alec Su <ae40515@yahoo.com.tw>
Reviewed-by: Yassine Oudjana <y.oudjana@protonmail.com>
---
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../boot/dts/qcom/msm8996-xiaomi-natrium.dts  | 419 ++++++++++++++++++
 2 files changed, 420 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts

Comments

Krzysztof Kozlowski May 19, 2022, 9:42 a.m. UTC | #1
On 19/05/2022 09:41, Alec Su wrote:
> Add the device tree for Xiaomi Mi 5s Plus (natrium).
> 
> Signed-off-by: Alec Su <ae40515@yahoo.com.tw>
> Reviewed-by: Yassine Oudjana <y.oudjana@protonmail.com>

This is the first patch, so the review tag is a bit unexepected. Was it
really given?

> ---
>  arch/arm64/boot/dts/qcom/Makefile             |   1 +
>  .../boot/dts/qcom/msm8996-xiaomi-natrium.dts  | 419 ++++++++++++++++++
>  2 files changed, 420 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
> 
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 2f8aec2cc6db..3ae7ecd369fb 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -37,6 +37,7 @@ 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)	+= msm8998-asus-novago-tp370ql.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= msm8998-fxtec-pro1.dtb
> diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
> new file mode 100644
> index 000000000000..212ff0fbf262
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
> @@ -0,0 +1,419 @@
> +// 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>;

There is no such property documented. Either add bindings, or drop.

> +	qcom,board-id = <47 0>;

The same.

> +};
> +
> +&adsp_pil {
> +	firmware-name = "qcom/msm8996/natrium/adsp.mbn";
> +};
> +
> +&blsp2_i2c6 {
> +	synaptics@20 {
> +		compatible = "syna,rmi4-i2c";
> +		reg = <0x20>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;

Why do you have address/size cells here?

> +		interrupt-parent = <&tlmm>;
> +		interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
> +		vdda-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>;
> +	};
> +

No need for blank line.

> +};
> +
> +&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/natrium/a530_zap.mbn";
> +	};
> +};
> +
> +&mss_pil {
> +	firmware-name = "qcom/msm8996/natrium/mba.mbn",
> +			"qcom/msm8996/natrium/modem.mbn";
> +};
> +
> +&pmi8994_wled {
> +	status = "okay";
> +
> +	qcom,num-strings = <2>;
> +	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 {
> +	pm8994-regulators {
> +		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 {

No underscores in node names.

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

The same.

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


Best regards,
Krzysztof
Yassine Oudjana May 19, 2022, 9:57 a.m. UTC | #2
On Thursday, May 19th, 2022 at 1:42 PM, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
> On 19/05/2022 09:41, Alec Su wrote:
>
> > Add the device tree for Xiaomi Mi 5s Plus (natrium).
> >
> > Signed-off-by: Alec Su ae40515@yahoo.com.tw
> > Reviewed-by: Yassine Oudjana y.oudjana@protonmail.com
>
>
> This is the first patch, so the review tag is a bit unexepected. Was it
> really given?

I reviewed it before it was sent. Apparently I wasn't thorough enough
since you found some simple mistakes.

> > ---
> > arch/arm64/boot/dts/qcom/Makefile | 1 +
> > .../boot/dts/qcom/msm8996-xiaomi-natrium.dts | 419 ++++++++++++++++++
> > 2 files changed, 420 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
> >
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index 2f8aec2cc6db..3ae7ecd369fb 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -37,6 +37,7 @@ 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) += msm8998-asus-novago-tp370ql.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += msm8998-fxtec-pro1.dtb
> > diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
> > new file mode 100644
> > index 000000000000..212ff0fbf262
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
> > @@ -0,0 +1,419 @@
> > +// 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>;
>
>
> There is no such property documented. Either add bindings, or drop.
>
> > + qcom,board-id = <47 0>;
>
>
> The same.

These properties are already used in many device trees; they are
needed to let the bootloader pick a DTB, but yes they aren't
documented currently. devicetree/bindings/arm/qcom.yaml would
probably be a good place to put them.

> > +};
> > +
> > +&adsp_pil {
> > + firmware-name = "qcom/msm8996/natrium/adsp.mbn";
> > +};
> > +
> > +&blsp2_i2c6 {
> > + synaptics@20 {
> > + compatible = "syna,rmi4-i2c";
> > + reg = <0x20>;
> > + #address-cells = <1>;
> > + #size-cells = <0>;
>
>
> Why do you have address/size cells here?
>
> > + interrupt-parent = <&tlmm>;
> > + interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
> > + vdda-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>;
> > + };
> > +
>
>
> No need for blank line.
>
> > +};
> > +
> > +&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/natrium/a530_zap.mbn";
> > + };
> > +};
> > +
> > +&mss_pil {
> > + firmware-name = "qcom/msm8996/natrium/mba.mbn",
> > + "qcom/msm8996/natrium/modem.mbn";
> > +};
> > +
> > +&pmi8994_wled {
> > + status = "okay";
> > +
> > + qcom,num-strings = <2>;
> > + 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 {
> > + pm8994-regulators {
> > + 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 {
>
>
> No underscores in node names.
>
> > + pins = "gpio89", "gpio125";
> > + function = "gpio";
> > + drive-strength = <10>;
> > + bias-pull-up;
> > + };
> > +
> > + touchscreen_sleep: touchscreen_sleep {
>
>
> The same.
>
> > + pins = "gpio89", "gpio125";
> > + function = "gpio";
> > + drive-strength = <2>;
> > + bias-disable;
> > + };
> > +};
>
>
>
> Best regards,
> Krzysztof
Krzysztof Kozlowski May 19, 2022, 10:01 a.m. UTC | #3
On 19/05/2022 11:57, Yassine Oudjana wrote:
>>
>> There is no such property documented. Either add bindings, or drop.
>>
>>> + qcom,board-id = <47 0>;
>>
>>
>> The same.
> 
> These properties are already used in many device trees; they are
> needed to let the bootloader pick a DTB, but yes they aren't
> documented currently. devicetree/bindings/arm/qcom.yaml would
> probably be a good place to put them.

Which means each person is using them and not caring about
documenting... they need to be documented. I am not even sure if they
should be accepted.

The DTS describes hardware, not bootloader specific details. The
hardware - board - is defined by compatible and bootloader should use
it. Adding new properties because someone decided "I don't like
compatibles" is not appropriate.


Best regards,
Krzysztof
Krzysztof Kozlowski May 19, 2022, 10:06 a.m. UTC | #4
On 19/05/2022 12:01, Krzysztof Kozlowski wrote:
> On 19/05/2022 11:57, Yassine Oudjana wrote:
>>>
>>> There is no such property documented. Either add bindings, or drop.
>>>
>>>> + qcom,board-id = <47 0>;
>>>
>>>
>>> The same.
>>
>> These properties are already used in many device trees; they are
>> needed to let the bootloader pick a DTB, but yes they aren't
>> documented currently. devicetree/bindings/arm/qcom.yaml would
>> probably be a good place to put them.
> 
> Which means each person is using them and not caring about
> documenting... they need to be documented. I am not even sure if they
> should be accepted.
> 
> The DTS describes hardware, not bootloader specific details. The
> hardware - board - is defined by compatible and bootloader should use
> it. Adding new properties because someone decided "I don't like
> compatibles" is not appropriate.

There is prior art:
https://lkml.org/lkml/2015/10/26/651
https://lore.kernel.org/all/CAL_JsqJAOEvs08Jydn9wWtM7-Oxd=MmmDER48VRF7z3Gkzt0CQ@mail.gmail.com/


Best regards,
Krzysztof
Krzysztof Kozlowski May 19, 2022, 10:36 a.m. UTC | #5
On 19/05/2022 12:06, Krzysztof Kozlowski wrote:
> On 19/05/2022 12:01, Krzysztof Kozlowski wrote:
>> On 19/05/2022 11:57, Yassine Oudjana wrote:
>>>>
>>>> There is no such property documented. Either add bindings, or drop.
>>>>
>>>>> + qcom,board-id = <47 0>;
>>>>
>>>>
>>>> The same.
>>>
>>> These properties are already used in many device trees; they are
>>> needed to let the bootloader pick a DTB, but yes they aren't
>>> documented currently. devicetree/bindings/arm/qcom.yaml would
>>> probably be a good place to put them.
>>
>> Which means each person is using them and not caring about
>> documenting... they need to be documented. I am not even sure if they
>> should be accepted.
>>
>> The DTS describes hardware, not bootloader specific details. The
>> hardware - board - is defined by compatible and bootloader should use
>> it. Adding new properties because someone decided "I don't like
>> compatibles" is not appropriate.
> 
> There is prior art:
> https://lkml.org/lkml/2015/10/26/651
> https://lore.kernel.org/all/CAL_JsqJAOEvs08Jydn9wWtM7-Oxd=MmmDER48VRF7z3Gkzt0CQ@mail.gmail.com/

I found the discussions and I see it stalled. No objection from my side
on this one here. We should solve it on other level.,


Best regards,
Krzysztof
kernel test robot May 20, 2022, 1:34 a.m. UTC | #6
Hi Alec,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on robh/for-next]
[also build test ERROR on v5.18-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Alec-Su/arm64-dts-qcom-msm8996-xiaomi-natrium-Add-support-for-Xiaomi-Mi-5s-Plus/20220519-164217
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: arm64-randconfig-r022-20220518 (https://download.01.org/0day-ci/archive/20220520/202205200926.TE2gqa0N-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/b35e1afb49b50a1d68a67f66a3eb6c4259f329fb
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Alec-Su/arm64-dts-qcom-msm8996-xiaomi-natrium-Add-support-for-Xiaomi-Mi-5s-Plus/20220519-164217
        git checkout b35e1afb49b50a1d68a67f66a3eb6c4259f329fb
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> Error: arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts:79.1-9 Label or path mss_pil not found
>> Error: arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts:106.1-10 Label or path slpi_pil not found
   FATAL ERROR: Syntax error parsing input tree
Alec Su May 25, 2022, 2:32 a.m. UTC | #7
On 2022/5/20 09:34, kernel test robot wrote:
> Hi Alec,
> 
> Thank you for the patch! Yet something to improve:
> 
> [auto build test ERROR on robh/for-next]
> [also build test ERROR on v5.18-rc7]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
> 
> url:    https://github.com/intel-lab-lkp/linux/commits/Alec-Su/arm64-dts-qcom-msm8996-xiaomi-natrium-Add-support-for-Xiaomi-Mi-5s-Plus/20220519-164217
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
> config: arm64-randconfig-r022-20220518 (https://download.01.org/0day-ci/archive/20220520/202205200926.TE2gqa0N-lkp@intel.com/config)
> compiler: aarch64-linux-gcc (GCC) 11.3.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/intel-lab-lkp/linux/commit/b35e1afb49b50a1d68a67f66a3eb6c4259f329fb
>         git remote add linux-review https://github.com/intel-lab-lkp/linux
>         git fetch --no-tags linux-review Alec-Su/arm64-dts-qcom-msm8996-xiaomi-natrium-Add-support-for-Xiaomi-Mi-5s-Plus/20220519-164217
>         git checkout b35e1afb49b50a1d68a67f66a3eb6c4259f329fb
>         # save the config file
>         mkdir build_dir && cp config build_dir/.config
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> All errors (new ones prefixed by >>):
> 
>>> Error: arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts:79.1-9 Label or path mss_pil not found
>>> Error: arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts:106.1-10 Label or path slpi_pil not found
>    FATAL ERROR: Syntax error parsing input tree
> 

The labels mss_pil and slpi_pil are in a patch [1] which is already
existed in linux-next but isn't in mainline yet. It should be fine in
linux-next.

[1] https://lore.kernel.org/all/20210926190555.278589-6-y.oudjana@protonmail.com/

Regards,
Alec
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 2f8aec2cc6db..3ae7ecd369fb 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -37,6 +37,7 @@  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)	+= msm8998-asus-novago-tp370ql.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8998-fxtec-pro1.dtb
diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
new file mode 100644
index 000000000000..212ff0fbf262
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
@@ -0,0 +1,419 @@ 
+// 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 {
+	synaptics@20 {
+		compatible = "syna,rmi4-i2c";
+		reg = <0x20>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		interrupt-parent = <&tlmm>;
+		interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
+		vdda-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/natrium/a530_zap.mbn";
+	};
+};
+
+&mss_pil {
+	firmware-name = "qcom/msm8996/natrium/mba.mbn",
+			"qcom/msm8996/natrium/modem.mbn";
+};
+
+&pmi8994_wled {
+	status = "okay";
+
+	qcom,num-strings = <2>;
+	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 {
+	pm8994-regulators {
+		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;
+	};
+};