Skip to contentSkip to conversation

arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)

PATCH Superseded [email protected] 2 participants 2 messages Jul 21

Subsystems (3)

v4 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

PATCH v4 1/1 arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)

From: map220v <[email protected]>

Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.

---

v4: address Sashiko AI review comments
- Add GPIO_OPEN_DRAIN to shared cs35l43 reset-gpios to avoid -EBUSY
- Set Bluetooth local-bd-address to [ 00 00 00 00 00 00 ]

v3: address review comments from Konrad Dybcio
- SM8550P has no modem; confirmed on device (dmesg shows no mpss)
- Rename fingerprint_fpc -> fingerprint-reader, use interrupts-extended
- pmic-glink compatibles: one per line
- Sort DAI link subnodes alphabetically (codec before cpu)
- Reorder root-level nodes by name
- Place pinctrl-n properties before pinctrl-names
- Remove msm-id, board-id, Xiaomi-specific comments
- Remove output-low/output-high from TLMM pinctrl
- Remove udmabuf bootargs (confirmed not in use on device)
- Add "xiaomi-" prefix to firmware paths

---
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../boot/dts/qcom/sm8550-xiaomi-sheng.dts     | 1763 +++++++++++++++++
 2 files changed, 1764 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 6f33c4e2f..d8e485521 100644
@@ -386,6 +386,7 @@ dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-qrd.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-samsung-q5q.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-sony-xperia-yodo-pdx234.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-xiaomi-sheng.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sm8650-ayaneo-pocket-s2.dtb
 
 sm8650-hdk-display-card-dtbs	:= sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +1763 -0

1,763 lines not on this page · raw message

Signature · 1 line
2.54.0.windows.1
#1 lore raw
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [High] Sharing the same reset GPIO across multiple cs35l43 codec nodes using `GPIO_OPEN_DRAIN` does not…

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Sharing the same reset GPIO across multiple cs35l43 codec nodes using GPIO_OPEN_DRAIN does not prevent -EBUSY probe failures.
- [Medium] The commit message claims to 'Remove output-low/output-high from TLMM pinctrl', but output-high is still present in the i2s1_default pin configuration. --

--- Patch [1]: [PATCH v4] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) --- commit 409a566ed91cfcb1ea5b448084073b5d36eb09ec
Author: map220v <[email protected]>

arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)

Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.

Quoted 5 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +0 -0
new file mode 100644
index 0000000000000..a5aa49a01dde9

[ ... ]

arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1041

Quoted 10 lines

+&i2c5 {

arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +9 -0
+	clock-frequency = <1000000>;
+	status = "okay";
+
+	cs35l43_trl: cs35l43@40 {
+		compatible = "cirrus,cs35l43";
+		reg = <0x40>;
+		interrupt-parent = <&tlmm>;
+		interrupts = <98 IRQ_TYPE_LEVEL_LOW>;
+		reset-gpios = <&tlmm 90 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;

[Severity: High]
The commit message mentions adding GPIO_OPEN_DRAIN to avoid -EBUSY on shared reset-gpios. Does this actually prevent the probe failures?

When devm_gpiod_get_optional() is called by the codec driver without GPIOD_FLAGS_BIT_NONEXCLUSIVE in the driver's C code, gpiolib enforces exclusive access.

Since GPIO_OPEN_DRAIN only configures the hardware output behavior, it looks like the first cs35l43 codec instance will succeed but the subsequent instances will still fail to probe with -EBUSY.

[ ... ]

arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1609

Quoted 8 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +8 -0
+	i2s1_default: i2s1-default-state {
+		sck-pins {
+			pins = "gpio121";
+			function = "i2s1_sck";
+			drive-strength = <8>;
+			bias-disable;
+			output-high;
+		};

[Severity: Medium]
The commit message states "Remove output-low/output-high from TLMM pinctrl", but output-high is still present in this i2s1_default pin configuration. Did this get missed during the cleanup?

Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1