* [PATCH 0/4] arm64: dts: qcom: Introduce Ntmer TW220
@ 2025-06-17 9:29 Pengyu Luo
2025-06-17 9:29 ` [PATCH 1/4] dt-bindings: vendor-prefixes: Add Ntmer Pengyu Luo
` (4 more replies)
0 siblings, 5 replies; 19+ messages in thread
From: Pengyu Luo @ 2025-06-17 9:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Eric Biggers, Len Brown, Benno Lossin,
Ilpo Järvinen, Ingo Molnar, Miguel Ojeda, Joel Granados,
Al Viro, Alice Ryhl, Stephen Rothwell
Cc: linux-arm-msm, devicetree, linux-kernel, Pengyu Luo
The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
also known as the Robo&Kala 2-in-1 Laptop. This patch adds an initial
device tree to enable basic functionality.
Pengyu Luo (4):
dt-bindings: vendor-prefixes: Add Ntmer
dt-bindings: arm: qcom: Add Ntmer TW220
arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
firmware: qcom: scm: Allow QSEECOM on Ntmer TW220
.../devicetree/bindings/arm/qcom.yaml | 1 +
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
arch/arm64/boot/dts/qcom/Makefile | 2 +
.../boot/dts/qcom/sc8280xp-ntmer-tw220.dts | 1622 +++++++++++++++++
drivers/firmware/qcom/qcom_scm.c | 1 +
5 files changed, 1628 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts
--
2.49.0
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 1/4] dt-bindings: vendor-prefixes: Add Ntmer
2025-06-17 9:29 [PATCH 0/4] arm64: dts: qcom: Introduce Ntmer TW220 Pengyu Luo
@ 2025-06-17 9:29 ` Pengyu Luo
2025-06-27 19:20 ` Rob Herring (Arm)
2025-06-17 9:29 ` [PATCH 2/4] dt-bindings: arm: qcom: Add Ntmer TW220 Pengyu Luo
` (3 subsequent siblings)
4 siblings, 1 reply; 19+ messages in thread
From: Pengyu Luo @ 2025-06-17 9:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Eric Biggers, Len Brown, Benno Lossin,
Ilpo Järvinen, Ingo Molnar, Miguel Ojeda, Joel Granados,
Al Viro, Alice Ryhl, Stephen Rothwell
Cc: linux-arm-msm, devicetree, linux-kernel, Pengyu Luo
Ntmer is a Chinese company, their website is https://www.ntmer.com
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 3f23f6f93..9b8024ca6 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1085,6 +1085,8 @@ patternProperties:
description: Novatek
"^novtech,.*":
description: NovTech, Inc.
+ "^ntmer,.*":
+ description: Shenzhen Ntmer Technology Co., Ltd.
"^numonyx,.*":
description: Numonyx (deprecated, use micron)
deprecated: true
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 2/4] dt-bindings: arm: qcom: Add Ntmer TW220
2025-06-17 9:29 [PATCH 0/4] arm64: dts: qcom: Introduce Ntmer TW220 Pengyu Luo
2025-06-17 9:29 ` [PATCH 1/4] dt-bindings: vendor-prefixes: Add Ntmer Pengyu Luo
@ 2025-06-17 9:29 ` Pengyu Luo
2025-06-27 19:20 ` Rob Herring (Arm)
2025-06-17 9:29 ` [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for " Pengyu Luo
` (2 subsequent siblings)
4 siblings, 1 reply; 19+ messages in thread
From: Pengyu Luo @ 2025-06-17 9:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Eric Biggers, Len Brown, Benno Lossin,
Ilpo Järvinen, Ingo Molnar, Miguel Ojeda, Joel Granados,
Al Viro, Alice Ryhl, Stephen Rothwell
Cc: linux-arm-msm, devicetree, linux-kernel, Pengyu Luo
The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP
platform. This device is also known as Robo&kala 2-in-1 Laptop.
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index b14206d11..e17435e88 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -861,6 +861,7 @@ properties:
- lenovo,thinkpad-x13s
- microsoft,arcata
- microsoft,blackrock
+ - ntmer,tw220
- qcom,sc8280xp-crd
- qcom,sc8280xp-qrd
- const: qcom,sc8280xp
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-06-17 9:29 [PATCH 0/4] arm64: dts: qcom: Introduce Ntmer TW220 Pengyu Luo
2025-06-17 9:29 ` [PATCH 1/4] dt-bindings: vendor-prefixes: Add Ntmer Pengyu Luo
2025-06-17 9:29 ` [PATCH 2/4] dt-bindings: arm: qcom: Add Ntmer TW220 Pengyu Luo
@ 2025-06-17 9:29 ` Pengyu Luo
2025-06-25 6:17 ` kernel test robot
2025-06-27 19:48 ` Konrad Dybcio
2025-06-17 9:29 ` [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on " Pengyu Luo
2025-06-17 14:21 ` [PATCH 0/4] arm64: dts: qcom: Introduce " Rob Herring (Arm)
4 siblings, 2 replies; 19+ messages in thread
From: Pengyu Luo @ 2025-06-17 9:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Eric Biggers, Len Brown, Benno Lossin,
Ilpo Järvinen, Ingo Molnar, Miguel Ojeda, Joel Granados,
Al Viro, Alice Ryhl, Stephen Rothwell
Cc: linux-arm-msm, devicetree, linux-kernel, Pengyu Luo, Hong Zhu
The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
also known as the Robo&Kala 2-in-1 Laptop. Thanks to Hong for providing
the unlocked device and early development work. This patch adds an
initial device tree to enable basic functionality.
Currently supported components include:
- Bluetooth & Wi-Fi (board file regeneration required)
- Battery charging (up to 15V/3A fixed PDO) and reporting via pmic-glink
- Flash LEDs (front and rear)
- Hall sensor (lid detection)
- Keyboard (via Bluetooth or USB)
- NVMe SSD
- Power and volume keys
- Simple-framebuffer
- Sound (playback and capture; top-left DMIC only, top-right works only
on Windows)
- Touchscreen and stylus (requires GPI DMA support [1] and stylus support [2])
- USB Type-C ports
The following components are currently non-functional:
- Cameras (GalaxyCore GC5035; only sensor ID is detectable, no frames in libcamera;
partial driver can be found on LKML archives)
- DSI display (blank screen with `dsi_err_worker: status=4`; primary DSI register
dump included below)
- Stylus wireless charger (CPS4035)
- UCSI over GLINK
[1]: https://lore.kernel.org/linux-arm-msm/20250617090032.1487382-3-mitltlatltl@gmail.com
[2]: https://lore.kernel.org/linux-input/20250605054855.403487-2-mitltlatltl@gmail.com
Note: This series does **not** include any confidential material. Those
who wish to run Linux on this device should contact Ntmer, as the
bootloader is locked via secure boot.
Co-developed-by: Hong Zhu <vanyang@smail.nju.edu.cn>
Signed-off-by: Hong Zhu <vanyang@smail.nju.edu.cn>
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
dsi_ctrl, reg = <0 0x0ae94000 0 0x400>;
0xae94000 20050001 000001f3 0000000b dddd1011
0xae94010 00009130 31211101 3e2e1e0e 00001900
0xae94020 00000000 05190019 064c000c 065f0528
0xae94030 00060000 00000000 00040000 14000000
0xae94040 06100006 00003c2c 00001000 00000008
0xae94050 00000000 00000900 00000000 00000000
0xae94060 00000000 00000000 00000000 00000000
0xae94070 00000000 00000000 00000000 22211211
0xae94080 001c1a02 80001004 00000000 00000000
0xae94090 00000001 00000000 00000000 00000000
0xae940a0 00000000 00000000 00001f1f 01000000
0xae940b0 00000000 00088888 ffffffff 0000ffff
0xae940c0 00000000 00001719 010f0f08 00000001
0xae940d0 00000000 00000000 00000000 00000000
0xae940e0 00000000 00000000 00000000 00000000
0xae940f0 00000000 00000000 00000000 00000000
0xae94100 00000000 00000000 00000000 13ff3be0
0xae94110 a920aa00 00000000 00000000 0000023f
0xae94120 008057c3 00000000 00000000 00000000
0xae94130 00000000 ffffffff ffffffff ffffffff
0xae94140 ffffffff 00000000 0000ffff 0000ffff
0xae94150 0000ffff 0000ffff 00000000 00000004
0xae94160 00000000 00000000 00000000 00000000
0xae94170 00000000 00000000 00000000 00000000
0xae94180 00000000 00000000 00000000 00000000
0xae94190 00000000 00000000 00000000 00000000
0xae941a0 00000000 00000001 00ff0000 00400040
0xae941b0 000000ff 00000024 00000006 00000000
0xae941c0 00000000 00000000 ffffffff 00000000
0xae941d0 00290000 00000000 00000000 00000000
0xae941e0 00000000 00000000 00000000 00000000
0xae941f0 00000000 03000104 00000000 00000000
0xae94200 80000000 00000000 00000000 00000000
0xae94210 00000000 00000000 00000000 00000000
0xae94220 00000000 00000000 00000000 00000000
0xae94230 00000000 00000000 00000000 00000000
0xae94240 00000000 00000000 00000000 00000000
0xae94250 00000000 00000000 00000000 00000000
0xae94260 00000000 00000000 00000000 00000000
0xae94270 00000000 00000000 00000000 00000000
0xae94280 00000000 00000000 00000000 00000000
0xae94290 00000000 00000000 00000000 00000000
0xae942a0 00000b00 00000000 39003900 00000000
0xae942b0 00000000 00000000 3e2e0600 0000f000
0xae942c0 00000000 00000000 00000004 00000000
0xae942d0 00000000 00000000 00000000 00000000
0xae942e0 00000000 00000000 00000000 00000000
0xae942f0 00000000 00000000 00000000 00000000
0xae94300 0000ffff 00000000 00000000 00000000
0xae94310 00008421 0033ffff 0002a300 00000043
0xae94320 10ffffff 0000b81f 00000000 000c2c0d
0xae94330 33533000 ffffffff ffffffff ffffffff
0xae94340 00000000 00000000 00000000 00000000
0xae94350 00000000 00000000 00000000 00000000
0xae94360 00000000 01000000 00000000 00000000
0xae94370 00000000 00000000 00000000 00000000
0xae94380 00000000 00000000 00000000 00000000
0xae94390 00000000 00000000 00000000 00000000
0xae943a0 00000000 00000000 00000000 00000000
0xae943b0 00000000 00000000 00000000 00000000
0xae943c0 00000000 00000000 00000000 00000000
0xae943d0 00000000 00000000 00000000 00000000
0xae943e0 00000000 00000000 00000000 00000000
0xae943f0 00000000 00000000 00000000 00000000
dsi_phy, reg = <0 0x0ae94400 0 0x200>;
0xae94400 00000024 00000000 00000000 00000000
0xae94410 00000061 00000030 00000000 00000000
0xae94420 00000053 0000007f 00000000 00000040
0xae94430 00000004 00000021 00000084 00000001
0xae94440 000000b8 00000000 0000007f 0000007f
0xae94450 00000000 000000ff 000000ff 00000000
0xae94460 0000003f 0000003f 0000003e 00000041
0xae94470 00000041 0000007f 00000000 00000000
0xae94480 00000000 00000000 000000ff 000000ff
0xae94490 000000ff 00000010 00000000 00000000
0xae944a0 0000001f 00000000 00000000 00000000
0xae944b0 00000000 00000000 0000001b 00000007
0xae944c0 00000008 00000022 00000021 00000007
0xae944d0 00000007 00000004 00000002 00000004
0xae944e0 00000000 00000019 00000017 00000088
0xae944f0 00000000 0000003c 00000038 00000000
0xae94500 00000055 00000000 00000000 00000000
0xae94510 0000005c 00000004 00000000 00000000
0xae94520 00000000 000000ff 00000000 00000000
0xae94530 00000000 00000000 00000086 0000000a
0xae94540 00000007 00000057 0000001f 0000001f
0xae94550 000000ff 000000ff 000000ff 000000ff
0xae94560 000000ff 000000ff 000000ff 000000ff
0xae94570 00000000 00000000 00000000 00000000
0xae94580 00000000 00000001 000000ff 0000000f
0xae94590 000000f0 00000000 00000000 00000005
0xae945a0 000000ff 00000000 00000000 00000000
0xae945b0 00000001 00000000 00000000 00000000
0xae945c0 00000000 00000000 00000000 00000000
0xae945d0 00000000 00000000 00000000 00000000
0xae945e0 00000000 00000000 00000000 00000000
0xae945f0 00000000 00000000 00000000 00000000
dsi_phy_lane, reg = <0 0x0ae94600 0 0x280>;
0xae94600 00000000 00000000 0000000a 00000000
0xae94610 00000000 00000003 00000040 00000000
0xae94620 000000ff 00000000 00000000 00000000
0xae94630 00000000 00000000 00000055 000000ff
0xae94640 00000000 00000000 00000000 00000000
0xae94650 00000000 00000000 00000000 00000000
0xae94660 000000ff 000000ff 000000ff 00000000
0xae94670 00000000 00000000 00000000 0000002a
0xae94680 00000000 00000000 0000000a 00000000
0xae94690 00000000 00000000 00000040 00000000
0xae946a0 000000ff 00000000 00000000 00000000
0xae946b0 00000000 00000000 00000055 000000ff
0xae946c0 00000000 00000000 00000000 00000000
0xae946d0 00000000 00000000 00000000 00000000
0xae946e0 000000ff 000000ff 000000ff 00000000
0xae946f0 00000000 00000000 00000000 0000002a
0xae94700 00000000 00000000 0000000a 00000000
0xae94710 00000000 00000000 00000040 00000000
0xae94720 000000ff 00000000 00000000 00000000
0xae94730 00000000 00000000 00000055 000000ff
0xae94740 00000000 00000000 00000000 00000000
0xae94750 00000000 00000000 00000000 00000000
0xae94760 000000ff 000000ff 000000ff 00000000
0xae94770 00000000 00000000 00000000 0000002a
0xae94780 00000000 00000000 0000000a 00000000
0xae94790 00000000 00000000 00000046 00000000
0xae947a0 000000ff 00000000 00000000 00000000
0xae947b0 00000000 00000000 00000055 000000ff
0xae947c0 00000000 00000000 00000000 00000000
0xae947d0 00000000 00000000 00000000 00000000
0xae947e0 000000ff 000000ff 000000ff 00000000
0xae947f0 00000000 00000000 00000000 0000002a
0xae94800 00000000 00000000 0000008a 00000000
0xae94810 00000000 00000000 00000041 00000000
0xae94820 000000ff 00000000 00000000 00000000
0xae94830 00000000 00000000 00000055 000000ff
0xae94840 00000000 00000000 00000000 00000000
0xae94850 00000000 00000000 00000000 00000000
0xae94860 000000ff 000000ff 000000ff 00000000
0xae94870 00000000 00000000 00000000 0000002a
dsi_pll, reg = <0 0x0ae94900 0 0x27c>;
0xae94900 00000000 00000003 0000003f 00000000
0xae94910 00000000 00000000 00000001 00000080
0xae94920 00000000 0000004e 000000c0 00000000
0xae94930 00000010 00000020 00000010 00000002
0xae94940 0000001c 00000040 00000000 00000002
0xae94950 00000020 00000000 000000ff 00000000
0xae94960 0000000a 00000025 000000ba 0000004f
0xae94970 0000000a 00000000 0000000c 00000020
0xae94980 00000000 000000ff 00000010 00000046
0xae94990 0000002f 0000003f 00000054 00000000
0xae949a0 00000000 00000040 00000000 00000004
0xae949b0 00000000 00000000 00000000 00000012
0xae949c0 00000000 00000008 00000008 00000041
0xae949d0 000000ab 0000006a 00000000 00000000
0xae949e0 00000014 00000051 000000d8 00000000
0xae949f0 00000027 00000000 00000040 00000000
0xae94a00 00000003 00000000 00000000 00000000
0xae94a10 00000000 00000000 00000000 00000000
0xae94a20 00000000 00000000 00000000 00000000
0xae94a30 00000000 00000000 00000000 00000000
0xae94a40 00000000 00000000 00000000 00000000
0xae94a50 00000000 00000001 00000040 00000040
0xae94a60 0000000a 0000000a 000000c0 00000000
0xae94a70 00000082 00000054 0000004c 0000004c
0xae94a80 00000003 00000000 00000000 00000000
0xae94a90 00000080 00000006 00000019 00000000
0xae94aa0 00000000 00000040 00000020 00000000
0xae94ab0 00000051 00000008 00000055 00000047
0xae94ac0 000000a1 0000001d 00000004 00000000
0xae94ad0 00000000 00000002 00000011 00000000
0xae94ae0 00000000 00000080 00000000 00000000
0xae94af0 00000000 0000005d 00000003 00000000
0xae94b00 00000000 00000000 00000000 00000000
0xae94b10 00000000 00000000 00000055 00000082
0xae94b20 00000000 00000000 0000001d 0000001c
0xae94b30 000000ff 00000022 00000009 00000000
0xae94b40 00000008 00000000 000000a0 00000000
0xae94b50 00000010 00000010 00000001 00000003
0xae94b60 00000022 00000000 00000000 00000000
0xae94b70 00000000 00000019 00000000 00000022
0xae94b80 00000000 00000000 00000000 00000000
0xae94b90 00000000 00000000 00000000 00000000
0xae94ba0 00000000 00000000 00000000 00000000
0xae94bb0 00000000 00000000 00000000 00000000
0xae94bc0 00000000 00000000 00000000 00000000
0xae94bd0 00000000 00000000 00000000 00000000
0xae94be0 00000000 00000000 00000000 00000000
0xae94bf0 00000000 00000000 00000000 00000000
---
arch/arm64/boot/dts/qcom/Makefile | 2 +
.../boot/dts/qcom/sc8280xp-ntmer-tw220.dts | 1622 +++++++++++++++++
2 files changed, 1624 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 669b888b2..8fdb16971 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -217,6 +217,8 @@ sc8280xp-microsoft-arcata-el2-dtbs := sc8280xp-microsoft-arcata.dtb sc8280xp-el2
dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-microsoft-arcata.dtb sc8280xp-microsoft-arcata-el2.dtb
sc8280xp-microsoft-blackrock-el2-dtbs := sc8280xp-microsoft-blackrock.dtb sc8280xp-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-microsoft-blackrock.dtb sc8280xp-microsoft-blackrock-el2.dtb
+sc8280xp-ntmer-tw220-el2-dtbs := sc8280xp-ntmer-tw220.dtb sc8280xp-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-ntmer-tw220.dtb sc8280xp-ntmer-tw220-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += sda660-inforce-ifc6560.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm450-lenovo-tbx605f.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm450-motorola-ali.dtb
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts b/arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts
new file mode 100644
index 000000000..61ac51da9
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts
@@ -0,0 +1,1622 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022, Linaro Limited
+ *
+ * Copyright (c) 2025, Hong Zhu <vanyang.smail.nju.edu.cn>
+ * Copyright (c) 2025, Pengyu Luo <mitltlatltl@gmail.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/phy/phy.h>
+
+#include "sc8280xp.dtsi"
+#include "sc8280xp-pmics.dtsi"
+
+/ {
+ model = "Robo & Kala TW220";
+ compatible = "ntmer,tw220", "qcom,sc8280xp";
+ chassis-type = "tablet";
+
+ aliases {
+ serial0 = &uart2;
+ i2c1 = &i2c1;
+ };
+
+ chosen {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ framebuffer0: framebuffer@c6200000 {
+ compatible = "simple-framebuffer";
+ reg = <0x0 0xc6200000 0x0 (2560*1600*4)>;
+ width = <2560>;
+ height = <1600>;
+ stride = <(2560 * 4)>;
+ format = "a8r8g8b8";
+ clocks = <&dispcc0 DISP_CC_MDSS_MDP_CLK>;
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&vol_down_n>, <&hall_int_n_default>;
+ pinctrl-names = "default";
+
+ key-vol-down {
+ label = "Volume Down";
+ gpios = <&pmc8280_1_gpios 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_VOLUMEDOWN>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+
+ switch-lid {
+ label = "Lid Switch";
+ gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ wakeup-source;
+ wakeup-event-action = <EV_ACT_DEASSERTED>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&camf_indicator_en>, <&camr_indicator_en>;
+
+ flash_camf: led-front-camera-indicator {
+ label = "white:front-camera-indicator";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_WHITE>;
+ gpios = <&tlmm 44 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ /* Reuse as a panic indicator until we get a "camera on" trigger */
+ panic-indicator;
+ };
+
+ flash_camr: led-rear-camera-indicator {
+ label = "white:rear-camera-indicator";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_WHITE>;
+ gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ /* Reuse as a panic indicator until we get a "camera on" trigger */
+ panic-indicator;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+ orientation-gpios = <&tlmm 166 GPIO_ACTIVE_HIGH>,
+ <&tlmm 49 GPIO_ACTIVE_HIGH>;
+
+ connector@0 {
+ compatible = "usb-c-connector";
+ reg = <0>;
+ power-role = "dual";
+ data-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_con0_hs: endpoint {
+ remote-endpoint = <&usb_0_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_con0_ss: endpoint {
+ remote-endpoint = <&usb_0_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_con0_sbu: endpoint {
+ };
+ };
+ };
+ };
+
+ connector@1 {
+ compatible = "usb-c-connector";
+ reg = <1>;
+ power-role = "dual";
+ data-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_con1_hs: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_con1_ss: endpoint {
+ remote-endpoint = <&usb_1_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_con1_sbu: endpoint {
+ };
+ };
+ };
+ };
+ };
+
+ vreg_wsa: regulator-wsa {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vreg_wsa";
+ gpio = <&tlmm 28 GPIO_ACTIVE_HIGH>;
+ regulator-min-microvolt = <3600000>;
+ regulator-max-microvolt = <3600000>;
+ enable-active-high;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vreg_ts_vddio: regulator-ts-vddio {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vreg_ts_vddio";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&ts_vddio_en>;
+ pinctrl-names = "default";
+ };
+
+ vreg_ts_avdd: regulator-ts-avdd {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vreg_ts_avdd";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&ts_avdd_en>;
+ pinctrl-names = "default";
+ };
+
+ vreg_misc_3p3: regulator-misc-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VCC3B";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&misc_3p3_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vreg_nvme: regulator-nvme {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VCC3_SSD";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 135 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&nvme_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VPH_VCC3R9";
+ regulator-min-microvolt = <3900000>;
+ regulator-max-microvolt = <3900000>;
+
+ regulator-always-on;
+ };
+
+ vreg_wlan: regulator-wlan {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VCC_WLAN_3R9";
+ regulator-min-microvolt = <3900000>;
+ regulator-max-microvolt = <3900000>;
+
+ gpio = <&pmr735a_gpios 1 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&hastings_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ reserved-memory {
+ gpu_mem: gpu-mem@8bf00000 {
+ reg = <0 0x8bf00000 0 0x2000>;
+ no-map;
+ };
+
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
+ sound {
+ compatible = "qcom,sc8280xp-sndcard";
+ model = "SC8280XP-NTMER-TW220";
+ audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
+ "SpkrRight IN", "WSA_SPK2 OUT";
+
+ wsa-dai-link {
+ link-name = "WSA Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+ };
+
+ codec {
+ sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ va-dai-link {
+ link-name = "VA Capture";
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+ };
+
+ codec {
+ sound-dai = <&vamacro 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+
+ thermal-zones {
+ pm8008-thermal {
+ polling-delay-passive = <100>;
+ polling-delay = <0>;
+
+ thermal-sensors = <&pm8008>;
+
+ trips {
+ trip0 {
+ temperature = <95000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+
+ trip1 {
+ temperature = <115000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+
+ skin-temp-thermal {
+ polling-delay-passive = <250>;
+
+ thermal-sensors = <&pmk8280_adc_tm 5>;
+
+ trips {
+ skin_temp_alert0: trip-point0 {
+ temperature = <55000>;
+ hysteresis = <1000>;
+ type = "passive";
+ };
+
+ skin_temp_alert1: trip-point1 {
+ temperature = <58000>;
+ hysteresis = <1000>;
+ type = "passive";
+ };
+
+ skin-temp-crit {
+ temperature = <73000>;
+ hysteresis = <1000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&skin_temp_alert0>;
+ cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+
+ map1 {
+ trip = <&skin_temp_alert1>;
+ cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+ };
+
+ wcn6855-pmu {
+ compatible = "qcom,wcn6855-pmu";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&bt_default>, <&wlan_en>;
+
+ wlan-enable-gpios = <&tlmm 134 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
+ swctrl-gpios = <&tlmm 132 GPIO_ACTIVE_HIGH>;
+
+ vddio-supply = <&vreg_s10b>;
+ vddaon-supply = <&vreg_s12b>;
+ vddpmu-supply = <&vreg_s12b>;
+ vddpmumx-supply = <&vreg_s12b>;
+ vddpmucx-supply = <&vreg_s12b>;
+ vddrfa0p95-supply = <&vreg_s12b>;
+ vddrfa1p3-supply = <&vreg_s11b>;
+ vddrfa1p9-supply = <&vreg_s1c>;
+ vddpcie1p3-supply = <&vreg_s11b>;
+ vddpcie1p9-supply = <&vreg_s1c>;
+
+ regulators {
+ vreg_pmu_rfa_cmn_0p8: ldo0 {
+ regulator-name = "vreg_pmu_rfa_cmn_0p8";
+ };
+
+ vreg_pmu_aon_0p8: ldo1 {
+ regulator-name = "vreg_pmu_aon_0p8";
+ };
+
+ vreg_pmu_wlcx_0p8: ldo2 {
+ regulator-name = "vreg_pmu_wlcx_0p8";
+ };
+
+ vreg_pmu_wlmx_0p8: ldo3 {
+ regulator-name = "vreg_pmu_wlmx_0p8";
+ };
+
+ vreg_pmu_btcmx_0p8: ldo4 {
+ regulator-name = "vreg_pmu_btcmx_0p8";
+ };
+
+ vreg_pmu_pcie_1p8: ldo5 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+
+ vreg_pmu_pcie_0p9: ldo6 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_rfa_0p8: ldo7 {
+ regulator-name = "vreg_pmu_rfa_0p8";
+ };
+
+ vreg_pmu_rfa_1p2: ldo8 {
+ regulator-name = "vreg_pmu_rfa_1p2";
+ };
+
+ vreg_pmu_rfa_1p7: ldo9 {
+ regulator-name = "vreg_pmu_rfa_1p7";
+ };
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8350-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vdd-l1-l4-supply = <&vreg_s12b>;
+ vdd-l2-l7-supply = <&vreg_bob>;
+ vdd-l3-l5-supply = <&vreg_s11b>;
+ vdd-l6-l9-l10-supply = <&vreg_s12b>;
+ vdd-l8-supply = <&vreg_s12b>;
+
+ vreg_s10b: smps10 {
+ regulator-name = "vreg_s10b";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ };
+
+ vreg_s11b: smps11 {
+ regulator-name = "vreg_s11b";
+ regulator-min-microvolt = <1272000>;
+ regulator-max-microvolt = <1272000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s12b: smps12 {
+ regulator-name = "vreg_s12b";
+ regulator-min-microvolt = <984000>;
+ regulator-max-microvolt = <984000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1b: ldo1 {
+ regulator-name = "vreg_l1b";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3b: ldo3 {
+ regulator-name = "vreg_l3b";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-boot-on;
+ };
+
+ vreg_l4b: ldo4 {
+ regulator-name = "vreg_l4b";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b: ldo6 {
+ regulator-name = "vreg_l6b";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-boot-on;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8350c-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-bob-supply = <&vreg_vph_pwr>;
+ vdd-l1-l12-supply = <&vreg_s1c>;
+ vdd-l2-l8-supply = <&vreg_s1c>;
+ vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
+ vdd-l6-l9-l11-supply = <&vreg_bob>;
+ vdd-l10-supply = <&vreg_s11b>;
+
+ vreg_s1c: smps1 {
+ regulator-name = "vreg_s1c";
+ regulator-min-microvolt = <1880000>;
+ regulator-max-microvolt = <1900000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ };
+
+ vreg_l1c: ldo1 {
+ regulator-name = "vreg_l1c";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2c: ldo2 {
+ regulator-name = "vreg_l2c";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vreg_l8c: ldo8 {
+ regulator-name = "vreg_l8c";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12c: ldo12 {
+ regulator-name = "vreg_l12c";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13c: ldo13 {
+ regulator-name = "vreg_l13c";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob: bob {
+ regulator-name = "vreg_bob";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-always-on;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pm8350-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vdd-l1-l4-supply = <&vreg_s11b>;
+ vdd-l2-l7-supply = <&vreg_bob>;
+ vdd-l3-l5-supply = <&vreg_s11b>;
+ vdd-l6-l9-l10-supply = <&vreg_s12b>;
+ vdd-l8-supply = <&vreg_s12b>;
+
+ vreg_l2d: ldo2 {
+ regulator-name = "vreg_l2d";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4d: ldo4 {
+ regulator-name = "vreg_l4d";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6d: ldo6 {
+ regulator-name = "vreg_l6d";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7d: ldo7 {
+ regulator-name = "vreg_l7d";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8d: ldo8 {
+ regulator-name = "vreg_l8d";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9d: ldo9 {
+ regulator-name = "vreg_l9d";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10d: ldo10 {
+ regulator-name = "vreg_l10d";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+/*
+ * cci0_i2c1
+ * sda: gpio115, scl: gpio116
+ *
+ * CAMI ov9234 @36 @48
+ *
+ * power on sequence
+ * gpio7 out low
+ * l3q 1p8
+ * l6q 2p8
+ * l2q 1p2
+ * gpio7 out high
+ * msleep 5
+ * cam_cc_mclk4_clk 2.4MHz (gpio6)
+ */
+
+/*
+ * cci2_i2c1
+ * sda: gpio12, scl: gpio13
+ *
+ * CAMF gc5035 @37
+ *
+ * power on sequence
+ * gpio15 out low
+ * l3q 1p8
+ * msleep 1
+ * l2q 1p2
+ * msleep 1
+ * l5q 2p8
+ * gpio15 out high
+ * gpio67 out high
+ * msleep 10
+ * cam_cc_mclk3_clk 2.4MHz (gpio17)
+ */
+
+/*
+ * cci1_i2c0
+ * sda: gpio10, scl: gpio11
+ *
+ * CAMR ov13b10 @0c
+ *
+ * power on sequence
+ * gpio66 out low
+ * l1q 1p2
+ * l7q 2p8
+ * l3q 1p8
+ * gpio59 out high
+ * gpio66 out high
+ * msleep 5
+ * cam_cc_mclk2_clk 2.4MHz (gpio16/gpio119/gpio120?)
+ */
+
+&dispcc0 {
+ status = "okay";
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&gpi_dma1 {
+ status = "okay";
+};
+
+&gpi_dma2 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+
+ zap-shader {
+ memory-region = <&gpu_mem>;
+ firmware-name = "qcom/sc8280xp/Ntmer/tw220/qcdxkmsuc8280.mbn";
+ };
+};
+
+&i2c1 {
+ clock-frequency = <400000>;
+
+ pinctrl-0 = <&i2c1_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+
+ /*
+ * cps4035 @30 @31
+ * gpio73, 87, 154
+ */
+};
+
+&i2c11 {
+ clock-frequency = <400000>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c11_default>;
+
+ status = "okay";
+
+ pm8008: pmic@c {
+ compatible = "qcom,pm8008";
+ reg = <0xc>;
+
+ interrupts-extended = <&tlmm 41 IRQ_TYPE_EDGE_RISING>;
+ reset-gpios = <&tlmm 42 GPIO_ACTIVE_LOW>;
+
+ vdd-l1-l2-supply = <&vreg_s11b>;
+ vdd-l3-l4-supply = <&vreg_bob>;
+ vdd-l5-supply = <&vreg_bob>;
+ vdd-l6-supply = <&vreg_bob>;
+ vdd-l7-supply = <&vreg_bob>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pm8008_default>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pm8008 0 0 2>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ #thermal-sensor-cells = <0>;
+
+ regulators {
+ vreg_l1q: ldo1 {
+ regulator-name = "vreg_l1q";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ vreg_l2q: ldo2 {
+ regulator-name = "vreg_l2q";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ vreg_l3q: ldo3 {
+ regulator-name = "vreg_l3q";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vreg_l4q: ldo4 {
+ regulator-name = "vreg_l4q";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vreg_l5q: ldo5 {
+ regulator-name = "vreg_l5q";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+
+ vreg_l6q: ldo6 {
+ regulator-name = "vreg_l6q";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+
+ vreg_l7q: ldo7 {
+ regulator-name = "vreg_l7q";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+ };
+ };
+};
+
+&spi22 {
+ status = "okay";
+ pinctrl-0 = <&spi22_default>;
+ pinctrl-names = "default";
+
+ touchscreen@0 {
+ /*
+ * The ACPI device ID is GXTS7986, its exact suffix is unknown.
+ * The Windows driver suggests it is a GTBerlinB variant and
+ * communicates via HID over SPI, which aligns with the Linux
+ * driver `drivers/hid/hid-goodix-spi.c`.
+ *
+ * However, the HID descriptor read from the device appears
+ * garbled, preventing proper probe with the HID driver. In
+ * contrast, the driver at
+ * `drivers/input/touchscreen/goodix_berlin_spi.c` shares many
+ * similarities and functions correctly with this hardware.
+ *
+ * Therefore, we choose to use the goodix_berlin_spi driver
+ * instead.
+ */
+ compatible = "goodix,gt9916";
+ reg = <0>;
+
+ interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>;
+ vddio-supply = <&vreg_ts_vddio>;
+ avdd-supply = <&vreg_ts_avdd>;
+
+ spi-max-frequency = <3000000>;
+
+ touchscreen-size-x = <2560>;
+ touchscreen-size-y = <1600>;
+
+ pinctrl-0 = <&ts0_default>;
+ pinctrl-names = "default";
+ };
+};
+
+/*
+ * mdss0_dsi display:
+ *
+ * reset gpio109
+ *
+ * power on seq:
+ * ldo 3b: 1.2v dsi
+ * ldo 6b: 0.88v dsi_phy
+ *
+ * panel:
+ * ldo 2b: 1.8v vddio
+ * gpio55 out high
+ * msleep 15
+ * gpio25 out high
+ * msleep 5
+ *
+ * backlight:
+ * dsi_bl_reg_en: gpio9
+ * msleep 5
+ * dsi_bl_en: gpio8
+ *
+ * power off sequence
+ * dis_off:
+ * ldo 3b
+ * ldo 6b
+ * ldo 2b
+ *
+ * bl_off:
+ * dsi_bl_en: gpio8
+ * msleep 5
+ * dsi_bl_reg_en: gpio9
+ * msleep 5
+ *
+ * panel_off:
+ * gpio25: out low
+ * msleep 5
+ * gpio55: out low
+ * msleep 5
+ */
+
+&pcie2a {
+ perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
+
+ vddpe-3v3-supply = <&vreg_nvme>;
+
+ pinctrl-0 = <&pcie2a_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie2a_phy {
+ vdda-phy-supply = <&vreg_l6d>;
+ vdda-pll-supply = <&vreg_l4d>;
+
+ status = "okay";
+};
+
+&pcie4 {
+ max-link-speed = <2>;
+
+ perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>;
+
+ vddpe-3v3-supply = <&vreg_wlan>;
+
+ pinctrl-0 = <&pcie4_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie4_port0 {
+ wifi@0 {
+ compatible = "pci17cb,1103";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
+ vddaon-supply = <&vreg_pmu_aon_0p8>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
+
+ /*
+ * bus=pci,vendor=17cb,device=1103,subsystem-vendor=17cb,
+ * subsystem-device=0108,qmi-chip-id=18,qmi-board-id=255
+ *
+ * Regenerate board file, x13s one works well
+ */
+ };
+};
+
+&pcie4_phy {
+ vdda-phy-supply = <&vreg_l6d>;
+ vdda-pll-supply = <&vreg_l4d>;
+
+ status = "okay";
+};
+
+&pmk8280_adc_tm {
+ status = "okay";
+
+ sys-therm@0 {
+ reg = <0>;
+ io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
+ qcom,hw-settle-time-us = <200>;
+ qcom,avg-samples = <2>;
+ qcom,ratiometric;
+ };
+
+ sys-therm@1 {
+ reg = <1>;
+ io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
+ qcom,hw-settle-time-us = <200>;
+ qcom,avg-samples = <2>;
+ qcom,ratiometric;
+ };
+
+ sys-therm@2 {
+ reg = <2>;
+ io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
+ qcom,hw-settle-time-us = <200>;
+ qcom,avg-samples = <2>;
+ qcom,ratiometric;
+ };
+
+ sys-therm@3 {
+ reg = <3>;
+ io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
+ qcom,hw-settle-time-us = <200>;
+ qcom,avg-samples = <2>;
+ qcom,ratiometric;
+ };
+
+ sys-therm@4 {
+ reg = <4>;
+ io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
+ qcom,hw-settle-time-us = <200>;
+ qcom,avg-samples = <2>;
+ qcom,ratiometric;
+ };
+
+ sys-therm@5 {
+ reg = <5>;
+ io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
+ qcom,hw-settle-time-us = <200>;
+ qcom,avg-samples = <2>;
+ qcom,ratiometric;
+ };
+
+ sys-therm@6 {
+ reg = <6>;
+ io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
+ qcom,hw-settle-time-us = <200>;
+ qcom,avg-samples = <2>;
+ qcom,ratiometric;
+ };
+
+ sys-therm@7 {
+ reg = <7>;
+ io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
+ qcom,hw-settle-time-us = <200>;
+ qcom,avg-samples = <2>;
+ qcom,ratiometric;
+ };
+};
+
+&pmk8280_pon_pwrkey {
+ status = "okay";
+};
+
+&pmk8280_pon_resin {
+ status = "okay";
+ linux,code = <KEY_VOLUMEUP>;
+};
+
+&pmk8280_rtc {
+ status = "okay";
+};
+
+&pmk8280_vadc {
+ channel@144 {
+ reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
+ qcom,hw-settle-time = <200>;
+ qcom,ratiometric;
+ label = "sys_therm1";
+ };
+
+ channel@145 {
+ reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
+ qcom,hw-settle-time = <200>;
+ qcom,ratiometric;
+ label = "sys_therm2";
+ };
+
+ channel@146 {
+ reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
+ qcom,hw-settle-time = <200>;
+ qcom,ratiometric;
+ label = "sys_therm3";
+ };
+
+ channel@147 {
+ reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
+ qcom,hw-settle-time = <200>;
+ qcom,ratiometric;
+ label = "sys_therm4";
+ };
+
+ channel@344 {
+ reg = <PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
+ qcom,hw-settle-time = <200>;
+ qcom,ratiometric;
+ label = "sys_therm5";
+ };
+
+ channel@345 {
+ reg = <PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
+ qcom,hw-settle-time = <200>;
+ qcom,ratiometric;
+ label = "sys_therm6";
+ };
+
+ channel@346 {
+ reg = <PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
+ qcom,hw-settle-time = <200>;
+ qcom,ratiometric;
+ label = "sys_therm7";
+ };
+
+ channel@347 {
+ reg = <PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
+ qcom,hw-settle-time = <200>;
+ qcom,ratiometric;
+ label = "sys_therm8";
+ };
+};
+
+&qup0 {
+ status = "okay";
+};
+
+&qup1 {
+ status = "okay";
+};
+
+&qup2 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sc8280xp/Ntmer/tw220/qcadsp8280.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_nsp0 {
+ firmware-name = "qcom/sc8280xp/Ntmer/tw220/qccdsp8280.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_slpi {
+ firmware-name = "qcom/sc8280xp/Ntmer/tw220/qcslpi8280.mbn";
+ status = "okay";
+};
+
+&swr0 {
+ status = "okay";
+
+ left_spkr: wsa8830-left@0,1 {
+ compatible = "sdw10217020200";
+ reg = <0 1>;
+ pinctrl-0 = <&spkr_1_sd_n_default>;
+ pinctrl-names = "default";
+ powerdown-gpios = <&tlmm 178 GPIO_ACTIVE_LOW>;
+ #thermal-sensor-cells = <0>;
+ sound-name-prefix = "SpkrLeft";
+ #sound-dai-cells = <0>;
+ vdd-supply = <&vreg_s10b>;
+ };
+
+ right_spkr: wsa8830-right@0,2 {
+ compatible = "sdw10217020200";
+ reg = <0 2>;
+ pinctrl-0 = <&spkr_2_sd_n_default>;
+ pinctrl-names = "default";
+ powerdown-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>;
+ #thermal-sensor-cells = <0>;
+ sound-name-prefix = "SpkrRight";
+ #sound-dai-cells = <0>;
+ vdd-supply = <&vreg_s10b>;
+ };
+};
+
+&uart2 {
+ pinctrl-0 = <&uart2_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn6855-bt";
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
+ vddaon-supply = <&vreg_pmu_aon_0p8>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
+ vddbtcmx-supply = <&vreg_pmu_btcmx_0p8>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
+
+ local-bd-address = [ 00 11 22 33 44 55 ];
+ max-speed = <3200000>;
+ };
+};
+
+&usb_0 {
+ status = "okay";
+};
+
+&usb_0_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_0_dwc3_hs {
+ remote-endpoint = <&pmic_glink_con0_hs>;
+};
+
+&usb_0_hsphy {
+ vdda-pll-supply = <&vreg_l6d>;
+ vdda18-supply = <&vreg_l1c>;
+ vdda33-supply = <&vreg_l7d>;
+
+ status = "okay";
+};
+
+&usb_0_qmpphy {
+ vdda-phy-supply = <&vreg_l4d>;
+ vdda-pll-supply = <&vreg_l9d>;
+
+ orientation-switch;
+
+ status = "okay";
+};
+
+&usb_0_qmpphy_out {
+ remote-endpoint = <&pmic_glink_con0_ss>;
+};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_con1_hs>;
+};
+
+&usb_1_hsphy {
+ vdda-pll-supply = <&vreg_l6b>;
+ vdda18-supply = <&vreg_l1c>;
+ vdda33-supply = <&vreg_l13c>;
+
+ status = "okay";
+};
+
+&usb_1_qmpphy {
+ vdda-phy-supply = <&vreg_l3b>;
+ vdda-pll-supply = <&vreg_l4b>;
+
+ orientation-switch;
+
+ status = "okay";
+};
+
+&usb_1_qmpphy_out {
+ remote-endpoint = <&pmic_glink_con1_ss>;
+};
+
+&usb_2 {
+ status = "okay";
+};
+
+&usb_2_hsphy0 {
+ vdda-pll-supply = <&vreg_l6d>;
+ vdda18-supply = <&vreg_l1c>;
+ vdda33-supply = <&vreg_l7d>;
+
+ status = "okay";
+};
+
+&usb_2_hsphy1 {
+ vdda-pll-supply = <&vreg_l6d>;
+ vdda18-supply = <&vreg_l1c>;
+ vdda33-supply = <&vreg_l7d>;
+
+ status = "okay";
+};
+
+&usb_2_hsphy2 {
+ vdda-pll-supply = <&vreg_l6d>;
+ vdda18-supply = <&vreg_l8c>;
+ vdda33-supply = <&vreg_l2d>;
+
+ status = "okay";
+};
+
+&usb_2_hsphy3 {
+ vdda-pll-supply = <&vreg_l6d>;
+ vdda18-supply = <&vreg_l8c>;
+ vdda33-supply = <&vreg_l2d>;
+
+ status = "okay";
+};
+
+&usb_2_qmpphy0 {
+ vdda-phy-supply = <&vreg_l4d>;
+ vdda-pll-supply = <&vreg_l1b>;
+
+ status = "okay";
+};
+
+&usb_2_qmpphy1 {
+ vdda-phy-supply = <&vreg_l4d>;
+ vdda-pll-supply = <&vreg_l8d>;
+
+ status = "okay";
+};
+
+&vamacro {
+ pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
+ pinctrl-names = "default";
+
+ vdd-micb-supply = <&vreg_s10b>;
+
+ qcom,dmic-sample-rate = <4800000>;
+
+ status = "okay";
+};
+
+&wsamacro {
+ status = "okay";
+};
+
+&xo_board_clk {
+ clock-frequency = <38400000>;
+};
+
+/* PINCTRL */
+
+&lpass_tlmm {
+ status = "okay";
+};
+
+&pmc8280_1_gpios {
+ misc_3p3_reg_en: misc-3p3-reg-en-state {
+ pins = "gpio1";
+ function = "normal";
+ };
+
+ dsi_bl_en: dsi-bl-en-state {
+ pins = "gpio8";
+ function = "normal";
+ };
+
+ dsi_bl_reg_en: dsi-bl-reg-en-state {
+ pins = "gpio9";
+ function = "normal";
+ };
+
+ vol_down_n: vol-up-n-state {
+ pins = "gpio6";
+ function = "normal";
+ power-source = <1>;
+ input-enable;
+ bias-pull-up;
+ };
+};
+
+&pmr735a_gpios {
+ hastings_reg_en: hastings-reg-en-state {
+ pins = "gpio1";
+ function = "normal";
+ };
+};
+
+&tlmm {
+ gpio-reserved-ranges = <70 2>, <74 6>, <125 2>, <128 2>;
+
+ bt_default: bt-default-state {
+ hstp-bt-en-pins {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ hstp-sw-ctrl-pins {
+ pins = "gpio132";
+ function = "gpio";
+ bias-pull-down;
+ };
+ };
+
+ camf_indicator_en: camf-indicator-en-state {
+ pins = "gpio44";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ camr_indicator_en: camr-indicator-en-state {
+ pins = "gpio43";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ hall_int_n_default: hall-int-n-state {
+ pins = "gpio107";
+ function = "gpio";
+ bias-disable;
+ };
+
+ i2c1_default: i2c1-default-state {
+ pins = "gpio158", "gpio159";
+ function = "qup1";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ i2c11_default: i2c11-default-state {
+ pins = "gpio18", "gpio19";
+ function = "qup11";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ nvme_reg_en: nvme-reg-en-state {
+ pins = "gpio135";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ pcie2a_default: pcie2a-default-state {
+ clkreq-n-pins {
+ pins = "gpio142";
+ function = "pcie2a_clkreq";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio143";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio145";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie4_default: pcie4-default-state {
+ clkreq-n-pins {
+ pins = "gpio140";
+ function = "pcie4_clkreq";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio141";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio139";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pm8008_default: pm8008-default-state {
+ int-pins {
+ pins = "gpio41";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ reset-n-pins {
+ pins = "gpio42";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+
+ spi22_default: spi22-default-state {
+ cs-pins {
+ pins = "gpio86";
+ function = "qup22";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ data-clk-pins {
+ /* MISO, MOSI, CLK */
+ pins = "gpio83", "gpio84", "gpio85";
+ function = "qup22";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ spkr_1_sd_n_default: spkr-1-sd-n-default-state {
+ perst-n-pins {
+ pins = "gpio178";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ output-high;
+ };
+ };
+
+ spkr_2_sd_n_default: spkr-2-sd-n-default-state {
+ perst-n-pins {
+ pins = "gpio179";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ output-high;
+ };
+ };
+
+ ts0_default: ts0-default-state {
+ int-n-pins {
+ pins = "gpio175";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ reset-n-pins {
+ pins = "gpio99";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+
+ ts_avdd_en: ts-avdd-state {
+ pins = "gpio56";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ ts_vddio_en: ts-vddio-state {
+ pins = "gpio90";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ uart2_default: uart2-default-state {
+ cts-pins {
+ pins = "gpio121";
+ function = "qup2";
+ bias-bus-hold;
+ };
+
+ rts-pins {
+ pins = "gpio122";
+ function = "qup2";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ rx-pins {
+ pins = "gpio124";
+ function = "qup2";
+ bias-pull-up;
+ };
+
+ tx-pins {
+ pins = "gpio123";
+ function = "qup2";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+
+ wlan_en: wlan-en-state {
+ pins = "gpio134";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+};
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on Ntmer TW220
2025-06-17 9:29 [PATCH 0/4] arm64: dts: qcom: Introduce Ntmer TW220 Pengyu Luo
` (2 preceding siblings ...)
2025-06-17 9:29 ` [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for " Pengyu Luo
@ 2025-06-17 9:29 ` Pengyu Luo
2025-06-17 14:21 ` [PATCH 0/4] arm64: dts: qcom: Introduce " Rob Herring (Arm)
4 siblings, 0 replies; 19+ messages in thread
From: Pengyu Luo @ 2025-06-17 9:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Eric Biggers, Len Brown, Benno Lossin,
Ilpo Järvinen, Ingo Molnar, Miguel Ojeda, Joel Granados,
Al Viro, Alice Ryhl, Stephen Rothwell
Cc: linux-arm-msm, devicetree, linux-kernel, Pengyu Luo
Add the Ntmer TW220 to the allowlist.
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
---
drivers/firmware/qcom/qcom_scm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index f63b716be..0fb829975 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -2000,6 +2000,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
{ .compatible = "microsoft,blackrock" },
{ .compatible = "microsoft,romulus13", },
{ .compatible = "microsoft,romulus15", },
+ { .compatible = "ntmer,tw220" },
{ .compatible = "qcom,sc8180x-primus" },
{ .compatible = "qcom,x1e001de-devkit" },
{ .compatible = "qcom,x1e80100-crd" },
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH 0/4] arm64: dts: qcom: Introduce Ntmer TW220
2025-06-17 9:29 [PATCH 0/4] arm64: dts: qcom: Introduce Ntmer TW220 Pengyu Luo
` (3 preceding siblings ...)
2025-06-17 9:29 ` [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on " Pengyu Luo
@ 2025-06-17 14:21 ` Rob Herring (Arm)
4 siblings, 0 replies; 19+ messages in thread
From: Rob Herring (Arm) @ 2025-06-17 14:21 UTC (permalink / raw)
To: Pengyu Luo
Cc: Miguel Ojeda, Konrad Dybcio, Benno Lossin, linux-arm-msm,
Alice Ryhl, Stephen Rothwell, Ilpo Järvinen, devicetree,
Eric Biggers, Conor Dooley, Bjorn Andersson, Len Brown, Al Viro,
Joel Granados, Ingo Molnar, linux-kernel, Krzysztof Kozlowski
On Tue, 17 Jun 2025 17:29:25 +0800, Pengyu Luo wrote:
> The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
> also known as the Robo&Kala 2-in-1 Laptop. This patch adds an initial
> device tree to enable basic functionality.
>
> Pengyu Luo (4):
> dt-bindings: vendor-prefixes: Add Ntmer
> dt-bindings: arm: qcom: Add Ntmer TW220
> arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
> firmware: qcom: scm: Allow QSEECOM on Ntmer TW220
>
> .../devicetree/bindings/arm/qcom.yaml | 1 +
> .../devicetree/bindings/vendor-prefixes.yaml | 2 +
> arch/arm64/boot/dts/qcom/Makefile | 2 +
> .../boot/dts/qcom/sc8280xp-ntmer-tw220.dts | 1622 +++++++++++++++++
> drivers/firmware/qcom/qcom_scm.c | 1 +
> 5 files changed, 1628 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts
>
> --
> 2.49.0
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
This patch series was applied (using b4) to base:
Base: attempting to guess base-commit...
Base: tags/next-20250617 (exact match)
If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/qcom/' for 20250617092929.1492750-1-mitltlatltl@gmail.com:
Error: arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts:751.1-10 Label or path gpi_dma0 not found
Error: arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts:755.1-10 Label or path gpi_dma1 not found
Error: arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts:759.1-10 Label or path gpi_dma2 not found
FATAL ERROR: Syntax error parsing input tree
make[3]: *** [scripts/Makefile.dtbs:131: arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dtb] Error 1
make[2]: *** [scripts/Makefile.build:554: arch/arm64/boot/dts/qcom] Error 2
make[2]: Target 'arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dtb' not remade because of errors.
make[1]: *** [/home/rob/proj/linux-dt-testing/Makefile:1472: qcom/sc8280xp-ntmer-tw220.dtb] Error 2
make: *** [Makefile:248: __sub-make] Error 2
make: Target 'qcom/apq8096-ifc6640.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-j3ltetw.dtb' not remade because of errors.
make: Target 'qcom/msm8998-fxtec-pro1.dtb' not remade because of errors.
make: Target 'qcom/sm7325-nothing-spacewar.dtb' not remade because of errors.
make: Target 'qcom/sm7125-xiaomi-curtana.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-dell-xps13-9345.dtb' not remade because of errors.
make: Target 'qcom/msm8998-mtp.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-a5u-eur.dtb' not remade because of errors.
make: Target 'qcom/sc8280xp-lenovo-thinkpad-x13s.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r3-lte.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-crd-pro.dtb' not remade because of errors.
make: Target 'qcom/sm6115p-lenovo-j606f.dtb' not remade because of errors.
make: Target 'qcom/msm8998-sony-xperia-yoshino-maple.dtb' not remade because of errors.
make: Target 'qcom/ipq9574-rdp454.dtb' not remade because of errors.
make: Target 'qcom/qcs6490-rb3gen2.dtb' not remade because of errors.
make: Target 'qcom/msm8992-xiaomi-libra.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-limozeen-r4.dtb' not remade because of errors.
make: Target 'qcom/sdm450-motorola-ali.dtb' not remade because of errors.
make: Target 'qcom/x1e78100-lenovo-thinkpad-t14s-oled.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-quackingstick-r0.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pazquel360-wifi.dtb' not remade because of errors.
make: Target 'qcom/sdm630-sony-xperia-ganges-kirin.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-coachz-r1-lte.dtb' not remade because of errors.
make: Target 'qcom/sdm845-lg-judyp.dtb' not remade because of errors.
make: Target 'qcom/sdm845-cheza-r3.dtb' not remade because of errors.
make: Target 'qcom/msm8939-wingtech-wt82918.dtb' not remade because of errors.
make: Target 'qcom/qrb2210-rb1.dtb' not remade because of errors.
make: Target 'qcom/msm8996-mtp.dtb' not remade because of errors.
make: Target 'qcom/sm8750-mtp.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-zombie.dtb' not remade because of errors.
make: Target 'qcom/msm8992-lg-bullhead-rev-10.dtb' not remade because of errors.
make: Target 'qcom/qrb5165-rb5.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-lenovo-yoga-slim7x.dtb' not remade because of errors.
make: Target 'qcom/sm8550-qrd.dtb' not remade because of errors.
make: Target 'qcom/sdm630-sony-xperia-nile-discovery.dtb' not remade because of errors.
make: Target 'qcom/sm8550-sony-xperia-yodo-pdx234.dtb' not remade because of errors.
make: Target 'qcom/msm8939-huawei-kiwi.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-wormdingler-rev1-inx.dtb' not remade because of errors.
make: Target 'qcom/sc8280xp-microsoft-arcata.dtb' not remade because of errors.
make: Target 'qcom/sdm845-oneplus-fajita.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-limozeen-nots-r4.dtb' not remade because of errors.
make: Target 'qcom/sdm660-xiaomi-lavender.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-coachz-r1.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r10.dtb' not remade because of errors.
make: Target 'qcom/msm8939-wingtech-wt82918hd.dtb' not remade because of errors.
make: Target 'qcom/ipq6018-cp01-c1.dtb' not remade because of errors.
make: Target 'qcom/msm8916-motorola-surnia.dtb' not remade because of errors.
make: Target 'qcom/sm8350-microsoft-surface-duo2.dtb' not remade because of errors.
make: Target 'qcom/qcm6490-idp.dtb' not remade because of errors.
make: Target 'qcom/sm8550-mtp.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-a3u-eur.dtb' not remade because of errors.
make: Target 'qcom/sdm845-sony-xperia-tama-akari.dtb' not remade because of errors.
make: Target 'qcom/x1p42100-crd.dtb' not remade because of errors.
make: Target 'qcom/sm8250-mtp.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dtb' not remade because of errors.
make: Target 'qcom/sm8250-xiaomi-elish-csot.dtb' not remade because of errors.
make: Target 'qcom/msm8916-wingtech-wt88047.dtb' not remade because of errors.
make: Target 'qcom/msm8916-thwc-ufi001c.dtb' not remade because of errors.
make: Target 'qcom/msm8998-xiaomi-sagit.dtb' not remade because of errors.
make: Target 'qcom/qcs8550-aim300-aiot.dtb' not remade because of errors.
make: Target 'qcom/sdm450-lenovo-tbx605f.dtb' not remade because of errors.
make: Target 'qcom/sm8250-xiaomi-elish-boe.dtb' not remade because of errors.
make: Target 'qcom/qcs404-evb-4000.dtb' not remade because of errors.
make: Target 'qcom/qcs9100-ride.dtb' not remade because of errors.
make: Target 'qcom/msm8996-sony-xperia-tone-kagura.dtb' not remade because of errors.
make: Target 'qcom/sm8150-sony-xperia-kumano-griffin.dtb' not remade because of errors.
make: Target 'qcom/sdm670-google-sargo.dtb' not remade because of errors.
make: Target 'qcom/x1e001de-devkit.dtb' not remade because of errors.
make: Target 'qcom/sa8775p-ride.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-crd.dtb' not remade because of errors.
make: Target 'qcom/ipq5424-rdp466.dtb' not remade because of errors.
make: Target 'qcom/sc8180x-lenovo-flex-5g.dtb' not remade because of errors.
make: Target 'qcom/sdm845-lg-judyln.dtb' not remade because of errors.
make: Target 'qcom/sm6125-xiaomi-ginkgo.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r3-kb.dtb' not remade because of errors.
make: Target 'qcom/msm8916-motorola-osprey.dtb' not remade because of errors.
make: Target 'qcom/sm8250-xiaomi-pipa.dtb' not remade because of errors.
make: Target 'qcom/sdm845-oneplus-enchilada.dtb' not remade because of errors.
make: Target 'qcom/msm8956-sony-xperia-loire-suzu.dtb' not remade because of errors.
make: Target 'qcom/sc7280-idp.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-evoker-lte.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-homestar-r4.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-rossa.dtb' not remade because of errors.
make: Target 'qcom/apq8039-t2.dtb' not remade because of errors.
make: Target 'qcom/msm8916-motorola-harpia.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-e5.dtb' not remade because of errors.
make: Target 'qcom/sc7280-idp2.dtb' not remade because of errors.
make: Target 'qcom/apq8016-sbc-d3-camera-mezzanine.dtb' not remade because of errors.
make: Target 'qcom/msm8939-sony-xperia-kanuti-tulip.dtb' not remade because of errors.
make: Target 'qcom/ipq8074-hk01.dtb' not remade because of errors.
make: Target 'qcom/sm8150-mtp.dtb' not remade because of errors.
make: Target 'qcom/ipq9574-rdp433.dtb' not remade because of errors.
make: Target 'qcom/sdm845-sony-xperia-tama-apollo.dtb' not remade because of errors.
make: Target 'qcom/msm8998-lenovo-miix-630.dtb' not remade because of errors.
make: Target 'qcom/msm8994-sony-xperia-kitakami-karin.dtb' not remade because of errors.
make: Target 'qcom/sdm630-sony-xperia-nile-pioneer.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-grandmax.dtb' not remade because of errors.
make: Target 'qcom/msm8916-alcatel-idol347.dtb' not remade because of errors.
make: Target 'qcom/ipq9574-rdp453.dtb' not remade because of errors.
make: Target 'qcom/sc7180-acer-aspire1.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-r1.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-e7.dtb' not remade because of errors.
make: Target 'qcom/ipq5018-rdp432-c2.dtb' not remade because of errors.
make: Target 'qcom/apq8016-schneider-hmibsc.dtb' not remade because of errors.
make: Target 'qcom/qrb4210-rb2.dtb' not remade because of errors.
make: Target 'qcom/ipq5018-tplink-archer-ax55-v1.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-evoker.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-kingoftown.dtb' not remade because of errors.
make: Target 'qcom/sm4450-qrd.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-j5.dtb' not remade because of errors.
make: Target 'qcom/msm8998-asus-novago-tp370ql.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pompom-r2-lte.dtb' not remade because of errors.
make: Target 'qcom/msm8992-lg-h815.dtb' not remade because of errors.
make: Target 'qcom/sdx75-idp.dtb' not remade because of errors.
make: Target 'qcom/sm8350-sony-xperia-sagami-pdx215.dtb' not remade because of errors.
make: Target 'qcom/apq8096-db820c.dtb' not remade because of errors.
make: Target 'qcom/msm8996-sony-xperia-tone-keyaki.dtb' not remade because of errors.
make: Target 'qcom/msm8916-longcheer-l8150.dtb' not remade because of errors.
make: Target 'qcom/msm8994-sony-xperia-kitakami-suzuran.dtb' not remade because of errors.
make: Target 'qcom/sdm845-mtp.dtb' not remade because of errors.
make: Target 'qcom/sm6375-sony-xperia-murray-pdx225.dtb' not remade because of errors.
make: Target 'qcom/msm8916-yiming-uz801v3.dtb' not remade because of errors.
make: Target 'qcom/qcs9100-ride-r3.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-hp-omnibook-x14.dtb' not remade because of errors.
make: Target 'qcom/msm8953-xiaomi-vince.dtb' not remade because of errors.
make: Target 'qcom/sdm845-cheza-r2.dtb' not remade because of errors.
make: Target 'qcom/ipq5332-rdp441.dtb' not remade because of errors.
make: Target 'qcom/msm8992-lg-bullhead-rev-101.dtb' not remade because of errors.
make: Target 'qcom/msm8917-xiaomi-riva.dtb' not remade because of errors.
make: Target 'qcom/msm8996-xiaomi-gemini.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-limozeen-r9.dtb' not remade because of errors.
make: Target 'qcom/msm8998-sony-xperia-yoshino-lilac.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-gprimeltecan.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pazquel360-lte.dtb' not remade because of errors.
make: Target 'qcom/sdm845-shift-axolotl.dtb' not remade because of errors.
make: Target 'qcom/msm8996-oneplus3t.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-zombie-lte.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r3.dtb' not remade because of errors.
make: Target 'qcom/sar2130p-qar2130p.dtb' not remade because of errors.
make: Target 'qcom/sm8650-hdk.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-herobrine-r1.dtb' not remade because of errors.
make: Target 'qcom/msm8916-longcheer-l8910.dtb' not remade because of errors.
make: Target 'qcom/sdm630-sony-xperia-nile-voyager.dtb' not remade because of errors.
make: Target 'qcom/sm8450-hdk.dtb' not remade because of errors.
make: Target 'qcom/msm8929-wingtech-wt82918hd.dtb' not remade because of errors.
make: Target 'qcom/sm8250-sony-xperia-edo-pdx203.dtb' not remade because of errors.
make: Target 'qcom/sm8350-hdk.dtb' not remade because of errors.
make: Target 'qcom/ipq8074-hk10-c1.dtb' not remade because of errors.
make: Target 'qcom/sm8450-qrd.dtb' not remade because of errors.
make: Target 'qcom/msm8916-lg-c50.dtb' not remade because of errors.
make: Target 'qcom/sm8250-sony-xperia-edo-pdx206.dtb' not remade because of errors.
make: Target 'qcom/sm7225-fairphone-fp4.dtb' not remade because of errors.
make: Target 'qcom/sa8155p-adp.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-qcp.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r1-kb.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-grandprimelte.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-zombie-nvme-lte.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-homestar-r3.dtb' not remade because of errors.
make: Target 'qcom/ipq5332-rdp474.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-asus-vivobook-s15.dtb' not remade because of errors.
make: Target 'qcom/sm8150-microsoft-surface-duo.dtb' not remade because of errors.
make: Target 'qcom/msm8996pro-xiaomi-scorpio.dtb' not remade because of errors.
make: Target 'qcom/x1e78100-lenovo-thinkpad-t14s.dtb' not remade because of errors.
make: Target 'qcom/sm8150-hdk.dtb' not remade because of errors.
make: Target 'qcom/sc8180x-primus.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r10-lte.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-j5x.dtb' not remade because of errors.
make: Target 'qcom/sc7180-idp.dtb' not remade because of errors.
make: Target 'qcom/msm8916-mtp.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-hp-elitebook-ultra-g1q.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-limozeen-r10.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-zombie-nvme.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-microsoft-romulus15.dtb' not remade because of errors.
make: Target 'qcom/qru1000-idp.dtb' not remade because of errors.
make: Target 'qcom/msm8998-hp-envy-x2.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-wormdingler-rev1-boe-rt5682s.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pazquel-parade.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r9-kb.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-wormdingler-rev1-boe.dtb' not remade because of errors.
make: Target 'qcom/qcs615-ride.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-coachz-r3-lte.dtb' not remade because of errors.
make: Target 'qcom/sc7280-crd-r3.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-gt58.dtb' not remade because of errors.
make: Target 'qcom/sa8775p-ride-r3.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-villager-r1.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pazquel-ti.dtb' not remade because of errors.
make: Target 'qcom/qcm6490-shift-otter.dtb' not remade because of errors.
make: Target 'qcom/qcs8300-ride.dtb' not remade because of errors.
make: Target 'qcom/apq8016-sbc.dtb' not remade because of errors.
make: Target 'qcom/msm8996pro-xiaomi-natrium.dtb' not remade because of errors.
make: Target 'qcom/sdm845-samsung-starqltechn.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pompom-r1-lte.dtb' not remade because of errors.
make: Target 'qcom/msm8953-xiaomi-tissot.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r9.dtb' not remade because of errors.
make: Target 'qcom/sm6125-xiaomi-laurel-sprout.dtb' not remade because of errors.
make: Target 'qcom/msm8994-sony-xperia-kitakami-sumire.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-serranove.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-coachz-r3.dtb' not remade because of errors.
make: Target 'qcom/sdm845-sony-xperia-tama-akatsuki.dtb' not remade because of errors.
make: Target 'qcom/ipq9574-rdp449.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-r1-lte.dtb' not remade because of errors.
make: Target 'qcom/sc8280xp-ntmer-tw220.dtb' not remade because of errors.
make: Target 'qcom/msm8916-lg-m216.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-crd.dtb' not remade because of errors.
make: Target 'qcom/apq8094-sony-xperia-kitakami-karin_windy.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r9-lte.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pazquel-lte-ti.dtb' not remade because of errors.
make: Target 'qcom/msm8996-sony-xperia-tone-dora.dtb' not remade because of errors.
make: Target 'qcom/sa8295p-adp.dtb' not remade because of errors.
make: Target 'qcom/msm8994-sony-xperia-kitakami-ivy.dtb' not remade because of errors.
make: Target 'qcom/sdm845-xiaomi-beryllium-ebbg.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pompom-r3.dtb' not remade because of errors.
make: Target 'qcom/msm8998-oneplus-dumpling.dtb' not remade because of errors.
make: Target 'qcom/sm8650-mtp.dtb' not remade because of errors.
make: Target 'qcom/msm8996-oneplus3.dtb' not remade because of errors.
make: Target 'qcom/sm8550-hdk.dtb' not remade because of errors.
make: Target 'qcom/x1e80100-microsoft-romulus13.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r1-lte.dtb' not remade because of errors.
make: Target 'qcom/msm8939-samsung-a7.dtb' not remade because of errors.
make: Target 'qcom/qcm6490-fairphone-fp5.dtb' not remade because of errors.
make: Target 'qcom/sc8280xp-huawei-gaokun3.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-wormdingler-rev1-inx-rt5682s.dtb' not remade because of errors.
make: Target 'qcom/msm8953-xiaomi-mido.dtb' not remade because of errors.
make: Target 'qcom/msm8916-asus-z00l.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pompom-r2.dtb' not remade because of errors.
make: Target 'qcom/sm6350-sony-xperia-lena-pdx213.dtb' not remade because of errors.
make: Target 'qcom/sdm632-fairphone-fp3.dtb' not remade because of errors.
make: Target 'qcom/msm8953-motorola-potter.dtb' not remade because of errors.
make: Target 'qcom/sda660-inforce-ifc6560.dtb' not remade because of errors.
make: Target 'qcom/sm8150-sony-xperia-kumano-bahamut.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pazquel-lte-parade.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-homestar-r2.dtb' not remade because of errors.
make: Target 'qcom/sm8250-hdk.dtb' not remade because of errors.
make: Target 'qcom/sm8650-qrd.dtb' not remade because of errors.
make: Target 'qcom/sc8280xp-microsoft-blackrock.dtb' not remade because of errors.
make: Target 'qcom/ipq8074-hk10-c2.dtb' not remade because of errors.
make: Target 'qcom/msm8953-xiaomi-daisy.dtb' not remade because of errors.
make: Target 'qcom/sc8280xp-crd.dtb' not remade because of errors.
make: Target 'qcom/sdm850-samsung-w737.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dtb' not remade because of errors.
make: Target 'qcom/msm8916-samsung-gt510.dtb' not remade because of errors.
make: Target 'qcom/sdm850-lenovo-yoga-c630.dtb' not remade because of errors.
make: Target 'qcom/msm8916-thwc-uf896.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r10-kb.dtb' not remade because of errors.
make: Target 'qcom/msm8994-sony-xperia-kitakami-satsuki.dtb' not remade because of errors.
make: Target 'qcom/sdm632-motorola-ocean.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-villager-r1-lte.dtb' not remade because of errors.
make: Target 'qcom/sm6115-fxtec-pro1x.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pompom-r3-lte.dtb' not remade because of errors.
make: Target 'qcom/msm8998-sony-xperia-yoshino-poplar.dtb' not remade because of errors.
make: Target 'qcom/msm8916-huawei-g7.dtb' not remade because of errors.
make: Target 'qcom/msm8916-wingtech-wt86518.dtb' not remade because of errors.
make: Target 'qcom/sm8350-sony-xperia-sagami-pdx214.dtb' not remade because of errors.
make: Target 'qcom/msm8916-wingtech-wt86528.dtb' not remade because of errors.
make: Target 'qcom/sdm845-db845c.dtb' not remade because of errors.
make: Target 'qcom/sa8540p-ride.dtb' not remade because of errors.
make: Target 'qcom/msm8939-longcheer-l9100.dtb' not remade because of errors.
make: Target 'qcom/qdu1000-idp.dtb' not remade because of errors.
make: Target 'qcom/sm8550-samsung-q5q.dtb' not remade because of errors.
make: Target 'qcom/msm8992-msft-lumia-octagon-talkman.dtb' not remade because of errors.
make: Target 'qcom/msm8916-gplus-fl8005a.dtb' not remade because of errors.
make: Target 'qcom/sm8350-mtp.dtb' not remade because of errors.
make: Target 'qcom/msm8956-sony-xperia-loire-kugo.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-r1.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-pompom-r1.dtb' not remade because of errors.
make: Target 'qcom/msm8998-oneplus-cheeseburger.dtb' not remade because of errors.
make: Target 'qcom/sc7280-herobrine-villager-r0.dtb' not remade because of errors.
make: Target 'qcom/sm8750-qrd.dtb' not remade because of errors.
make: Target 'qcom/sm4250-oneplus-billie2.dtb' not remade because of errors.
make: Target 'qcom/sdm636-sony-xperia-ganges-mermaid.dtb' not remade because of errors.
make: Target 'qcom/qcs404-evb-1000.dtb' not remade because of errors.
make: Target 'qcom/ipq5332-rdp442.dtb' not remade because of errors.
make: Target 'qcom/sdm845-cheza-r1.dtb' not remade because of errors.
make: Target 'qcom/msm8994-msft-lumia-octagon-cityman.dtb' not remade because of errors.
make: Target 'qcom/msm8916-acer-a1-724.dtb' not remade because of errors.
make: Target 'qcom/sdm845-xiaomi-beryllium-tianma.dtb' not remade because of errors.
make: Target 'qcom/sm6125-sony-xperia-seine-pdx201.dtb' not remade because of errors.
make: Target 'qcom/sdm845-xiaomi-polaris.dtb' not remade because of errors.
make: Target 'qcom/ipq9574-rdp418.dtb' not remade because of errors.
make: Target 'qcom/msm8216-samsung-fortuna3g.dtb' not remade because of errors.
make: Target 'qcom/sm8450-sony-xperia-nagara-pdx223.dtb' not remade because of errors.
make: Target 'qcom/sm8450-sony-xperia-nagara-pdx224.dtb' not remade because of errors.
make: Target 'qcom/sm7125-xiaomi-joyeuse.dtb' not remade because of errors.
make: Target 'qcom/msm8994-huawei-angler-rev-101.dtb' not remade because of errors.
make: Target 'qcom/ipq5332-rdp468.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-lazor-limozeen-nots-r10.dtb' not remade because of errors.
make: Target 'qcom/sc7180-trogdor-quackingstick-r0-lte.dtb' not remade because of errors.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-06-17 9:29 ` [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for " Pengyu Luo
@ 2025-06-25 6:17 ` kernel test robot
2025-06-27 19:48 ` Konrad Dybcio
1 sibling, 0 replies; 19+ messages in thread
From: kernel test robot @ 2025-06-25 6:17 UTC (permalink / raw)
To: Pengyu Luo, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Eric Biggers, Len Brown,
Benno Lossin, Ilpo Järvinen, Ingo Molnar, Miguel Ojeda,
Joel Granados, Al Viro, Alice Ryhl, Stephen Rothwell
Cc: llvm, oe-kbuild-all, linux-arm-msm, devicetree, linux-kernel,
Pengyu Luo, Hong Zhu
Hi Pengyu,
kernel test robot noticed the following build errors:
[auto build test ERROR on robh/for-next]
[also build test ERROR on linus/master v6.16-rc3 next-20250624]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Pengyu-Luo/dt-bindings-vendor-prefixes-Add-Ntmer/20250617-173338
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20250617092929.1492750-4-mitltlatltl%40gmail.com
patch subject: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
config: arm64-randconfig-001-20250624 (https://download.01.org/0day-ci/archive/20250625/202506251320.oOPGzTPQ-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project e04c938cc08a90ae60440ce22d072ebc69d67ee8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250625/202506251320.oOPGzTPQ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506251320.oOPGzTPQ-lkp@intel.com/
All errors (new ones prefixed by >>):
>> Error: arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts:751.1-10 Label or path gpi_dma0 not found
>> Error: arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts:755.1-10 Label or path gpi_dma1 not found
>> Error: arch/arm64/boot/dts/qcom/sc8280xp-ntmer-tw220.dts:759.1-10 Label or path gpi_dma2 not found
>> FATAL ERROR: Syntax error parsing input tree
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/4] dt-bindings: vendor-prefixes: Add Ntmer
2025-06-17 9:29 ` [PATCH 1/4] dt-bindings: vendor-prefixes: Add Ntmer Pengyu Luo
@ 2025-06-27 19:20 ` Rob Herring (Arm)
0 siblings, 0 replies; 19+ messages in thread
From: Rob Herring (Arm) @ 2025-06-27 19:20 UTC (permalink / raw)
To: Pengyu Luo
Cc: Miguel Ojeda, Konrad Dybcio, Bjorn Andersson, Ilpo Järvinen,
Eric Biggers, devicetree, Benno Lossin, Conor Dooley,
Stephen Rothwell, Ingo Molnar, Joel Granados, Al Viro,
linux-arm-msm, Alice Ryhl, Krzysztof Kozlowski, linux-kernel,
Len Brown
On Tue, 17 Jun 2025 17:29:26 +0800, Pengyu Luo wrote:
> Ntmer is a Chinese company, their website is https://www.ntmer.com
>
> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
> ---
> Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/4] dt-bindings: arm: qcom: Add Ntmer TW220
2025-06-17 9:29 ` [PATCH 2/4] dt-bindings: arm: qcom: Add Ntmer TW220 Pengyu Luo
@ 2025-06-27 19:20 ` Rob Herring (Arm)
0 siblings, 0 replies; 19+ messages in thread
From: Rob Herring (Arm) @ 2025-06-27 19:20 UTC (permalink / raw)
To: Pengyu Luo
Cc: Ilpo Järvinen, devicetree, Krzysztof Kozlowski,
Stephen Rothwell, linux-arm-msm, linux-kernel, Len Brown, Al Viro,
Benno Lossin, Miguel Ojeda, Alice Ryhl, Konrad Dybcio,
Joel Granados, Ingo Molnar, Bjorn Andersson, Eric Biggers,
Conor Dooley
On Tue, 17 Jun 2025 17:29:27 +0800, Pengyu Luo wrote:
> The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP
> platform. This device is also known as Robo&kala 2-in-1 Laptop.
>
> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
> ---
> Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-06-17 9:29 ` [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for " Pengyu Luo
2025-06-25 6:17 ` kernel test robot
@ 2025-06-27 19:48 ` Konrad Dybcio
2025-07-06 3:43 ` Pengyu Luo
1 sibling, 1 reply; 19+ messages in thread
From: Konrad Dybcio @ 2025-06-27 19:48 UTC (permalink / raw)
To: Pengyu Luo, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Eric Biggers, Len Brown,
Benno Lossin, Ilpo Järvinen, Ingo Molnar, Miguel Ojeda,
Joel Granados, Al Viro, Alice Ryhl, Stephen Rothwell
Cc: linux-arm-msm, devicetree, linux-kernel, Hong Zhu
On 6/17/25 11:29 AM, Pengyu Luo wrote:
> The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
> also known as the Robo&Kala 2-in-1 Laptop. Thanks to Hong for providing
> the unlocked device and early development work. This patch adds an
> initial device tree to enable basic functionality.
>
> Currently supported components include:
> - Bluetooth & Wi-Fi (board file regeneration required)
> - Battery charging (up to 15V/3A fixed PDO) and reporting via pmic-glink
> - Flash LEDs (front and rear)
> - Hall sensor (lid detection)
> - Keyboard (via Bluetooth or USB)
> - NVMe SSD
> - Power and volume keys
> - Simple-framebuffer
> - Sound (playback and capture; top-left DMIC only, top-right works only
> on Windows)
> - Touchscreen and stylus (requires GPI DMA support [1] and stylus support [2])
> - USB Type-C ports
>
> The following components are currently non-functional:
> - Cameras (GalaxyCore GC5035; only sensor ID is detectable, no frames in libcamera;
> partial driver can be found on LKML archives)
> - DSI display (blank screen with `dsi_err_worker: status=4`; primary DSI register
> dump included below)
> - Stylus wireless charger (CPS4035)
> - UCSI over GLINK
>
> [1]: https://lore.kernel.org/linux-arm-msm/20250617090032.1487382-3-mitltlatltl@gmail.com
> [2]: https://lore.kernel.org/linux-input/20250605054855.403487-2-mitltlatltl@gmail.com
>
> Note: This series does **not** include any confidential material. Those
> who wish to run Linux on this device should contact Ntmer, as the
> bootloader is locked via secure boot.
>
> Co-developed-by: Hong Zhu <vanyang@smail.nju.edu.cn>
> Signed-off-by: Hong Zhu <vanyang@smail.nju.edu.cn>
> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
>
> dsi_ctrl, reg = <0 0x0ae94000 0 0x400>;
> 0xae94000 20050001 000001f3 0000000b dddd1011
This is not something we want in the commit log
[...]
> + gpio-leds {
> + compatible = "gpio-leds";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&camf_indicator_en>, <&camr_indicator_en>;
property-n
property-names
in that order, across the file, please
[...]
> + wsa-dai-link {
> + link-name = "WSA Playback";
> +
> + cpu {
> + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
> + };
> +
> + codec {
'co'dec < 'cp'u
[...]
> +/*
> + * cci0_i2c1
> + * sda: gpio115, scl: gpio116
> + *
> + * CAMI ov9234 @36 @48
> + *
> + * power on sequence
> + * gpio7 out low
> + * l3q 1p8
> + * l6q 2p8
> + * l2q 1p2
> + * gpio7 out high
> + * msleep 5
> + * cam_cc_mclk4_clk 2.4MHz (gpio6)
> + */
It would be useful to enable these buses and set up what we can,
otherwise this is quite a lot of text for comments..
[...]
> +&spi22 {
> + status = "okay";
> + pinctrl-0 = <&spi22_default>;
> + pinctrl-names = "default";
status should be the last property (before subnodes), preferably
with a newline before it, so:
pinctrl-0 = <&spi22_default>;
pinctrl-names = "default";
status = "okay";
> +
> + touchscreen@0 {
> + /*
> + * The ACPI device ID is GXTS7986, its exact suffix is unknown.
> + * The Windows driver suggests it is a GTBerlinB variant and
> + * communicates via HID over SPI, which aligns with the Linux
> + * driver `drivers/hid/hid-goodix-spi.c`.
> + *
> + * However, the HID descriptor read from the device appears
> + * garbled, preventing proper probe with the HID driver. In
> + * contrast, the driver at
> + * `drivers/input/touchscreen/goodix_berlin_spi.c` shares many
> + * similarities and functions correctly with this hardware.
> + *
> + * Therefore, we choose to use the goodix_berlin_spi driver
> + * instead.
Is this something you could work out with the aforementioned drivers'
maintainers?
[...]
> +&pcie4_port0 {
> + wifi@0 {
> + compatible = "pci17cb,1103";
> + reg = <0x10000 0x0 0x0 0x0 0x0>;
> +
> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
> + vddaon-supply = <&vreg_pmu_aon_0p8>;
> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
> + vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
> + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
> + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
> +
> + /*
> + * bus=pci,vendor=17cb,device=1103,subsystem-vendor=17cb,
> + * subsystem-device=0108,qmi-chip-id=18,qmi-board-id=255
> + *
> + * Regenerate board file, x13s one works well
Please post on the ath11k mailing list and propose and ask for
that variant to be included
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-06-27 19:48 ` Konrad Dybcio
@ 2025-07-06 3:43 ` Pengyu Luo
2025-07-30 12:53 ` Konrad Dybcio
0 siblings, 1 reply; 19+ messages in thread
From: Pengyu Luo @ 2025-07-06 3:43 UTC (permalink / raw)
To: konrad.dybcio
Cc: aliceryhl, andersson, conor+dt, devicetree, ebiggers,
ilpo.jarvinen, joel.granados, konradybcio, krzk+dt, len.brown,
linux-arm-msm, linux-kernel, lossin, mingo, mitltlatltl, ojeda,
robh, sfr, vanyang, viro
On Sat, Jun 28, 2025 at 3:48 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
> On 6/17/25 11:29 AM, Pengyu Luo wrote:
> > The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
> > also known as the Robo&Kala 2-in-1 Laptop. Thanks to Hong for providing
> > the unlocked device and early development work. This patch adds an
> > initial device tree to enable basic functionality.
> >
> > Currently supported components include:
> > - Bluetooth & Wi-Fi (board file regeneration required)
> > - Battery charging (up to 15V/3A fixed PDO) and reporting via pmic-glink
> > - Flash LEDs (front and rear)
> > - Hall sensor (lid detection)
> > - Keyboard (via Bluetooth or USB)
> > - NVMe SSD
> > - Power and volume keys
> > - Simple-framebuffer
> > - Sound (playback and capture; top-left DMIC only, top-right works only
> > on Windows)
> > - Touchscreen and stylus (requires GPI DMA support [1] and stylus support [2])
> > - USB Type-C ports
> >
> > The following components are currently non-functional:
> > - Cameras (GalaxyCore GC5035; only sensor ID is detectable, no frames in libcamera;
> > partial driver can be found on LKML archives)
> > - DSI display (blank screen with `dsi_err_worker: status=4`; primary DSI register
> > dump included below)
> > - Stylus wireless charger (CPS4035)
> > - UCSI over GLINK
> >
> > [1]: https://lore.kernel.org/linux-arm-msm/20250617090032.1487382-3-mitltlatltl@gmail.com
> > [2]: https://lore.kernel.org/linux-input/20250605054855.403487-2-mitltlatltl@gmail.com
> >
> > Note: This series does **not** include any confidential material. Those
> > who wish to run Linux on this device should contact Ntmer, as the
> > bootloader is locked via secure boot.
> >
> > Co-developed-by: Hong Zhu <vanyang@smail.nju.edu.cn>
> > Signed-off-by: Hong Zhu <vanyang@smail.nju.edu.cn>
> > Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
> >
> > dsi_ctrl, reg = <0 0x0ae94000 0 0x400>;
> > 0xae94000 20050001 000001f3 0000000b dddd1011
>
> This is not something we want in the commit log
>
I will remove it. I need help, then I attached it, two of my sc8280xp
devices require dsi to work. Reversing and guessing wasted a lot of
time. I will appreciate it if qcom could support it.
> [...]
>
> > + gpio-leds {
> > + compatible = "gpio-leds";
> > +
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&camf_indicator_en>, <&camr_indicator_en>;
>
> property-n
> property-names
>
> in that order, across the file, please
>
Ack
> [...]
>
> > + wsa-dai-link {
> > + link-name = "WSA Playback";
> > +
> > + cpu {
> > + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
> > + };
> > +
> > + codec {
>
> 'co'dec < 'cp'u
>
Ack
> [...]
>
> > +/*
> > + * cci0_i2c1
> > + * sda: gpio115, scl: gpio116
> > + *
> > + * CAMI ov9234 @36 @48
> > + *
> > + * power on sequence
> > + * gpio7 out low
> > + * l3q 1p8
> > + * l6q 2p8
> > + * l2q 1p2
> > + * gpio7 out high
> > + * msleep 5
> > + * cam_cc_mclk4_clk 2.4MHz (gpio6)
> > + */
>
> It would be useful to enable these buses and set up what we can,
> otherwise this is quite a lot of text for comments..
>
Ack
> [...]
>
> > +&spi22 {
> > + status = "okay";
> > + pinctrl-0 = <&spi22_default>;
> > + pinctrl-names = "default";
>
> status should be the last property (before subnodes), preferably
> with a newline before it, so:
>
> pinctrl-0 = <&spi22_default>;
> pinctrl-names = "default";
>
> status = "okay";
>
Ack
>
> > +
> > + touchscreen@0 {
> > + /*
> > + * The ACPI device ID is GXTS7986, its exact suffix is unknown.
> > + * The Windows driver suggests it is a GTBerlinB variant and
> > + * communicates via HID over SPI, which aligns with the Linux
> > + * driver `drivers/hid/hid-goodix-spi.c`.
> > + *
> > + * However, the HID descriptor read from the device appears
> > + * garbled, preventing proper probe with the HID driver. In
> > + * contrast, the driver at
> > + * `drivers/input/touchscreen/goodix_berlin_spi.c` shares many
> > + * similarities and functions correctly with this hardware.
> > + *
> > + * Therefore, we choose to use the goodix_berlin_spi driver
> > + * instead.
>
> Is this something you could work out with the aforementioned drivers'
> maintainers?
>
Since the ts device works well, I am still occupied with dsi things,
I may contact them later.
BTW, could you please review the gpi dma patches, touchscreen depends
on it, it is still hanging there, thanks in advance.
https://lore.kernel.org/linux-arm-msm/20250617090032.1487382-3-mitltlatltl@gmail.com
> [...]
>
> > +&pcie4_port0 {
> > + wifi@0 {
> > + compatible = "pci17cb,1103";
> > + reg = <0x10000 0x0 0x0 0x0 0x0>;
> > +
> > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
> > + vddaon-supply = <&vreg_pmu_aon_0p8>;
> > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
> > + vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
> > + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
> > + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
> > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
> > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
> > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
> > +
> > + /*
> > + * bus=pci,vendor=17cb,device=1103,subsystem-vendor=17cb,
> > + * subsystem-device=0108,qmi-chip-id=18,qmi-board-id=255
> > + *
> > + * Regenerate board file, x13s one works well
>
> Please post on the ath11k mailing list and propose and ask for
> that variant to be included
>
Ack
Best wishes,
Pengyu
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-07-06 3:43 ` Pengyu Luo
@ 2025-07-30 12:53 ` Konrad Dybcio
2025-07-30 15:29 ` Pengyu Luo
0 siblings, 1 reply; 19+ messages in thread
From: Konrad Dybcio @ 2025-07-30 12:53 UTC (permalink / raw)
To: Pengyu Luo
Cc: aliceryhl, andersson, conor+dt, devicetree, ebiggers,
ilpo.jarvinen, joel.granados, konradybcio, krzk+dt, len.brown,
linux-arm-msm, linux-kernel, lossin, mingo, ojeda, robh, sfr,
vanyang, viro
On 7/6/25 5:43 AM, Pengyu Luo wrote:
> On Sat, Jun 28, 2025 at 3:48 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
>> On 6/17/25 11:29 AM, Pengyu Luo wrote:
>>> The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
>>> also known as the Robo&Kala 2-in-1 Laptop. Thanks to Hong for providing
>>> the unlocked device and early development work. This patch adds an
>>> initial device tree to enable basic functionality.
>>>
>>> Currently supported components include:
>>> - Bluetooth & Wi-Fi (board file regeneration required)
>>> - Battery charging (up to 15V/3A fixed PDO) and reporting via pmic-glink
>>> - Flash LEDs (front and rear)
>>> - Hall sensor (lid detection)
>>> - Keyboard (via Bluetooth or USB)
>>> - NVMe SSD
>>> - Power and volume keys
>>> - Simple-framebuffer
>>> - Sound (playback and capture; top-left DMIC only, top-right works only
>>> on Windows)
>>> - Touchscreen and stylus (requires GPI DMA support [1] and stylus support [2])
>>> - USB Type-C ports
>>>
>>> The following components are currently non-functional:
>>> - Cameras (GalaxyCore GC5035; only sensor ID is detectable, no frames in libcamera;
>>> partial driver can be found on LKML archives)
>>> - DSI display (blank screen with `dsi_err_worker: status=4`; primary DSI register
>>> dump included below)
>>> - Stylus wireless charger (CPS4035)
>>> - UCSI over GLINK
>>>
>>> [1]: https://lore.kernel.org/linux-arm-msm/20250617090032.1487382-3-mitltlatltl@gmail.com
>>> [2]: https://lore.kernel.org/linux-input/20250605054855.403487-2-mitltlatltl@gmail.com
>>>
>>> Note: This series does **not** include any confidential material. Those
>>> who wish to run Linux on this device should contact Ntmer, as the
>>> bootloader is locked via secure boot.
>>>
>>> Co-developed-by: Hong Zhu <vanyang@smail.nju.edu.cn>
>>> Signed-off-by: Hong Zhu <vanyang@smail.nju.edu.cn>
>>> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
>>>
>>> dsi_ctrl, reg = <0 0x0ae94000 0 0x400>;
>>> 0xae94000 20050001 000001f3 0000000b dddd1011
>>
>> This is not something we want in the commit log
>>
>
> I will remove it. I need help, then I attached it, two of my sc8280xp
> devices require dsi to work. Reversing and guessing wasted a lot of
> time. I will appreciate it if qcom could support it.
There should be nothing interesting compared to what's on SM8350 when it
comes to DSI on 8280.
I would assume something's wrong with how your panel is being set up.
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-07-30 12:53 ` Konrad Dybcio
@ 2025-07-30 15:29 ` Pengyu Luo
2025-07-30 20:32 ` Konrad Dybcio
0 siblings, 1 reply; 19+ messages in thread
From: Pengyu Luo @ 2025-07-30 15:29 UTC (permalink / raw)
To: Konrad Dybcio
Cc: aliceryhl, andersson, conor+dt, devicetree, ebiggers,
ilpo.jarvinen, joel.granados, konradybcio, krzk+dt, len.brown,
linux-arm-msm, linux-kernel, lossin, mingo, ojeda, robh, sfr,
vanyang, viro
On Wed, Jul 30, 2025 at 8:53 PM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 7/6/25 5:43 AM, Pengyu Luo wrote:
> > On Sat, Jun 28, 2025 at 3:48 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
> >> On 6/17/25 11:29 AM, Pengyu Luo wrote:
> >>> The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
> >>> also known as the Robo&Kala 2-in-1 Laptop. Thanks to Hong for providing
> >>> the unlocked device and early development work. This patch adds an
> >>> initial device tree to enable basic functionality.
> >>>
> >>> Currently supported components include:
> >>> - Bluetooth & Wi-Fi (board file regeneration required)
> >>> - Battery charging (up to 15V/3A fixed PDO) and reporting via pmic-glink
> >>> - Flash LEDs (front and rear)
> >>> - Hall sensor (lid detection)
> >>> - Keyboard (via Bluetooth or USB)
> >>> - NVMe SSD
> >>> - Power and volume keys
> >>> - Simple-framebuffer
> >>> - Sound (playback and capture; top-left DMIC only, top-right works only
> >>> on Windows)
> >>> - Touchscreen and stylus (requires GPI DMA support [1] and stylus support [2])
> >>> - USB Type-C ports
> >>>
> >>> The following components are currently non-functional:
> >>> - Cameras (GalaxyCore GC5035; only sensor ID is detectable, no frames in libcamera;
> >>> partial driver can be found on LKML archives)
> >>> - DSI display (blank screen with `dsi_err_worker: status=4`; primary DSI register
> >>> dump included below)
> >>> - Stylus wireless charger (CPS4035)
> >>> - UCSI over GLINK
> >>>
> >>> [1]: https://lore.kernel.org/linux-arm-msm/20250617090032.1487382-3-mitltlatltl@gmail.com
> >>> [2]: https://lore.kernel.org/linux-input/20250605054855.403487-2-mitltlatltl@gmail.com
> >>>
> >>> Note: This series does **not** include any confidential material. Those
> >>> who wish to run Linux on this device should contact Ntmer, as the
> >>> bootloader is locked via secure boot.
> >>>
> >>> Co-developed-by: Hong Zhu <vanyang@smail.nju.edu.cn>
> >>> Signed-off-by: Hong Zhu <vanyang@smail.nju.edu.cn>
> >>> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
> >>>
> >>> dsi_ctrl, reg = <0 0x0ae94000 0 0x400>;
> >>> 0xae94000 20050001 000001f3 0000000b dddd1011
> >>
> >> This is not something we want in the commit log
> >>
> >
> > I will remove it. I need help, then I attached it, two of my sc8280xp
> > devices require dsi to work. Reversing and guessing wasted a lot of
> > time. I will appreciate it if qcom could support it.
>
> There should be nothing interesting compared to what's on SM8350 when it
> comes to DSI on 8280.
>
> I would assume something's wrong with how your panel is being set up.
Just to mention it. According to some public sources, the Adreno 1095 DPU
is included in the sm8350, while the Adreno 1199 DPU is included in the
sc8280xp, they are slightly different. Here is a quick comparison
dpu_version dsi_version dsi_phy_version
Adreno 1095 DPU: 7.0 2.5.0 4.2
Adreno 1199 DPU: 8.0 2.5.1 4.2
The panel setup has been tweaked and tested countless times, I really don't
think I screwed it up. I had already brought up a lcd video panel with dual
dsi and dual dsc on the sm8650. On the sc8280xp, I’ve worked with two
different panels:
- One LCD video panel with dual DSI and dual DSC
- One OLED video panel with dual DSI only
Both fail to display anything and complain about DSI FIFO errors
(dsi_err_worker: status=4). Someone also encountered a similar issue on
the SC8180X([1]), another WoA platform.
Anyway, I had quit. This doesn’t bother me anymore. Just mentioning the
info for reference.
[1]: https://gitlab.freedesktop.org/drm/msm/-/issues/62
Best wishes,
Pengyu
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-07-30 15:29 ` Pengyu Luo
@ 2025-07-30 20:32 ` Konrad Dybcio
2025-07-31 3:05 ` Pengyu Luo
0 siblings, 1 reply; 19+ messages in thread
From: Konrad Dybcio @ 2025-07-30 20:32 UTC (permalink / raw)
To: Pengyu Luo
Cc: aliceryhl, andersson, conor+dt, devicetree, ebiggers,
ilpo.jarvinen, joel.granados, konradybcio, krzk+dt, len.brown,
linux-arm-msm, linux-kernel, lossin, mingo, ojeda, robh, sfr,
vanyang, viro
On 7/30/25 5:29 PM, Pengyu Luo wrote:
> On Wed, Jul 30, 2025 at 8:53 PM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> On 7/6/25 5:43 AM, Pengyu Luo wrote:
>>> On Sat, Jun 28, 2025 at 3:48 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
>>>> On 6/17/25 11:29 AM, Pengyu Luo wrote:
>>>>> The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
>>>>> also known as the Robo&Kala 2-in-1 Laptop. Thanks to Hong for providing
>>>>> the unlocked device and early development work. This patch adds an
>>>>> initial device tree to enable basic functionality.
>>>>>
>>>>> Currently supported components include:
>>>>> - Bluetooth & Wi-Fi (board file regeneration required)
>>>>> - Battery charging (up to 15V/3A fixed PDO) and reporting via pmic-glink
>>>>> - Flash LEDs (front and rear)
>>>>> - Hall sensor (lid detection)
>>>>> - Keyboard (via Bluetooth or USB)
>>>>> - NVMe SSD
>>>>> - Power and volume keys
>>>>> - Simple-framebuffer
>>>>> - Sound (playback and capture; top-left DMIC only, top-right works only
>>>>> on Windows)
>>>>> - Touchscreen and stylus (requires GPI DMA support [1] and stylus support [2])
>>>>> - USB Type-C ports
>>>>>
>>>>> The following components are currently non-functional:
>>>>> - Cameras (GalaxyCore GC5035; only sensor ID is detectable, no frames in libcamera;
>>>>> partial driver can be found on LKML archives)
>>>>> - DSI display (blank screen with `dsi_err_worker: status=4`; primary DSI register
>>>>> dump included below)
>>>>> - Stylus wireless charger (CPS4035)
>>>>> - UCSI over GLINK
>>>>>
>>>>> [1]: https://lore.kernel.org/linux-arm-msm/20250617090032.1487382-3-mitltlatltl@gmail.com
>>>>> [2]: https://lore.kernel.org/linux-input/20250605054855.403487-2-mitltlatltl@gmail.com
>>>>>
>>>>> Note: This series does **not** include any confidential material. Those
>>>>> who wish to run Linux on this device should contact Ntmer, as the
>>>>> bootloader is locked via secure boot.
>>>>>
>>>>> Co-developed-by: Hong Zhu <vanyang@smail.nju.edu.cn>
>>>>> Signed-off-by: Hong Zhu <vanyang@smail.nju.edu.cn>
>>>>> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
>>>>>
>>>>> dsi_ctrl, reg = <0 0x0ae94000 0 0x400>;
>>>>> 0xae94000 20050001 000001f3 0000000b dddd1011
>>>>
>>>> This is not something we want in the commit log
>>>>
>>>
>>> I will remove it. I need help, then I attached it, two of my sc8280xp
>>> devices require dsi to work. Reversing and guessing wasted a lot of
>>> time. I will appreciate it if qcom could support it.
>>
>> There should be nothing interesting compared to what's on SM8350 when it
>> comes to DSI on 8280.
>>
>> I would assume something's wrong with how your panel is being set up.
>
> Just to mention it. According to some public sources, the Adreno 1095 DPU
> is included in the sm8350, while the Adreno 1199 DPU is included in the
> sc8280xp, they are slightly different. Here is a quick comparison
>
> dpu_version dsi_version dsi_phy_version
> Adreno 1095 DPU: 7.0 2.5.0 4.2
> Adreno 1199 DPU: 8.0 2.5.1 4.2
Patchlevel/step versions are usually not supposed to break any software
interfaces, so I'd be *really* surprised if this is the case
DPU is rather different (the one on 8280 is way larger than 8350's), but
ultimately they're built of the same bricks
>
> The panel setup has been tweaked and tested countless times, I really don't
> think I screwed it up. I had already brought up a lcd video panel with dual
> dsi and dual dsc on the sm8650. On the sc8280xp, I’ve worked with two
> different panels:
>
> - One LCD video panel with dual DSI and dual DSC
> - One OLED video panel with dual DSI only
>
> Both fail to display anything and complain about DSI FIFO errors
> (dsi_err_worker: status=4). Someone also encountered a similar issue on
> the SC8180X([1]), another WoA platform.
>
> Anyway, I had quit. This doesn’t bother me anymore. Just mentioning the
> info for reference.
Sad to see you go.
If you still want to, I saw a fix for a sneaky bug earlier today on
LKML that may actually be related to your issue, given you seem to
have a really high res panel..
https://lore.kernel.org/linux-arm-msm/20250730123938.1038640-1-quic_amakhija@quicinc.com/
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-07-30 20:32 ` Konrad Dybcio
@ 2025-07-31 3:05 ` Pengyu Luo
2025-08-01 12:29 ` Konrad Dybcio
0 siblings, 1 reply; 19+ messages in thread
From: Pengyu Luo @ 2025-07-31 3:05 UTC (permalink / raw)
To: Konrad Dybcio
Cc: aliceryhl, andersson, conor+dt, devicetree, ebiggers,
ilpo.jarvinen, joel.granados, konradybcio, krzk+dt, len.brown,
linux-arm-msm, linux-kernel, lossin, mingo, ojeda, robh, sfr,
vanyang, viro
On Thu, Jul 31, 2025 at 4:32 AM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 7/30/25 5:29 PM, Pengyu Luo wrote:
> > On Wed, Jul 30, 2025 at 8:53 PM Konrad Dybcio
> > <konrad.dybcio@oss.qualcomm.com> wrote:
> >>
> >> On 7/6/25 5:43 AM, Pengyu Luo wrote:
> >>> On Sat, Jun 28, 2025 at 3:48 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
> >>>> On 6/17/25 11:29 AM, Pengyu Luo wrote:
> >>>>> The Ntmer TW220 is a WOS tablet based on the Qualcomm SC8280XP platform,
> >>>>> also known as the Robo&Kala 2-in-1 Laptop. Thanks to Hong for providing
> >>>>> the unlocked device and early development work. This patch adds an
> >>>>> initial device tree to enable basic functionality.
> >>>>>
> >>>>> Currently supported components include:
> >>>>> - Bluetooth & Wi-Fi (board file regeneration required)
> >>>>> - Battery charging (up to 15V/3A fixed PDO) and reporting via pmic-glink
> >>>>> - Flash LEDs (front and rear)
> >>>>> - Hall sensor (lid detection)
> >>>>> - Keyboard (via Bluetooth or USB)
> >>>>> - NVMe SSD
> >>>>> - Power and volume keys
> >>>>> - Simple-framebuffer
> >>>>> - Sound (playback and capture; top-left DMIC only, top-right works only
> >>>>> on Windows)
> >>>>> - Touchscreen and stylus (requires GPI DMA support [1] and stylus support [2])
> >>>>> - USB Type-C ports
> >>>>>
> >>>>> The following components are currently non-functional:
> >>>>> - Cameras (GalaxyCore GC5035; only sensor ID is detectable, no frames in libcamera;
> >>>>> partial driver can be found on LKML archives)
> >>>>> - DSI display (blank screen with `dsi_err_worker: status=4`; primary DSI register
> >>>>> dump included below)
> >>>>> - Stylus wireless charger (CPS4035)
> >>>>> - UCSI over GLINK
> >>>>>
> >>>>> [1]: https://lore.kernel.org/linux-arm-msm/20250617090032.1487382-3-mitltlatltl@gmail.com
> >>>>> [2]: https://lore.kernel.org/linux-input/20250605054855.403487-2-mitltlatltl@gmail.com
> >>>>>
> >>>>> Note: This series does **not** include any confidential material. Those
> >>>>> who wish to run Linux on this device should contact Ntmer, as the
> >>>>> bootloader is locked via secure boot.
> >>>>>
> >>>>> Co-developed-by: Hong Zhu <vanyang@smail.nju.edu.cn>
> >>>>> Signed-off-by: Hong Zhu <vanyang@smail.nju.edu.cn>
> >>>>> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
> >>>>>
> >>>>> dsi_ctrl, reg = <0 0x0ae94000 0 0x400>;
> >>>>> 0xae94000 20050001 000001f3 0000000b dddd1011
> >>>>
> >>>> This is not something we want in the commit log
> >>>>
> >>>
> >>> I will remove it. I need help, then I attached it, two of my sc8280xp
> >>> devices require dsi to work. Reversing and guessing wasted a lot of
> >>> time. I will appreciate it if qcom could support it.
> >>
> >> There should be nothing interesting compared to what's on SM8350 when it
> >> comes to DSI on 8280.
> >>
> >> I would assume something's wrong with how your panel is being set up.
> >
> > Just to mention it. According to some public sources, the Adreno 1095 DPU
> > is included in the sm8350, while the Adreno 1199 DPU is included in the
> > sc8280xp, they are slightly different. Here is a quick comparison
> >
> > dpu_version dsi_version dsi_phy_version
> > Adreno 1095 DPU: 7.0 2.5.0 4.2
> > Adreno 1199 DPU: 8.0 2.5.1 4.2
>
> Patchlevel/step versions are usually not supposed to break any software
> interfaces, so I'd be *really* surprised if this is the case
>
> DPU is rather different (the one on 8280 is way larger than 8350's), but
> ultimately they're built of the same bricks
>
> >
> > The panel setup has been tweaked and tested countless times, I really don't
> > think I screwed it up. I had already brought up a lcd video panel with dual
> > dsi and dual dsc on the sm8650. On the sc8280xp, I’ve worked with two
> > different panels:
> >
> > - One LCD video panel with dual DSI and dual DSC
> > - One OLED video panel with dual DSI only
> >
> > Both fail to display anything and complain about DSI FIFO errors
> > (dsi_err_worker: status=4). Someone also encountered a similar issue on
> > the SC8180X([1]), another WoA platform.
> >
> > Anyway, I had quit. This doesn’t bother me anymore. Just mentioning the
> > info for reference.
>
> Sad to see you go.
>
> If you still want to, I saw a fix for a sneaky bug earlier today on
> LKML that may actually be related to your issue, given you seem to
> have a really high res panel..
>
> https://lore.kernel.org/linux-arm-msm/20250730123938.1038640-1-quic_amakhija@quicinc.com/
>
Thanks for the suggestion. Unfortunately, that won’t help here. Both
panels are 2560x1600, and both horizontal and vertical values are far
less than BIT(12) with one of them being halved.
Since I had shared the Linux register dump earlier, here’s the Windows
snippet as well. Let’s do a quick comparison:
Linux:
> ae94000 20050001 000001f3 0000000b dddd1011
> ae94010 00009130 31211101 3e2e1e0e 00001900
> ae94020 00000000 05190019 064c000c 065f0528
> ae94030 00060000 00000000 00040000 14000000
> ae94040 06100006 00003c2c 00001000 00000008
Windows:
> ae94000 20050001 000001f7 00000008 00001010
> ae94010 00009130 31211101 3e2e1e0e 00001900
> ae94020 00000000 05320032 064c000c 065f0551
> ae94030 000c0000 00000000 00040000 14000000
> ae94040 00100008 00013c2c 9bb9b000 00000004
REG_DSI_TOTAL is at offset 0x2c, since msm_host->ctrl_base += cfg->io_offset,
the offset is 4 as Dmitry noted.
Comparing 0x065f0528 (Linux) vs 0x065f0551 (Windows), the H_TOTAL clearly
does not overflow. Although the timings differ slightly, IIRC I had gone
through most of the registers earlier and tried tweaking some values to
match, but it was in vain. (Unfortunately, I didn’t save the final dump,
what’s attached here isn’t the last version.)
Just leaving this here in case it helps someone else down the line.
DSI0 on Windows:
# ae94000 20050001 000001f7 00000008 00001010
# ae94010 00009130 31211101 3e2e1e0e 00001900
# ae94020 00000000 05320032 064c000c 065f0551
# ae94030 000c0000 00000000 00040000 14000000
# ae94040 00100008 00013c2c 9bb9b000 00000004
# ae94050 00000000 00000900 00000000 00000000
# ae94060 00000000 00000000 00000000 00000000
# ae94070 00000000 00000000 00000000 22211211
# ae94080 001c1a02 00000004 00000000 00000000
# ae94090 00000001 00000000 00000000 00000000
# ae940a0 00000000 00000000 00001f00 00000000
# ae940b0 00000000 00088888 ffffffff 0004ea60
# ae940c0 00000000 00000000 010f0f08 00000001
# ae940d0 00000000 00000000 00000000 00000000
# ae940e0 00000000 00000000 00000000 00000000
# ae940f0 00000000 00000000 00000000 00000000
# ae94100 00000000 00000000 00000000 7ffffbff
# ae94110 00010000 00000000 00000000 0000023f
# ae94120 008067c3 00000000 00000000 00000000
# ae94130 00000000 ffffffff ffffffff ffffffff
# ae94140 ffffffff 00000000 0000ffff 0000ffff
# ae94150 0000ffff 0000ffff 00000000 00000000
# ae94160 00000000 00000000 00000000 00000000
# ae94170 00000000 00000000 00000000 00000000
# ae94180 00000000 00000000 00000000 00000000
# ae94190 00000000 00000000 00000000 00000000
# ae941a0 00000000 00000001 00ff0000 00400040
# ae941b0 000000ff 00000024 00010006 00000000
# ae941c0 00000000 00000000 ffffffff 00000000
# ae941d0 00290000 00000000 00000000 00000000
# ae941e0 00000000 00000000 00000000 00000000
# ae941f0 00000000 03000104 00000001 00000000
# ae94200 80000000 00000000 00000000 00000000
# ae94210 00000000 00000000 00000000 00000000
# ae94220 00000000 00000000 00000000 00000000
# ae94230 00000000 00000000 00000000 00000000
# ae94240 00000000 00000000 00000000 00000000
# ae94250 00000000 00000000 00000000 00000000
# ae94260 00000000 00000000 00000000 00000000
# ae94270 00000000 00000000 00000000 00000000
# ae94280 00000000 00000000 00000000 00000000
# ae94290 00000000 00000000 00000000 00000000
# ae942a0 00000b00 00000000 39003900 00000000
# ae942b0 00000000 00000000 3e2e0600 0000f000
# ae942c0 00000000 00000000 00000004 00000000
# ae942d0 00000000 00000000 00000000 00000000
# ae942e0 00000000 00000000 00000000 00000000
# ae942f0 00000000 00000000 00000000 00000000
# ae94300 0000ffff 00000000 00000000 00000000
# ae94310 00008421 0033ffff 0002a300 00000043
# ae94320 10ffffff 0000b81f 00000000 000c2c0d
# ae94330 33533000 ffffffff ffffffff ffffffff
# ae94340 00000000 00000000 00000000 00000000
# ae94350 00000000 00000000 00000000 00000000
# ae94360 00000000 01000000 00000000 00000000
# ae94370 00000000 00000000 00000000 00000000
# ae94380 00000000 00000000 00000000 00000000
# ae94390 00000000 00000000 00000000 00000000
# ae943a0 00000000 00000000 00000000 00000000
# ae943b0 00000000 00000000 00000000 00000000
# ae943c0 00000000 00000000 00000000 00000000
# ae943d0 00000000 00000000 00000000 00000000
# ae943e0 00000000 00000000 00000000 00000000
# ae943f0 00000000 00000000 00000000 00000000
# ae94400 00000024 00000000 00000000 00000000
# ae94410 00000031 00000031 00000000 00000001
# ae94420 00000053 0000007f 00000000 00000040
# ae94430 00000004 00000021 00000084 00000001
# ae94440 000000b8 00000000 0000007f 0000007f
# ae94450 00000000 000000ff 000000ff 00000000
# ae94460 0000003f 0000003f 0000003e 00000041
# ae94470 00000041 0000007f 00000000 00000000
# ae94480 00000000 00000000 000000ff 000000ff
# ae94490 000000ff 00000010 00000000 00000000
# ae944a0 0000001f 00000000 00000000 00000000
# ae944b0 00000000 00000000 0000001c 00000007
# ae944c0 00000007 00000017 00000015 00000007
# ae944d0 00000007 00000008 00000002 00000004
# ae944e0 00000000 00000018 0000000c 00000088
# ae944f0 00000000 0000003c 00000038 00000000
# ae94500 00000055 00000000 00000000 00000000
# ae94510 0000005c 00000004 00000000 00000000
# ae94520 00000000 000000ff 00000000 00000000
# ae94530 00000000 00000000 00000086 0000000a
# ae94540 00000007 00000057 0000001f 0000001f
# ae94550 000000ff 000000ff 000000ff 000000ff
# ae94560 000000ff 000000ff 000000ff 000000ff
# ae94570 00000000 00000000 00000000 00000000
# ae94580 00000000 00000001 000000ff 0000000f
# ae94590 000000f0 00000000 00000000 00000005
# ae945a0 000000ff 00000000 00000000 00000000
# ae945b0 00000001 00000000 00000000 00000000
# ae945c0 00000000 00000000 00000000 00000000
# ae945d0 00000000 00000000 00000000 00000000
# ae945e0 00000000 00000000 00000000 00000000
# ae945f0 00000000 00000000 00000000 00000000
# ae94600 00000000 00000000 0000000a 00000000
# ae94610 00000000 00000003 00000040 00000000
# ae94620 000000ff 00000000 00000000 00000000
# ae94630 00000000 00000000 00000055 000000ff
# ae94640 00000000 00000000 00000000 00000000
# ae94650 00000000 00000000 00000000 00000000
# ae94660 000000ff 000000ff 000000ff 00000000
# ae94670 00000000 00000000 00000000 0000002a
# ae94680 00000000 00000000 0000000a 00000000
# ae94690 00000000 00000000 00000040 00000000
# ae946a0 000000ff 00000000 00000000 00000000
# ae946b0 00000000 00000000 00000055 000000ff
# ae946c0 00000000 00000000 00000000 00000000
# ae946d0 00000000 00000000 00000000 00000000
# ae946e0 000000ff 000000ff 000000ff 00000000
# ae946f0 00000000 00000000 00000000 0000002a
# ae94700 00000000 00000000 0000000a 00000000
# ae94710 00000000 00000000 00000040 00000000
# ae94720 000000ff 00000000 00000000 00000000
# ae94730 00000000 00000000 00000055 000000ff
# ae94740 00000000 00000000 00000000 00000000
# ae94750 00000000 00000000 00000000 00000000
# ae94760 000000ff 000000ff 000000ff 00000000
# ae94770 00000000 00000000 00000000 0000002a
# ae94780 00000000 00000000 0000000a 00000000
# ae94790 00000000 00000000 00000046 00000000
# ae947a0 000000ff 00000000 00000000 00000000
# ae947b0 00000000 00000000 00000055 000000ff
# ae947c0 00000000 00000000 00000000 00000000
# ae947d0 00000000 00000000 00000000 00000000
# ae947e0 000000ff 000000ff 000000ff 00000000
# ae947f0 00000000 00000000 00000000 0000002a
# ae94800 00000000 00000000 0000008a 00000000
# ae94810 00000000 00000000 00000041 00000000
# ae94820 000000ff 00000000 00000000 00000000
# ae94830 00000000 00000000 00000055 000000ff
# ae94840 00000000 00000000 00000000 00000000
# ae94850 00000000 00000000 00000000 00000000
# ae94860 000000ff 000000ff 000000ff 00000000
# ae94870 00000000 00000000 00000000 0000002a
# ae94880 00000000 00000000 00000000 00000000
# ae94890 00000000 00000000 00000000 00000000
# ae948a0 00000000 00000000 00000000 00000000
# ae948b0 00000000 00000000 00000000 00000000
# ae948c0 00000000 00000000 00000000 00000000
# ae948d0 00000000 00000000 00000000 00000000
# ae948e0 00000000 00000000 00000000 00000000
# ae948f0 00000000 00000000 00000000 00000000
# ae94900 00000000 00000003 0000003f 00000000
# ae94910 00000000 00000000 00000001 00000080
# ae94920 00000000 0000004e 000000c0 00000000
# ae94930 00000010 00000020 00000010 00000002
# ae94940 0000001c 00000040 00000000 00000002
# ae94950 00000020 00000000 000000ff 00000000
# ae94960 0000000a 00000025 000000ba 0000004f
# ae94970 0000000a 00000000 0000000c 00000020
# ae94980 00000000 000000ff 00000010 00000046
# ae94990 0000002f 0000003f 00000054 00000000
# ae949a0 00000000 00000040 00000000 00000004
# ae949b0 00000000 00000000 00000000 00000012
# ae949c0 00000000 00000008 00000008 00000041
# ae949d0 000000ab 0000006a 00000000 00000000
# ae949e0 00000014 0000000a 0000005a 00000003
# ae949f0 00000027 00000000 00000040 00000000
# ae94a00 00000003 00000000 00000000 00000000
# ae94a10 00000000 00000000 00000000 00000000
# ae94a20 00000000 00000000 00000000 00000000
# ae94a30 00000000 00000000 00000000 00000000
# ae94a40 00000000 00000000 00000000 00000000
# ae94a50 00000000 00000000 00000040 00000040
# ae94a60 0000000a 0000000a 000000c0 00000000
# ae94a70 00000082 00000054 0000004c 0000004c
# ae94a80 00000003 00000000 00000000 00000000
# ae94a90 00000080 00000006 00000019 00000000
# ae94aa0 00000000 00000040 00000020 00000000
# ae94ab0 00000051 00000008 00000055 000000d5
# ae94ac0 000000ac 0000001d 00000004 00000000
# ae94ad0 00000000 00000002 00000011 00000000
# ae94ae0 00000000 00000080 00000000 00000000
# ae94af0 00000000 0000005d 00000003 00000000
# ae94b00 00000000 00000000 00000000 00000000
# ae94b10 00000000 00000000 00000055 00000082
# ae94b20 00000000 00000000 0000001d 0000001c
# ae94b30 000000ff 00000022 00000009 00000000
# ae94b40 00000008 00000000 000000a0 00000000
# ae94b50 00000010 00000010 00000001 00000003
# ae94b60 00000022 00000000 00000000 00000000
# ae94b70 00000000 0000009b 00000000 00000000
# ae94b80 00000000 00000000 00000000 00000000
# ae94b90 00000000 00000000 00000000 00000000
# ae94ba0 00000000 00000000 00000000 00000000
# ae94bb0 00000000 00000000 00000000 00000000
# ae94bc0 00000000 00000000 00000000 00000000
# ae94bd0 00000000 00000000 00000000 00000000
# ae94be0 00000000 00000000 00000000 00000000
# ae94bf0 00000000 00000000 00000000 00000000
# ae94c00 00000000 00000000 00000000 00000000
# ae94c10 00000000 00000000 00000000 00000000
# ae94c20 00000000 00000000 00000000 00000000
# ae94c30 00000000 00000000 00000000 00000000
# ae94c40 00000000 00000000 00000000 00000000
# ae94c50 00000000 00000000 00000000 00000000
# ae94c60 00000000 00000000 00000000 00000000
# ae94c70 00000000 00000000 00000000 00000000
# ae94c80 00000000 00000000 00000000 00000000
# ae94c90 00000000 00000000 00000000 00000000
# ae94ca0 00000000 00000000 00000000 00000000
# ae94cb0 00000000 00000000 00000000 00000000
# ae94cc0 00000000 00000000 00000000 00000000
# ae94cd0 00000000 00000000 00000000 00000000
# ae94ce0 00000000 00000000 00000000 00000000
# ae94cf0 00000000 00000000 00000000 00000000
# ae94d00 00000000 00000000 00000000 00000000
# ae94d10 00000000 00000000 00000000 00000000
# ae94d20 00000000 00000000 00000000 00000000
# ae94d30 00000000 00000000 00000000 00000000
# ae94d40 00000000 00000000 00000000 00000000
# ae94d50 00000000 00000000 00000000 00000000
# ae94d60 00000000 00000000 00000000 00000000
# ae94d70 00000000 00000000 00000000 00000000
# ae94d80 00000000 00000000 00000000 00000000
# ae94d90 00000000 00000000 00000000 00000000
# ae94da0 00000000 00000000 00000000 00000000
# ae94db0 00000000 00000000 00000000 00000000
# ae94dc0 00000000 00000000 00000000 00000000
# ae94dd0 00000000 00000000 00000000 00000000
# ae94de0 00000000 00000000 00000000 00000000
# ae94df0 00000000 00000000 00000000 00000000
# ae94e00 00000000 00000000 00000000 00000000
# ae94e10 00000000 00000000 00000000 00000000
# ae94e20 00000000 00000000 00000000 00000000
# ae94e30 00000000 00000000 00000000 00000000
# ae94e40 00000000 00000000 00000000 00000000
# ae94e50 00000000 00000000 00000000 00000000
# ae94e60 00000000 00000000 00000000 00000000
# ae94e70 00000000 00000000 00000000 00000000
# ae94e80 00000000 00000000 00000000 00000000
# ae94e90 00000000 00000000 00000000 00000000
# ae94ea0 00000000 00000000 00000000 00000000
# ae94eb0 00000000 00000000 00000000 00000000
# ae94ec0 00000000 00000000 00000000 00000000
# ae94ed0 00000000 00000000 00000000 00000000
# ae94ee0 00000000 00000000 00000000 00000000
# ae94ef0 00000000 00000000 00000000 00000000
# ae94f00 00000000 00000000 00000000 00000000
# ae94f10 00000000 00000000 00000000 00000000
# ae94f20 00000000 00000000 00000000 00000000
# ae94f30 00000000 00000000 00000000 00000000
# ae94f40 00000000 00000000 00000000 00000000
# ae94f50 00000000 00000000 00000000 00000000
# ae94f60 00000000 00000000 00000000 00000000
# ae94f70 00000000 00000000 00000000 00000000
# ae94f80 00000000 00000000 00000000 00000000
# ae94f90 00000000 00000000 00000000 00000000
# ae94fa0 00000000 00000000 00000000 00000000
# ae94fb0 00000000 00000000 00000000 00000000
# ae94fc0 00000000 00000000 00000000 00000000
# ae94fd0 00000000 00000000 00000000 00000000
# ae94fe0 00000000 00000000 00000000 00000000
# ae94ff0 00000000 00000000 00000000 00000000
# ae95000 00000000 00000000 00000000 00000000
# ae95010 00000000 00000000 00000000 00000000
# ae95020 00000000 00000000 00000000 00000000
# ae95030 00000000 00000000 00000000 00000000
# ae95040 00000000 00000000 00000000 00000000
# ae95050 00000000 00000000 00000000 00000000
# ae95060 00000000 00000000 00000000 00000000
# ae95070 00000000 00000000 00000000 00000000
# ae95080 00000000 00000000 00000000 00000000
# ae95090 00000000 00000000 00000000 00000000
# ae950a0 00000000 00000000 00000000 00000000
# ae950b0 00000000 00000000 00000000 00000000
# ae950c0 00000000 00000000 00000000 00000000
# ae950d0 00000000 00000000 00000000 00000000
# ae950e0 00000000 00000000 00000000 00000000
# ae950f0 00000000 00000000 00000000 00000000
# ae95100 00000000 00000000 00000000 00000000
# ae95110 00000000 00000000 00000000 00000000
# ae95120 00000000 00000000 00000000 00000000
# ae95130 00000000 00000000 00000000 00000000
# ae95140 00000000 00000000 00000000 00000000
# ae95150 00000000 00000000 00000000 00000000
# ae95160 00000000 00000000 00000000 00000000
# ae95170 00000000 00000000 00000000 00000000
# ae95180 00000000 00000000 00000000 00000000
# ae95190 00000000 00000000 00000000 00000000
# ae951a0 00000000 00000000 00000000 00000000
# ae951b0 00000000 00000000 00000000 00000000
# ae951c0 00000000 00000000 00000000 00000000
# ae951d0 00000000 00000000 00000000 00000000
# ae951e0 00000000 00000000 00000000 00000000
# ae951f0 00000000 00000000 00000000 00000000
# ae95200 00000000 00000000 00000000 00000000
# ae95210 00000000 00000000 00000000 00000000
# ae95220 00000000 00000000 00000000 00000000
# ae95230 00000000 00000000 00000000 00000000
# ae95240 00000000 00000000 00000000 00000000
# ae95250 00000000 00000000 00000000 00000000
# ae95260 00000000 00000000 00000000 00000000
# ae95270 00000000 00000000 00000000 00000000
# ae95280 00000000 00000000 00000000 00000000
# ae95290 00000000 00000000 00000000 00000000
# ae952a0 00000000 00000000 00000000 00000000
# ae952b0 00000000 00000000 00000000 00000000
# ae952c0 00000000 00000000 00000000 00000000
# ae952d0 00000000 00000000 00000000 00000000
# ae952e0 00000000 00000000 00000000 00000000
# ae952f0 00000000 00000000 00000000 00000000
# ae95300 00000000 00000000 00000000 00000000
# ae95310 00000000 00000000 00000000 00000000
# ae95320 00000000 00000000 00000000 00000000
# ae95330 00000000 00000000 00000000 00000000
# ae95340 00000000 00000000 00000000 00000000
# ae95350 00000000 00000000 00000000 00000000
# ae95360 00000000 00000000 00000000 00000000
# ae95370 00000000 00000000 00000000 00000000
# ae95380 00000000 00000000 00000000 00000000
# ae95390 00000000 00000000 00000000 00000000
# ae953a0 00000000 00000000 00000000 00000000
# ae953b0 00000000 00000000 00000000 00000000
# ae953c0 00000000 00000000 00000000 00000000
# ae953d0 00000000 00000000 00000000 00000000
# ae953e0 00000000 00000000 00000000 00000000
# ae953f0 00000000 00000000 00000000 00000000
# ae95400 00000000 00000000 00000000 00000000
# ae95410 00000000 00000000 00000000 00000000
# ae95420 00000000 00000000 00000000 00000000
# ae95430 00000000 00000000 00000000 00000000
# ae95440 00000000 00000000 00000000 00000000
# ae95450 00000000 00000000 00000000 00000000
# ae95460 00000000 00000000 00000000 00000000
# ae95470 00000000 00000000 00000000 00000000
# ae95480 00000000 00000000 00000000 00000000
# ae95490 00000000 00000000 00000000 00000000
# ae954a0 00000000 00000000 00000000 00000000
# ae954b0 00000000 00000000 00000000 00000000
# ae954c0 00000000 00000000 00000000 00000000
# ae954d0 00000000 00000000 00000000 00000000
# ae954e0 00000000 00000000 00000000 00000000
# ae954f0 00000000 00000000 00000000 00000000
# ae95500 00000000 00000000 00000000 00000000
# ae95510 00000000 00000000 00000000 00000000
# ae95520 00000000 00000000 00000000 00000000
# ae95530 00000000 00000000 00000000 00000000
# ae95540 00000000 00000000 00000000 00000000
# ae95550 00000000 00000000 00000000 00000000
# ae95560 00000000 00000000 00000000 00000000
# ae95570 00000000 00000000 00000000 00000000
# ae95580 00000000 00000000 00000000 00000000
# ae95590 00000000 00000000 00000000 00000000
# ae955a0 00000000 00000000 00000000 00000000
# ae955b0 00000000 00000000 00000000 00000000
# ae955c0 00000000 00000000 00000000 00000000
# ae955d0 00000000 00000000 00000000 00000000
# ae955e0 00000000 00000000 00000000 00000000
# ae955f0 00000000 00000000 00000000 00000000
# ae95600 00000000 00000000 00000000 00000000
# ae95610 00000000 00000000 00000000 00000000
# ae95620 00000000 00000000 00000000 00000000
# ae95630 00000000 00000000 00000000 00000000
# ae95640 00000000 00000000 00000000 00000000
# ae95650 00000000 00000000 00000000 00000000
# ae95660 00000000 00000000 00000000 00000000
# ae95670 00000000 00000000 00000000 00000000
# ae95680 00000000 00000000 00000000 00000000
# ae95690 00000000 00000000 00000000 00000000
# ae956a0 00000000 00000000 00000000 00000000
# ae956b0 00000000 00000000 00000000 00000000
# ae956c0 00000000 00000000 00000000 00000000
# ae956d0 00000000 00000000 00000000 00000000
# ae956e0 00000000 00000000 00000000 00000000
# ae956f0 00000000 00000000 00000000 00000000
# ae95700 00000000 00000000 00000000 00000000
# ae95710 00000000 00000000 00000000 00000000
# ae95720 00000000 00000000 00000000 00000000
# ae95730 00000000 00000000 00000000 00000000
# ae95740 00000000 00000000 00000000 00000000
# ae95750 00000000 00000000 00000000 00000000
# ae95760 00000000 00000000 00000000 00000000
# ae95770 00000000 00000000 00000000 00000000
# ae95780 00000000 00000000 00000000 00000000
# ae95790 00000000 00000000 00000000 00000000
# ae957a0 00000000 00000000 00000000 00000000
# ae957b0 00000000 00000000 00000000 00000000
# ae957c0 00000000 00000000 00000000 00000000
# ae957d0 00000000 00000000 00000000 00000000
# ae957e0 00000000 00000000 00000000 00000000
# ae957f0 00000000 00000000 00000000 00000000
# ae95800 00000000 00000000 00000000 00000000
# ae95810 00000000 00000000 00000000 00000000
# ae95820 00000000 00000000 00000000 00000000
# ae95830 00000000 00000000 00000000 00000000
# ae95840 00000000 00000000 00000000 00000000
# ae95850 00000000 00000000 00000000 00000000
# ae95860 00000000 00000000 00000000 00000000
# ae95870 00000000 00000000 00000000 00000000
# ae95880 00000000 00000000 00000000 00000000
# ae95890 00000000 00000000 00000000 00000000
# ae958a0 00000000 00000000 00000000 00000000
# ae958b0 00000000 00000000 00000000 00000000
# ae958c0 00000000 00000000 00000000 00000000
# ae958d0 00000000 00000000 00000000 00000000
# ae958e0 00000000 00000000 00000000 00000000
# ae958f0 00000000 00000000 00000000 00000000
# ae95900 00000000 00000000 00000000 00000000
# ae95910 00000000 00000000 00000000 00000000
# ae95920 00000000 00000000 00000000 00000000
# ae95930 00000000 00000000 00000000 00000000
# ae95940 00000000 00000000 00000000 00000000
# ae95950 00000000 00000000 00000000 00000000
# ae95960 00000000 00000000 00000000 00000000
# ae95970 00000000 00000000 00000000 00000000
# ae95980 00000000 00000000 00000000 00000000
# ae95990 00000000 00000000 00000000 00000000
# ae959a0 00000000 00000000 00000000 00000000
# ae959b0 00000000 00000000 00000000 00000000
# ae959c0 00000000 00000000 00000000 00000000
# ae959d0 00000000 00000000 00000000 00000000
# ae959e0 00000000 00000000 00000000 00000000
# ae959f0 00000000 00000000 00000000 00000000
# ae95a00 00000000 00000000 00000000 00000000
# ae95a10 00000000 00000000 00000000 00000000
# ae95a20 00000000 00000000 00000000 00000000
# ae95a30 00000000 00000000 00000000 00000000
# ae95a40 00000000 00000000 00000000 00000000
# ae95a50 00000000 00000000 00000000 00000000
# ae95a60 00000000 00000000 00000000 00000000
# ae95a70 00000000 00000000 00000000 00000000
# ae95a80 00000000 00000000 00000000 00000000
# ae95a90 00000000 00000000 00000000 00000000
# ae95aa0 00000000 00000000 00000000 00000000
# ae95ab0 00000000 00000000 00000000 00000000
# ae95ac0 00000000 00000000 00000000 00000000
# ae95ad0 00000000 00000000 00000000 00000000
# ae95ae0 00000000 00000000 00000000 00000000
# ae95af0 00000000 00000000 00000000 00000000
# ae95b00 00000000 00000000 00000000 00000000
# ae95b10 00000000 00000000 00000000 00000000
# ae95b20 00000000 00000000 00000000 00000000
# ae95b30 00000000 00000000 00000000 00000000
# ae95b40 00000000 00000000 00000000 00000000
# ae95b50 00000000 00000000 00000000 00000000
# ae95b60 00000000 00000000 00000000 00000000
# ae95b70 00000000 00000000 00000000 00000000
# ae95b80 00000000 00000000 00000000 00000000
# ae95b90 00000000 00000000 00000000 00000000
# ae95ba0 00000000 00000000 00000000 00000000
# ae95bb0 00000000 00000000 00000000 00000000
# ae95bc0 00000000 00000000 00000000 00000000
# ae95bd0 00000000 00000000 00000000 00000000
# ae95be0 00000000 00000000 00000000 00000000
# ae95bf0 00000000 00000000 00000000 00000000
# ae95c00 00000000 00000000 00000000 00000000
# ae95c10 00000000 00000000 00000000 00000000
# ae95c20 00000000 00000000 00000000 00000000
# ae95c30 00000000 00000000 00000000 00000000
# ae95c40 00000000 00000000 00000000 00000000
# ae95c50 00000000 00000000 00000000 00000000
# ae95c60 00000000 00000000 00000000 00000000
# ae95c70 00000000 00000000 00000000 00000000
# ae95c80 00000000 00000000 00000000 00000000
# ae95c90 00000000 00000000 00000000 00000000
# ae95ca0 00000000 00000000 00000000 00000000
# ae95cb0 00000000 00000000 00000000 00000000
# ae95cc0 00000000 00000000 00000000 00000000
# ae95cd0 00000000 00000000 00000000 00000000
# ae95ce0 00000000 00000000 00000000 00000000
# ae95cf0 00000000 00000000 00000000 00000000
# ae95d00 00000000 00000000 00000000 00000000
# ae95d10 00000000 00000000 00000000 00000000
# ae95d20 00000000 00000000 00000000 00000000
# ae95d30 00000000 00000000 00000000 00000000
# ae95d40 00000000 00000000 00000000 00000000
# ae95d50 00000000 00000000 00000000 00000000
# ae95d60 00000000 00000000 00000000 00000000
# ae95d70 00000000 00000000 00000000 00000000
# ae95d80 00000000 00000000 00000000 00000000
# ae95d90 00000000 00000000 00000000 00000000
# ae95da0 00000000 00000000 00000000 00000000
# ae95db0 00000000 00000000 00000000 00000000
# ae95dc0 00000000 00000000 00000000 00000000
# ae95dd0 00000000 00000000 00000000 00000000
# ae95de0 00000000 00000000 00000000 00000000
# ae95df0 00000000 00000000 00000000 00000000
# ae95e00 00000000 00000000 00000000 00000000
# ae95e10 00000000 00000000 00000000 00000000
# ae95e20 00000000 00000000 00000000 00000000
# ae95e30 00000000 00000000 00000000 00000000
# ae95e40 00000000 00000000 00000000 00000000
# ae95e50 00000000 00000000 00000000 00000000
# ae95e60 00000000 00000000 00000000 00000000
# ae95e70 00000000 00000000 00000000 00000000
# ae95e80 00000000 00000000 00000000 00000000
# ae95e90 00000000 00000000 00000000 00000000
# ae95ea0 00000000 00000000 00000000 00000000
# ae95eb0 00000000 00000000 00000000 00000000
# ae95ec0 00000000 00000000 00000000 00000000
# ae95ed0 00000000 00000000 00000000 00000000
# ae95ee0 00000000 00000000 00000000 00000000
# ae95ef0 00000000 00000000 00000000 00000000
# ae95f00 00000000 00000000 00000000 00000000
# ae95f10 00000000 00000000 00000000 00000000
# ae95f20 00000000 00000000 00000000 00000000
# ae95f30 00000000 00000000 00000000 00000000
# ae95f40 00000000 00000000 00000000 00000000
# ae95f50 00000000 00000000 00000000 00000000
# ae95f60 00000000 00000000 00000000 00000000
# ae95f70 00000000 00000000 00000000 00000000
# ae95f80 00000000 00000000 00000000 00000000
# ae95f90 00000000 00000000 00000000 00000000
# ae95fa0 00000000 00000000 00000000 00000000
# ae95fb0 00000000 00000000 00000000 00000000
# ae95fc0 00000000 00000000 00000000 00000000
# ae95fd0 00000000 00000000 00000000 00000000
# ae95fe0 00000000 00000000 00000000 00000000
# ae95ff0 00000000 00000000 00000000 00000000
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-07-31 3:05 ` Pengyu Luo
@ 2025-08-01 12:29 ` Konrad Dybcio
2025-08-01 14:27 ` Pengyu Luo
0 siblings, 1 reply; 19+ messages in thread
From: Konrad Dybcio @ 2025-08-01 12:29 UTC (permalink / raw)
To: Pengyu Luo
Cc: aliceryhl, andersson, conor+dt, devicetree, ebiggers,
ilpo.jarvinen, joel.granados, konradybcio, krzk+dt, len.brown,
linux-arm-msm, linux-kernel, lossin, mingo, ojeda, robh, sfr,
vanyang, viro
On 7/31/25 5:05 AM, Pengyu Luo wrote:
> Linux:
>> ae94000 20050001 000001f3 0000000b dddd1011
>> ae94010 00009130 31211101 3e2e1e0e 00001900
>> ae94020 00000000 05190019 064c000c 065f0528
>> ae94030 00060000 00000000 00040000 14000000
>> ae94040 06100006 00003c2c 00001000 00000008
> Windows:
>> ae94000 20050001 000001f7 00000008 00001010
>> ae94010 00009130 31211101 3e2e1e0e 00001900
>> ae94020 00000000 05320032 064c000c 065f0551
>> ae94030 000c0000 00000000 00040000 14000000
>> ae94040 00100008 00013c2c 9bb9b000 00000004
0xae94008 differs, bits 0 and 1 say that the cmd mode engine
is busy doing something (did you set MIPI_DSI_MODE_VIDEO?)
0xae94024 says:
Linux:
ACTIVE_H_END=1305
ACTIVE_H_START=25
Windows:
ACTIVE_H_END=1330
ACTIVE_H_START=50
0xae9402c:
Linux:
VTOTAL=1631
HTOTAL=1320
Windows:
VTOTAL=1631
HTOTAL=1361
0xae94030:
Linux:
HS_END=6
Windows:
HS_END=12
0xae94040:
Linux:
RGB565 (16 bpp)
bits 25/26 are "set RGB888 for DSI1 stream"
Windows:
RGB888 (24 bpp)
(suggesting your panel driver is wrong)
0xae94044:
you may want to move the
/* Always insert DCS command */
data |= DSI_CMD_CFG1_INSERT_DCS_COMMAND;
dsi_write(msm_host, REG_DSI_CMD_CFG1, data);
in dsi_host.c out of the if (!video), not sure if it's correct
but that's what Windows seems to be setting
The other differences are due to the current DCS command(s) being
processed
Hope this helps
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-08-01 12:29 ` Konrad Dybcio
@ 2025-08-01 14:27 ` Pengyu Luo
2025-08-01 17:27 ` Dmitry Baryshkov
0 siblings, 1 reply; 19+ messages in thread
From: Pengyu Luo @ 2025-08-01 14:27 UTC (permalink / raw)
To: Konrad Dybcio
Cc: aliceryhl, andersson, conor+dt, devicetree, ebiggers,
ilpo.jarvinen, joel.granados, konradybcio, krzk+dt, len.brown,
linux-arm-msm, linux-kernel, lossin, mingo, ojeda, robh, sfr,
vanyang, viro
On Fri, Aug 1, 2025 at 8:29 PM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 7/31/25 5:05 AM, Pengyu Luo wrote:
> > Linux:
> >> ae94000 20050001 000001f3 0000000b dddd1011
> >> ae94010 00009130 31211101 3e2e1e0e 00001900
> >> ae94020 00000000 05190019 064c000c 065f0528
> >> ae94030 00060000 00000000 00040000 14000000
> >> ae94040 06100006 00003c2c 00001000 00000008
> > Windows:
> >> ae94000 20050001 000001f7 00000008 00001010
> >> ae94010 00009130 31211101 3e2e1e0e 00001900
> >> ae94020 00000000 05320032 064c000c 065f0551
> >> ae94030 000c0000 00000000 00040000 14000000
> >> ae94040 00100008 00013c2c 9bb9b000 00000004
>
> 0xae94008 differs, bits 0 and 1 say that the cmd mode engine
> is busy doing something (did you set MIPI_DSI_MODE_VIDEO?)
>
Yes. I can confirm MIPI_DSI_MODE_VIDEO is set.
Speaking of cmd mode, I still have no idea why DSI_CTRL_CMD_MODE_EN
(BIT(2) of 0xae94004) is enabled on Windows.
> 0xae94024 says:
> Linux:
> ACTIVE_H_END=1305
> ACTIVE_H_START=25
> Windows:
> ACTIVE_H_END=1330
> ACTIVE_H_START=50
>
> 0xae9402c:
> Linux:
> VTOTAL=1631
> HTOTAL=1320
> Windows:
> VTOTAL=1631
> HTOTAL=1361
>
> 0xae94030:
> Linux:
> HS_END=6
> Windows:
> HS_END=12
>
I believe we can ignore them now, I found the final dump and verified
it’s correct. Previously, I mistakenly halved the porch timings:
Incorrect:
.hsync_total = (1280 + (32 + 12 + 38) / 2) * 2.
Correct:
.hsync_total = (1280 + 32 + 12 + 38) * 2.
Here is the final dump on Linux
# ae94000 20050001 000001f3 0000000b dddd1010
# ae94010 00009130 31211101 3e2e1e0e 00001900
# ae94020 00000000 05320032 064c000c 065f0551
# ae94030 000c0000 00000000 00040000 14000000
# ae94040 06100006 00003c2c 00001000 00000008
> 0xae94040:
> Linux:
> RGB565 (16 bpp)
> bits 25/26 are "set RGB888 for DSI1 stream"
> Windows:
> RGB888 (24 bpp)
>
> (suggesting your panel driver is wrong)
>
> 0xae94044:
> you may want to move the
>
> /* Always insert DCS command */
> data |= DSI_CMD_CFG1_INSERT_DCS_COMMAND;
> dsi_write(msm_host, REG_DSI_CMD_CFG1, data);
>
> in dsi_host.c out of the if (!video), not sure if it's correct
> but that's what Windows seems to be setting
>
> The other differences are due to the current DCS command(s) being
> processed
>
It seems a normal behavior for video mode, for sm8650 in video mode,
I’ve also seen:
# ae94040 06100006 00003c2c 00001000 00000004
These two registers are REG_DSI_CMD_CFG{0,1}, video mode uses
REG_DSI_VID_CFG{0,1} whose values seem consistent between Linux and
Windows.
>
> Hope this helps
>
Thanks a lot for your detailed analysis!
Best wishes,
Pengyu
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-08-01 14:27 ` Pengyu Luo
@ 2025-08-01 17:27 ` Dmitry Baryshkov
2025-08-03 3:36 ` Pengyu Luo
0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2025-08-01 17:27 UTC (permalink / raw)
To: Pengyu Luo
Cc: Konrad Dybcio, aliceryhl, andersson, conor+dt, devicetree,
ebiggers, ilpo.jarvinen, joel.granados, konradybcio, krzk+dt,
len.brown, linux-arm-msm, linux-kernel, lossin, mingo, ojeda,
robh, sfr, vanyang, viro
On Fri, Aug 01, 2025 at 10:27:33PM +0800, Pengyu Luo wrote:
> On Fri, Aug 1, 2025 at 8:29 PM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
> >
> > On 7/31/25 5:05 AM, Pengyu Luo wrote:
> > > Linux:
> > >> ae94000 20050001 000001f3 0000000b dddd1011
> > >> ae94010 00009130 31211101 3e2e1e0e 00001900
> > >> ae94020 00000000 05190019 064c000c 065f0528
> > >> ae94030 00060000 00000000 00040000 14000000
> > >> ae94040 06100006 00003c2c 00001000 00000008
> > > Windows:
> > >> ae94000 20050001 000001f7 00000008 00001010
> > >> ae94010 00009130 31211101 3e2e1e0e 00001900
> > >> ae94020 00000000 05320032 064c000c 065f0551
> > >> ae94030 000c0000 00000000 00040000 14000000
> > >> ae94040 00100008 00013c2c 9bb9b000 00000004
> >
> > 0xae94008 differs, bits 0 and 1 say that the cmd mode engine
> > is busy doing something (did you set MIPI_DSI_MODE_VIDEO?)
> >
>
> Yes. I can confirm MIPI_DSI_MODE_VIDEO is set.
>
> Speaking of cmd mode, I still have no idea why DSI_CTRL_CMD_MODE_EN
> (BIT(2) of 0xae94004) is enabled on Windows.
>
> > 0xae94024 says:
> > Linux:
> > ACTIVE_H_END=1305
> > ACTIVE_H_START=25
> > Windows:
> > ACTIVE_H_END=1330
> > ACTIVE_H_START=50
> >
> > 0xae9402c:
> > Linux:
> > VTOTAL=1631
> > HTOTAL=1320
> > Windows:
> > VTOTAL=1631
> > HTOTAL=1361
> >
> > 0xae94030:
> > Linux:
> > HS_END=6
> > Windows:
> > HS_END=12
> >
>
> I believe we can ignore them now, I found the final dump and verified
> it’s correct. Previously, I mistakenly halved the porch timings:
>
> Incorrect:
> .hsync_total = (1280 + (32 + 12 + 38) / 2) * 2.
If you halved the porches... Is this panel using a single DSI host or
two DSI hosts? In the latter case you need to assign parents for DSI
clocks (see how it's done on the sdm845-db845c)
>
> Correct:
> .hsync_total = (1280 + 32 + 12 + 38) * 2.
>
> Here is the final dump on Linux
> # ae94000 20050001 000001f3 0000000b dddd1010
> # ae94010 00009130 31211101 3e2e1e0e 00001900
> # ae94020 00000000 05320032 064c000c 065f0551
> # ae94030 000c0000 00000000 00040000 14000000
> # ae94040 06100006 00003c2c 00001000 00000008
>
> > 0xae94040:
> > Linux:
> > RGB565 (16 bpp)
> > bits 25/26 are "set RGB888 for DSI1 stream"
> > Windows:
> > RGB888 (24 bpp)
> >
> > (suggesting your panel driver is wrong)
> >
> > 0xae94044:
> > you may want to move the
> >
> > /* Always insert DCS command */
> > data |= DSI_CMD_CFG1_INSERT_DCS_COMMAND;
> > dsi_write(msm_host, REG_DSI_CMD_CFG1, data);
> >
> > in dsi_host.c out of the if (!video), not sure if it's correct
> > but that's what Windows seems to be setting
> >
> > The other differences are due to the current DCS command(s) being
> > processed
> >
>
> It seems a normal behavior for video mode, for sm8650 in video mode,
> I’ve also seen:
>
> # ae94040 06100006 00003c2c 00001000 00000004
>
> These two registers are REG_DSI_CMD_CFG{0,1}, video mode uses
> REG_DSI_VID_CFG{0,1} whose values seem consistent between Linux and
> Windows.
>
> >
> > Hope this helps
> >
>
> Thanks a lot for your detailed analysis!
>
> Best wishes,
> Pengyu
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for Ntmer TW220
2025-08-01 17:27 ` Dmitry Baryshkov
@ 2025-08-03 3:36 ` Pengyu Luo
0 siblings, 0 replies; 19+ messages in thread
From: Pengyu Luo @ 2025-08-03 3:36 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Konrad Dybcio, aliceryhl, andersson, conor+dt, devicetree,
ebiggers, ilpo.jarvinen, joel.granados, konradybcio, krzk+dt,
len.brown, linux-arm-msm, linux-kernel, lossin, mingo, ojeda,
robh, sfr, vanyang, viro
On Sat, Aug 2, 2025 at 1:27 AM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Fri, Aug 01, 2025 at 10:27:33PM +0800, Pengyu Luo wrote:
> > On Fri, Aug 1, 2025 at 8:29 PM Konrad Dybcio
> > <konrad.dybcio@oss.qualcomm.com> wrote:
> > >
> > > On 7/31/25 5:05 AM, Pengyu Luo wrote:
> > > > Linux:
> > > >> ae94000 20050001 000001f3 0000000b dddd1011
> > > >> ae94010 00009130 31211101 3e2e1e0e 00001900
> > > >> ae94020 00000000 05190019 064c000c 065f0528
> > > >> ae94030 00060000 00000000 00040000 14000000
> > > >> ae94040 06100006 00003c2c 00001000 00000008
> > > > Windows:
> > > >> ae94000 20050001 000001f7 00000008 00001010
> > > >> ae94010 00009130 31211101 3e2e1e0e 00001900
> > > >> ae94020 00000000 05320032 064c000c 065f0551
> > > >> ae94030 000c0000 00000000 00040000 14000000
> > > >> ae94040 00100008 00013c2c 9bb9b000 00000004
> > >
> > > 0xae94008 differs, bits 0 and 1 say that the cmd mode engine
> > > is busy doing something (did you set MIPI_DSI_MODE_VIDEO?)
> > >
> >
> > Yes. I can confirm MIPI_DSI_MODE_VIDEO is set.
> >
> > Speaking of cmd mode, I still have no idea why DSI_CTRL_CMD_MODE_EN
> > (BIT(2) of 0xae94004) is enabled on Windows.
> >
> > > 0xae94024 says:
> > > Linux:
> > > ACTIVE_H_END=1305
> > > ACTIVE_H_START=25
> > > Windows:
> > > ACTIVE_H_END=1330
> > > ACTIVE_H_START=50
> > >
> > > 0xae9402c:
> > > Linux:
> > > VTOTAL=1631
> > > HTOTAL=1320
> > > Windows:
> > > VTOTAL=1631
> > > HTOTAL=1361
> > >
> > > 0xae94030:
> > > Linux:
> > > HS_END=6
> > > Windows:
> > > HS_END=12
> > >
> >
> > I believe we can ignore them now, I found the final dump and verified
> > it’s correct. Previously, I mistakenly halved the porch timings:
> >
> > Incorrect:
> > .hsync_total = (1280 + (32 + 12 + 38) / 2) * 2.
>
> If you halved the porches... Is this panel using a single DSI host or
> two DSI hosts? In the latter case you need to assign parents for DSI
> clocks (see how it's done on the sdm845-db845c)
>
Two dsi hosts. I was using your OOT patches for dual dsi cases until
you upstreamed them. So I have set
assigned-clock-parents = <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
<&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
as you did in your msm-next repo.
Best wishes,
Pengyu
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2025-08-03 3:36 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-17 9:29 [PATCH 0/4] arm64: dts: qcom: Introduce Ntmer TW220 Pengyu Luo
2025-06-17 9:29 ` [PATCH 1/4] dt-bindings: vendor-prefixes: Add Ntmer Pengyu Luo
2025-06-27 19:20 ` Rob Herring (Arm)
2025-06-17 9:29 ` [PATCH 2/4] dt-bindings: arm: qcom: Add Ntmer TW220 Pengyu Luo
2025-06-27 19:20 ` Rob Herring (Arm)
2025-06-17 9:29 ` [PATCH 3/4] arm64: dts: qcom: sc8280xp: Add initial support for " Pengyu Luo
2025-06-25 6:17 ` kernel test robot
2025-06-27 19:48 ` Konrad Dybcio
2025-07-06 3:43 ` Pengyu Luo
2025-07-30 12:53 ` Konrad Dybcio
2025-07-30 15:29 ` Pengyu Luo
2025-07-30 20:32 ` Konrad Dybcio
2025-07-31 3:05 ` Pengyu Luo
2025-08-01 12:29 ` Konrad Dybcio
2025-08-01 14:27 ` Pengyu Luo
2025-08-01 17:27 ` Dmitry Baryshkov
2025-08-03 3:36 ` Pengyu Luo
2025-06-17 9:29 ` [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on " Pengyu Luo
2025-06-17 14:21 ` [PATCH 0/4] arm64: dts: qcom: Introduce " Rob Herring (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).