* [PATCH v3 0/6] Microsoft Surface Pro 11 support
@ 2025-12-17 23:56 Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11 Jérôme de Bretagne via B4 Relay
` (6 more replies)
0 siblings, 7 replies; 14+ messages in thread
From: Jérôme de Bretagne via B4 Relay @ 2025-12-17 23:56 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham,
Jérôme de Bretagne, Dmitry Baryshkov
This series brings support for the Qualcomm-based Microsoft Surface
Pro 11 covering both the OLED and LCD variants.
Signed-off-by: Dale Whinham <daleyo@gmail.com>
Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
---
Changes in v3:
- Update the compatible strings to document both the OLED and LCD variants
- Move the disable-rfkill property into ieee80211.yaml [Rob,Krzysztof]
- Reference commit c6a7c0b09d5f and detail the disable-rfkill patch description [Rob,Krzysztof]
- Switch to the renamed hamoa.dtsi and hamoa-pmics.dtsi [Dale]
- Improve the comments describing the 2 USB Type-C port location
- Update the speaker definition to describe only 2-speakers [Konrad]
- Drop output-low from the speaker definition [Konrad]
- Enable i2c0 to make it accessible through i2c-tools [Konrad]
- Delete a non-applicable comment about removable WLAN card [Konrad]
- Re-order a few nodes and fix indentation issues [Konrad]
- Squash one of the patches as suggested [Krzysztof]
- Drop the NAKed patch patch about a dpcd link rate quirk [Dmitry]
- Include the Reviewed-by: tags
- Link to v2: https://lore.kernel.org/all/20251201011457.17422-1-daleyo@gmail.com/
Changes in v2:
- Dropped ATNA30DW01 patch as it was merged.
- Split device tree into x1e (OLED)/x1p (LCD) specific *.dts files and move common code into x1-microsoft-denali.dtsi (patch 4).
- Device tree now enables higher external monitor refresh rates/resolutions (patch 4).
- Device tree now enables partially working audio output; requires alsa-ucm-conf and audioreach-topology definitions in userspace (patch 4).
- Replaced 'Work around bogus maximum link rate' with a quirk-based approach (patch 5).
- Improve the commit message about the disable-rfkill property in response to feedback (patch 6).
---
Dale Whinham (4):
firmware: qcom: scm: allow QSEECOM on Surface Pro 11
platform/surface: aggregator_registry: Add Surface Pro 11
arm64: dts: qcom: Add support for Surface Pro 11
wifi: ath12k: Add support for disabling rfkill via devicetree
Jérôme de Bretagne (2):
dt-bindings: arm: qcom: Document Microsoft Surface Pro 11
dt-bindings: wireless: ieee80211: Add disable-rfkill property
Documentation/devicetree/bindings/arm/qcom.yaml | 8 +
.../bindings/net/wireless/ieee80211.yaml | 6 +
arch/arm64/boot/dts/qcom/Makefile | 4 +
arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi | 1326 ++++++++++++++++++++
.../dts/qcom/x1e80100-microsoft-denali-oled.dts | 20 +
.../boot/dts/qcom/x1p64100-microsoft-denali.dts | 16 +
drivers/firmware/qcom/qcom_scm.c | 1 +
drivers/net/wireless/ath/ath12k/core.c | 3 +
.../platform/surface/surface_aggregator_registry.c | 18 +
9 files changed, 1402 insertions(+)
---
base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
change-id: 20251218-surface-sp11-for-next-626e327f7b33
Best regards,
--
Jérôme de Bretagne <jerome.debretagne@gmail.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11
2025-12-17 23:56 [PATCH v3 0/6] Microsoft Surface Pro 11 support Jérôme de Bretagne via B4 Relay
@ 2025-12-17 23:56 ` Jérôme de Bretagne via B4 Relay
2025-12-18 14:15 ` Konrad Dybcio
2025-12-17 23:56 ` [PATCH v3 2/6] dt-bindings: wireless: ieee80211: Add disable-rfkill property Jérôme de Bretagne via B4 Relay
` (5 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jérôme de Bretagne via B4 Relay @ 2025-12-17 23:56 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham,
Jérôme de Bretagne
From: Jérôme de Bretagne <jerome.debretagne@gmail.com>
Add the compatibles for the Qualcomm-based Microsoft Surface Pro 11,
using its Denali codename.
The LCD models are using the Qualcomm Snapdragon X1 Plus (X1P64100),
the OLED ones are using the Qualcomm Snapdragon X1 Elite (X1E80100).
Due to the difference in how the built-in panel is being handled
between the OLED variant and LCD one, it is required to have two
separate DTBs, so document the compatible string for both variants.
Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index d84bd3bca2010508a8225b9549d8c634efa06531..7c99bc0d3aae3dc6e9c08fef0a535e114a3297a8 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1067,6 +1067,14 @@ properties:
- const: qcom,x1e78100
- const: qcom,x1e80100
+ - items:
+ - enum:
+ - microsoft,denali-lcd
+ - microsoft,denali-oled
+ - const: microsoft,denali
+ - const: qcom,x1p64100
+ - const: qcom,x1e80100
+
- items:
- enum:
- asus,vivobook-s15
--
2.47.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 2/6] dt-bindings: wireless: ieee80211: Add disable-rfkill property
2025-12-17 23:56 [PATCH v3 0/6] Microsoft Surface Pro 11 support Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11 Jérôme de Bretagne via B4 Relay
@ 2025-12-17 23:56 ` Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 3/6] firmware: qcom: scm: allow QSEECOM on Surface Pro 11 Jérôme de Bretagne via B4 Relay
` (4 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Jérôme de Bretagne via B4 Relay @ 2025-12-17 23:56 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham,
Jérôme de Bretagne
From: Jérôme de Bretagne <jerome.debretagne@gmail.com>
For some devices, Wi-Fi is entirely hard blocked by default making
the Wi-Fi radio unusable, except if rfkill is disabled as expected
on those models.
Commit c6a7c0b09d5f ("wifi: ath12k: Add Support for enabling or
disabling specific features based on ACPI bitflag") added a way to
support features set via ACPI, including the DISABLE_RFKILL bit.
Add a disable-rfkill property to expose the DISABLE_RFKILL bit
equivalent for devices described by a Devicetree instead of ACPI.
Tested-by: Dale Whinham <daleyo@gmail.com>
Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
---
Documentation/devicetree/bindings/net/wireless/ieee80211.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/wireless/ieee80211.yaml b/Documentation/devicetree/bindings/net/wireless/ieee80211.yaml
index d89f7a3f88a71d45d6f4ab2ae909eae09cbcaf9a..c10a4675640be947cd0b5eaec2c7ff367fd93945 100644
--- a/Documentation/devicetree/bindings/net/wireless/ieee80211.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/ieee80211.yaml
@@ -29,6 +29,12 @@ properties:
different 5 GHz subbands. Using them incorrectly could not work or
decrease performance noticeably
+ disable-rfkill:
+ type: boolean
+ description:
+ Disable rfkill for some devices on which Wi-Fi would be entirely hard
+ blocked by default otherwise
+
additionalProperties: true
examples:
--
2.47.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 3/6] firmware: qcom: scm: allow QSEECOM on Surface Pro 11
2025-12-17 23:56 [PATCH v3 0/6] Microsoft Surface Pro 11 support Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11 Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 2/6] dt-bindings: wireless: ieee80211: Add disable-rfkill property Jérôme de Bretagne via B4 Relay
@ 2025-12-17 23:56 ` Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 4/6] platform/surface: aggregator_registry: Add " Jérôme de Bretagne via B4 Relay
` (3 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Jérôme de Bretagne via B4 Relay @ 2025-12-17 23:56 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham,
Jérôme de Bretagne, Dmitry Baryshkov
From: Dale Whinham <daleyo@gmail.com>
Enables access to EFI variables on this machine.
Signed-off-by: Dale Whinham <daleyo@gmail.com>
Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.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 1a6f85e463e06a12814614cea20719c90a371b69..3dabb04094f91811a430e84998d3c6c759b5c747 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -2007,6 +2007,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
{ .compatible = "lenovo,yoga-slim7x" },
{ .compatible = "microsoft,arcata", },
{ .compatible = "microsoft,blackrock" },
+ { .compatible = "microsoft,denali", },
{ .compatible = "microsoft,romulus13", },
{ .compatible = "microsoft,romulus15", },
{ .compatible = "qcom,hamoa-iot-evk" },
--
2.47.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 4/6] platform/surface: aggregator_registry: Add Surface Pro 11
2025-12-17 23:56 [PATCH v3 0/6] Microsoft Surface Pro 11 support Jérôme de Bretagne via B4 Relay
` (2 preceding siblings ...)
2025-12-17 23:56 ` [PATCH v3 3/6] firmware: qcom: scm: allow QSEECOM on Surface Pro 11 Jérôme de Bretagne via B4 Relay
@ 2025-12-17 23:56 ` Jérôme de Bretagne via B4 Relay
2025-12-18 0:07 ` Dmitry Baryshkov
2025-12-17 23:56 ` [PATCH v3 5/6] arm64: dts: qcom: Add support for " Jérôme de Bretagne via B4 Relay
` (2 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jérôme de Bretagne via B4 Relay @ 2025-12-17 23:56 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham,
Jérôme de Bretagne
From: Dale Whinham <daleyo@gmail.com>
This enables support for the X1-based Surface Pro 11.
Signed-off-by: Dale Whinham <daleyo@gmail.com>
Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com>
---
drivers/platform/surface/surface_aggregator_registry.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
index 78ac3a8fbb736384f7e50f1888a71297a892a7c3..c18d991afc8b0a0bbb26966351b75b8ea01097a4 100644
--- a/drivers/platform/surface/surface_aggregator_registry.c
+++ b/drivers/platform/surface/surface_aggregator_registry.c
@@ -406,6 +406,22 @@ static const struct software_node *ssam_node_group_sp9_5g[] = {
NULL,
};
+/* Devices for Surface Pro 11 (ARM/QCOM) */
+static const struct software_node *ssam_node_group_sp11[] = {
+ &ssam_node_root,
+ &ssam_node_hub_kip,
+ &ssam_node_bat_ac,
+ &ssam_node_bat_main,
+ &ssam_node_tmp_sensors,
+ &ssam_node_hid_kip_keyboard,
+ &ssam_node_hid_kip_penstash,
+ &ssam_node_hid_kip_touchpad,
+ &ssam_node_hid_kip_fwupd,
+ &ssam_node_hid_sam_sensors,
+ &ssam_node_kip_tablet_switch,
+ NULL,
+};
+
/* -- SSAM platform/meta-hub driver. ---------------------------------------- */
static const struct acpi_device_id ssam_platform_hub_acpi_match[] = {
@@ -485,6 +501,8 @@ static const struct of_device_id ssam_platform_hub_of_match[] __maybe_unused = {
/* Surface Laptop 7 */
{ .compatible = "microsoft,romulus13", (void *)ssam_node_group_sl7 },
{ .compatible = "microsoft,romulus15", (void *)ssam_node_group_sl7 },
+ /* Surface Pro 11 */
+ { .compatible = "microsoft,denali", (void *)ssam_node_group_sp11 },
{ },
};
--
2.47.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 5/6] arm64: dts: qcom: Add support for Surface Pro 11
2025-12-17 23:56 [PATCH v3 0/6] Microsoft Surface Pro 11 support Jérôme de Bretagne via B4 Relay
` (3 preceding siblings ...)
2025-12-17 23:56 ` [PATCH v3 4/6] platform/surface: aggregator_registry: Add " Jérôme de Bretagne via B4 Relay
@ 2025-12-17 23:56 ` Jérôme de Bretagne via B4 Relay
2025-12-18 10:54 ` Konrad Dybcio
2025-12-17 23:56 ` [PATCH v3 6/6] wifi: ath12k: Add support for disabling rfkill via devicetree Jérôme de Bretagne via B4 Relay
2025-12-18 14:10 ` [PATCH v3 0/6] Microsoft Surface Pro 11 support Rob Herring
6 siblings, 1 reply; 14+ messages in thread
From: Jérôme de Bretagne via B4 Relay @ 2025-12-17 23:56 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham,
Jérôme de Bretagne
From: Dale Whinham <daleyo@gmail.com>
Add device trees for the Qualcomm X1E and X1P-based Microsoft Surface
Pro 11 machines (codenamed 'Denali').
This device is very similar to the Surface Laptop 7 ('Romulus').
Use a similar strategy to x1-asus-zenbook-a14.dtsi so that we can create
x1e and x1p-specific flavors of the device tree without too much code
duplication.
Hardware support is similar to other X1 machines. The most notable
missing features are:
- Touchscreen and pen
- Cameras (and status LEDs)
Signed-off-by: Dale Whinham <daleyo@gmail.com>
Tested-by: Dale Whinham <daleyo@gmail.com>
Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 4 +
arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi | 1326 ++++++++++++++++++++
.../dts/qcom/x1e80100-microsoft-denali-oled.dts | 20 +
.../boot/dts/qcom/x1p64100-microsoft-denali.dts | 16 +
4 files changed, 1366 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f34d5ed331c4cc5ec01de7a0ecbc45f64c3ee15..3641f9371aae0f856e9f2050b48027a998b0c2c2 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -346,6 +346,8 @@ x1e80100-hp-omnibook-x14-el2-dtbs := x1e80100-hp-omnibook-x14.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-hp-omnibook-x14.dtb x1e80100-hp-omnibook-x14-el2.dtb
x1e80100-lenovo-yoga-slim7x-el2-dtbs := x1e80100-lenovo-yoga-slim7x.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb x1e80100-lenovo-yoga-slim7x-el2.dtb
+x1e80100-microsoft-denali-oled-el2-dtbs := x1e80100-microsoft-denali-oled.dtb x1-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-denali-oled.dtb x1e80100-microsoft-denali-oled-el2.dtb
x1e80100-microsoft-romulus13-el2-dtbs := x1e80100-microsoft-romulus13.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb x1e80100-microsoft-romulus13-el2.dtb
x1e80100-microsoft-romulus15-el2-dtbs := x1e80100-microsoft-romulus15.dtb x1-el2.dtbo
@@ -362,3 +364,5 @@ x1p42100-hp-omnibook-x14-el2-dtbs := x1p42100-hp-omnibook-x14.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1p42100-hp-omnibook-x14.dtb x1p42100-hp-omnibook-x14-el2.dtb
x1p42100-lenovo-thinkbook-16-el2-dtbs := x1p42100-lenovo-thinkbook-16.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1p42100-lenovo-thinkbook-16.dtb x1p42100-lenovo-thinkbook-16-el2.dtb
+x1p64100-microsoft-denali-el2-dtbs := x1p64100-microsoft-denali.dtb x1-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += x1p64100-microsoft-denali.dtb x1p64100-microsoft-denali-el2.dtb
diff --git a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi
new file mode 100644
index 0000000000000000000000000000000000000000..32c88f420ebd4a9b8899d11ab14ecbb6c2859ec3
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi
@@ -0,0 +1,1326 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2025 Dale Whinham <daleyo@gmail.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "hamoa-pmics.dtsi"
+
+/ {
+ aliases {
+ serial0 = &uart2;
+ serial1 = &uart14;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&hall_int_n_default>;
+ pinctrl-names = "default";
+
+ switch-lid {
+ gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ wakeup-source;
+ wakeup-event-action = <EV_ACT_DEASSERTED>;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,x1e80100-pmic-glink",
+ "qcom,sm8550-pmic-glink",
+ "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
+ <&tlmm 123 GPIO_ACTIVE_HIGH>;
+
+ /* Left-side bottom port */
+ 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_ss0_hs_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss0_ss_in: endpoint {
+ remote-endpoint = <&retimer_ss0_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_ss0_con_sbu_in: endpoint {
+ remote-endpoint = <&retimer_ss0_con_sbu_out>;
+ };
+ };
+ };
+ };
+
+ /* Left-side top port */
+ 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_ss1_hs_in: endpoint {
+ remote-endpoint = <&usb_1_ss1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss1_ss_in: endpoint {
+ remote-endpoint = <&retimer_ss1_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_ss1_con_sbu_in: endpoint {
+ remote-endpoint = <&retimer_ss1_con_sbu_out>;
+ };
+ };
+ };
+ };
+ };
+
+ reserved-memory {
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
+ vreg_edp_3p3: regulator-edp-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_EDP_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&edp_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_1P15";
+
+ regulator-min-microvolt = <1150000>;
+ regulator-max-microvolt = <1150000>;
+
+ gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&rtmr0_1p15_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_1P8";
+
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&rtmr0_1p8_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_3P3";
+
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&rtmr0_3p3_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR1_1P15";
+
+ regulator-min-microvolt = <1150000>;
+ regulator-max-microvolt = <1150000>;
+
+ gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&rtmr1_1p15_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR1_1P8";
+
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&rtmr1_1p8_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR1_3P3";
+
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&rtmr1_3p3_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_nvme: regulator-nvme {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_NVME_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&nvme_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vreg_wcn_3p3: regulator-wcn-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&wcn_sw_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_wcn_0p95: regulator-wcn-0p95 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_0P95";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <950000>;
+
+ vin-supply = <&vreg_wcn_3p3>;
+ };
+
+ vreg_wcn_1p9: regulator-wcn-1p9 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_1P9";
+ regulator-min-microvolt = <1900000>;
+ regulator-max-microvolt = <1900000>;
+
+ vin-supply = <&vreg_wcn_3p3>;
+ };
+
+ sound {
+ compatible = "qcom,x1e80100-sndcard";
+ model = "X1E80100-Microsoft-Surface-Pro-11";
+ audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT",
+ "SpkrRight IN", "WSA WSA_SPK2 OUT",
+ "VA DMIC0", "vdd-micb",
+ "VA DMIC1", "vdd-micb";
+
+ wsa-dai-link {
+ link-name = "WSA Playback";
+
+ codec {
+ sound-dai = <&left_spkr>, <&right_spkr>,
+ <&swr0 0>, <&lpass_wsamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ va-dai-link {
+ link-name = "VA Capture";
+
+ codec {
+ sound-dai = <&lpass_vamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+
+ wcn7850-pmu {
+ compatible = "qcom,wcn7850-pmu";
+
+ vdd-supply = <&vreg_wcn_0p95>;
+ vddio-supply = <&vreg_l15b_1p8>;
+ vddaon-supply = <&vreg_wcn_0p95>;
+ vdddig-supply = <&vreg_wcn_0p95>;
+ vddrfa1p2-supply = <&vreg_wcn_1p9>;
+ vddrfa1p8-supply = <&vreg_wcn_1p9>;
+
+ wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&wcn_wlan_bt_en>;
+ pinctrl-names = "default";
+
+ regulators {
+ vreg_pmu_rfa_cmn: ldo0 {
+ regulator-name = "vreg_pmu_rfa_cmn";
+ };
+
+ vreg_pmu_aon_0p59: ldo1 {
+ regulator-name = "vreg_pmu_aon_0p59";
+ };
+
+ vreg_pmu_wlcx_0p8: ldo2 {
+ regulator-name = "vreg_pmu_wlcx_0p8";
+ };
+
+ vreg_pmu_wlmx_0p85: ldo3 {
+ regulator-name = "vreg_pmu_wlmx_0p85";
+ };
+
+ vreg_pmu_btcmx_0p85: ldo4 {
+ regulator-name = "vreg_pmu_btcmx_0p85";
+ };
+
+ vreg_pmu_rfa_0p8: ldo5 {
+ regulator-name = "vreg_pmu_rfa_0p8";
+ };
+
+ vreg_pmu_rfa_1p2: ldo6 {
+ regulator-name = "vreg_pmu_rfa_1p2";
+ };
+
+ vreg_pmu_rfa_1p8: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p8";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8550-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob2>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l12-supply = <&vreg_s5j_1p2>;
+ vdd-l15-supply = <&vreg_s4c_1p8>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1b_1p8: ldo1 {
+ regulator-name = "vreg_l1b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4b_1p8: ldo4 {
+ regulator-name = "vreg_l4b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_3p0: ldo8 {
+ regulator-name = "vreg_l8b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_2p9: ldo9 {
+ regulator-name = "vreg_l9b_2p9";
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10b_1p8: ldo10 {
+ regulator-name = "vreg_l10b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_1p2: ldo12 {
+ regulator-name = "vreg_l12b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b_3p0: ldo13 {
+ regulator-name = "vreg_l13b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_3p0: ldo14 {
+ regulator-name = "vreg_l14b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_1p8: ldo15 {
+ regulator-name = "vreg_l15b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_2p5: ldo17 {
+ regulator-name = "vreg_l17b_2p5";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ vreg_s4c_1p8: smps4 {
+ regulator-name = "vreg_s4c_1p8";
+ regulator-min-microvolt = <1856000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1c_1p2: ldo1 {
+ regulator-name = "vreg_l1c_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2c_0p8: ldo2 {
+ regulator-name = "vreg_l2c_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c_0p8: ldo3 {
+ regulator-name = "vreg_l3c_0p8";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s4c_1p8>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_l1d_0p8: ldo1 {
+ regulator-name = "vreg_l1d_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2d_0p9: ldo2 {
+ regulator-name = "vreg_l2d_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3d_1p8: ldo3 {
+ regulator-name = "vreg_l3d_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "e";
+
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+
+ vreg_l2e_0p8: ldo2 {
+ regulator-name = "vreg_l2e_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3e_1p2: ldo3 {
+ regulator-name = "vreg_l3e_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "f";
+
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_s1f_0p7: smps1 {
+ regulator-name = "vreg_s1f_0p7";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-6 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "i";
+
+ vdd-l1-supply = <&vreg_s4c_1p8>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+
+ vreg_s1i_0p9: smps1 {
+ regulator-name = "vreg_s1i_0p9";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2i_1p0: smps2 {
+ regulator-name = "vreg_s2i_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1i_1p8: ldo1 {
+ regulator-name = "vreg_l1i_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2i_1p2: ldo2 {
+ regulator-name = "vreg_l2i_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3i_0p8: ldo3 {
+ regulator-name = "vreg_l3i_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-7 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "j";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s5j_1p2: smps5 {
+ regulator-name = "vreg_s5j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1j_0p8: ldo1 {
+ regulator-name = "vreg_l1j_0p8";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2j_1p2: ldo2 {
+ regulator-name = "vreg_l2j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1256000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3j_0p8: ldo3 {
+ regulator-name = "vreg_l3j_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+
+ zap-shader {
+ memory-region = <&gpu_microcode_mem>;
+ firmware-name = "qcom/x1e80100/microsoft/qcdxkmsuc8380.mbn";
+ };
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+};
+
+&i2c3 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ /* Left-side bottom port */
+ typec-mux@8 {
+ compatible = "parade,ps8830";
+ reg = <0x8>;
+
+ reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+ clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+ vdd-supply = <&vreg_rtmr0_1p15>;
+ vdd33-supply = <&vreg_rtmr0_3p3>;
+ vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+ vddar-supply = <&vreg_rtmr0_1p15>;
+ vddat-supply = <&vreg_rtmr0_1p15>;
+ vddio-supply = <&vreg_rtmr0_1p8>;
+
+ pinctrl-0 = <&rtmr0_default>;
+ pinctrl-names = "default";
+
+ retimer-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ retimer_ss0_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss0_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ retimer_ss0_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ retimer_ss0_con_sbu_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+ };
+ };
+ };
+ };
+};
+
+&i2c4 {
+ clock-frequency = <400000>;
+
+ status = "disabled";
+};
+
+&i2c5 {
+ clock-frequency = <400000>;
+
+ status = "disabled";
+};
+
+&i2c7 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ /* Left-side top port */
+ typec-mux@8 {
+ compatible = "parade,ps8830";
+ reg = <0x8>;
+
+ reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
+
+ clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+ vdd-supply = <&vreg_rtmr1_1p15>;
+ vdd33-supply = <&vreg_rtmr1_3p3>;
+ vdd33-cap-supply = <&vreg_rtmr1_3p3>;
+ vddar-supply = <&vreg_rtmr1_1p15>;
+ vddat-supply = <&vreg_rtmr1_1p15>;
+ vddio-supply = <&vreg_rtmr1_1p8>;
+
+ retimer-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ retimer_ss1_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss1_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ retimer_ss1_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ retimer_ss1_con_sbu_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
+ };
+ };
+ };
+ };
+};
+
+&lpass_tlmm {
+ spkr_01_sd_n_active: spkr-01-sd-n-active-state {
+ pins = "gpio12";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+};
+
+&lpass_vamacro {
+ pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
+ pinctrl-names = "default";
+
+ vdd-micb-supply = <&vreg_l1b_1p8>;
+ qcom,dmic-sample-rate = <4800000>;
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp0 {
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp1 {
+ status = "okay";
+};
+
+&mdss_dp1_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp3 {
+ compatible = "qcom,x1e80100-dp";
+ /delete-property/ #sound-dai-cells;
+
+ status = "okay";
+
+ aux-bus {
+ panel: panel {
+ compatible = "edp-panel";
+ enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
+ power-supply = <&vreg_edp_3p3>;
+
+ pinctrl-0 = <&edp_bl_en>;
+ pinctrl-names = "default";
+
+ port {
+ edp_panel_in: endpoint {
+ remote-endpoint = <&mdss_dp3_out>;
+ };
+ };
+ };
+ };
+
+ ports {
+ port@1 {
+ reg = <1>;
+
+ mdss_dp3_out: endpoint {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+ remote-endpoint = <&edp_panel_in>;
+ };
+ };
+ };
+};
+
+&mdss_dp3_phy {
+ vdda-phy-supply = <&vreg_l3j_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&pcie4 {
+ status = "okay";
+};
+
+&pcie4_phy {
+ vdda-phy-supply = <&vreg_l3i_0p8>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&pcie4_port0 {
+ wifi@0 {
+ compatible = "pci17cb,1107";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+
+ disable-rfkill;
+ };
+};
+
+&pcie6a {
+ perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+
+ vddpe-3v3-supply = <&vreg_nvme>;
+
+ pinctrl-0 = <&pcie6a_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie6a_phy {
+ vdda-phy-supply = <&vreg_l1d_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&pm8550_gpios {
+ rtmr0_default: rtmr0-reset-n-active-state {
+ pins = "gpio10";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ };
+
+ rtmr0_3p3_reg_en: rtmr0-3p3-reg-en-state {
+ pins = "gpio11";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ };
+};
+
+&pm8550ve_9_gpios {
+ rtmr0_1p8_reg_en: rtmr0-1p8-reg-en-state {
+ pins = "gpio8";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ };
+};
+
+&pmc8380_3_gpios {
+ edp_bl_en: edp-bl-en-state {
+ pins = "gpio4";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ input-disable;
+ output-enable;
+ };
+};
+
+&pmc8380_5_gpios {
+ rtmr0_1p15_reg_en: rtmr0-1p15-reg-en-state {
+ pins = "gpio8";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ };
+};
+
+&qupv3_0 {
+ status = "okay";
+};
+
+&qupv3_1 {
+ status = "okay";
+};
+
+&qupv3_2 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/x1e80100/microsoft/Denali/qcadsp8380.mbn",
+ "qcom/x1e80100/microsoft/Denali/adsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/x1e80100/microsoft/Denali/qccdsp8380.mbn",
+ "qcom/x1e80100/microsoft/Denali/cdsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&smb2360_0 {
+ status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+ vdd18-supply = <&vreg_l3d_1p8>;
+ vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1 {
+ status = "okay";
+};
+
+&smb2360_1_eusb2_repeater {
+ vdd18-supply = <&vreg_l3d_1p8>;
+ vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2 {
+ status = "okay";
+};
+
+&smb2360_2_eusb2_repeater {
+ vdd18-supply = <&vreg_l3d_1p8>;
+ vdd3-supply = <&vreg_l8b_3p0>;
+};
+
+&swr0 {
+ status = "okay";
+
+ pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+ pinctrl-names = "default";
+
+ /* WSA8845, Left Speaker */
+ left_spkr: speaker@0,0 {
+ compatible = "sdw20217020400";
+ reg = <0 0>;
+ reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "SpkrLeft";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l12b_1p2>;
+ qcom,port-mapping = <1 2 3 7 10 13>;
+ };
+
+ /* WSA8845, Right Speaker */
+ right_spkr: speaker@0,1 {
+ compatible = "sdw20217020400";
+ reg = <0 1>;
+ reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "SpkrRight";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l12b_1p2>;
+ qcom,port-mapping = <4 5 6 7 11 13>;
+ };
+};
+
+&tlmm {
+ gpio-reserved-ranges = <44 4>, /* SPI (TPM) */
+ <238 1>; /* UFS Reset */
+
+ hall_int_n_default: hall-int-n-state {
+ pins = "gpio2";
+ function = "gpio";
+ bias-disable;
+ };
+
+ nvme_reg_en: nvme-reg-en-state {
+ pins = "gpio18";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ edp_reg_en: edp-reg-en-state {
+ pins = "gpio70";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ ssam_state: ssam-state-state {
+ pins = "gpio91";
+ function = "gpio";
+ bias-disable;
+ };
+
+ wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+ pins = "gpio116", "gpio117";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ pcie4_default: pcie4-default-state {
+ clkreq-n-pins {
+ pins = "gpio147";
+ function = "pcie4_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio146";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio148";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie6a_default: pcie6a-default-state {
+ perst-n-pins {
+ pins = "gpio152";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ clkreq-n-pins {
+ pins = "gpio153";
+ function = "pcie6a_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ wake-n-pins {
+ pins = "gpio154";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ rtmr1_1p8_reg_en: rtmr1-1p8-reg-en-state {
+ pins = "gpio175";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ rtmr1_3p3_reg_en: rtmr1-3p3-reg-en-state {
+ pins = "gpio186";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ rtmr1_1p15_reg_en: rtmr1-1p15-reg-en-state {
+ pins = "gpio188";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wcn_sw_en: wcn-sw-en-state {
+ pins = "gpio214";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_indicator_en: cam-indicator-en-state {
+ pins = "gpio225";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+};
+
+&uart2 {
+ status = "okay";
+
+ embedded-controller {
+ compatible = "microsoft,surface-sam";
+
+ interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>;
+
+ current-speed = <4000000>;
+
+ pinctrl-0 = <&ssam_state>;
+ pinctrl-names = "default";
+ };
+};
+
+&uart14 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn7850-bt";
+ max-speed = <3200000>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ };
+};
+
+&usb_1_ss0_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ phys = <&smb2360_0_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+ vdda-phy-supply = <&vreg_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l1j_0p8>;
+
+ status = "okay";
+};
+
+&usb_1_ss0 {
+ status = "okay";
+};
+
+&usb_1_ss0_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_1_ss0_dwc3_hs {
+ remote-endpoint = <&pmic_glink_ss0_hs_in>;
+};
+
+&usb_1_ss0_qmpphy_out {
+ remote-endpoint = <&retimer_ss0_ss_in>;
+};
+
+&usb_1_ss1_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ phys = <&smb2360_1_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_1_ss1_qmpphy {
+ vdda-phy-supply = <&vreg_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l2d_0p9>;
+
+ status = "okay";
+};
+
+&usb_1_ss1 {
+ status = "okay";
+};
+
+&usb_1_ss1_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_1_ss1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_ss1_hs_in>;
+};
+
+&usb_1_ss1_qmpphy_out {
+ remote-endpoint = <&retimer_ss1_ss_in>;
+};
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-denali-oled.dts b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-denali-oled.dts
new file mode 100644
index 0000000000000000000000000000000000000000..9347d246af10cc6aadbca1a0d9ea37828cd1b9b3
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-denali-oled.dts
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2025 Dale Whinham <daleyo@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "hamoa.dtsi"
+#include "x1-microsoft-denali.dtsi"
+
+/ {
+ model = "Microsoft Surface Pro 11th Edition (OLED)";
+ compatible = "microsoft,denali-oled", "microsoft,denali",
+ "qcom,x1e80100";
+};
+
+&panel {
+ compatible = "samsung,atna30dw01", "samsung,atna33xc20";
+};
diff --git a/arch/arm64/boot/dts/qcom/x1p64100-microsoft-denali.dts b/arch/arm64/boot/dts/qcom/x1p64100-microsoft-denali.dts
new file mode 100644
index 0000000000000000000000000000000000000000..93f1620ad8c71c6cf36ba3ec34b9eebc47bf3f18
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1p64100-microsoft-denali.dts
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2025 Dale Whinham <daleyo@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "hamoa.dtsi"
+#include "x1-microsoft-denali.dtsi"
+
+/ {
+ model = "Microsoft Surface Pro 11th Edition (LCD)";
+ compatible = "microsoft,denali-lcd", "microsoft,denali",
+ "qcom,x1p64100", "qcom,x1e80100";
+};
--
2.47.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 6/6] wifi: ath12k: Add support for disabling rfkill via devicetree
2025-12-17 23:56 [PATCH v3 0/6] Microsoft Surface Pro 11 support Jérôme de Bretagne via B4 Relay
` (4 preceding siblings ...)
2025-12-17 23:56 ` [PATCH v3 5/6] arm64: dts: qcom: Add support for " Jérôme de Bretagne via B4 Relay
@ 2025-12-17 23:56 ` Jérôme de Bretagne via B4 Relay
2025-12-18 14:10 ` [PATCH v3 0/6] Microsoft Surface Pro 11 support Rob Herring
6 siblings, 0 replies; 14+ messages in thread
From: Jérôme de Bretagne via B4 Relay @ 2025-12-17 23:56 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham,
Jérôme de Bretagne
From: Dale Whinham <daleyo@gmail.com>
Some devices (e.g. Microsoft Surface Pro 11) indicate that the rfkill
feature should be disabled by means of an ACPI bitflag.
If ACPI is not being used (i.e. booting using a devicetree) then this
property will not be read and therefore rfkill may be enabled and
the ath12k will be hard-blocked with no way to disable it.
Add a devicetree property that allows us to disable the rfkill feature.
Signed-off-by: Dale Whinham <daleyo@gmail.com>
Tested-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
---
drivers/net/wireless/ath/ath12k/core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index cc352eef1939937ce902bee2fbd9737ca3ab5993..e10073bb975cfd2e9ee418edcc49d0d51cf93de1 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -77,6 +77,9 @@ static int ath12k_core_rfkill_config(struct ath12k_base *ab)
if (ath12k_acpi_get_disable_rfkill(ab))
return 0;
+ if (of_property_read_bool(ab->dev->of_node, "disable-rfkill"))
+ return 0;
+
for (i = 0; i < ab->num_radios; i++) {
ar = ab->pdevs[i].ar;
--
2.47.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v3 4/6] platform/surface: aggregator_registry: Add Surface Pro 11
2025-12-17 23:56 ` [PATCH v3 4/6] platform/surface: aggregator_registry: Add " Jérôme de Bretagne via B4 Relay
@ 2025-12-18 0:07 ` Dmitry Baryshkov
2025-12-18 8:04 ` Jérôme de Bretagne
0 siblings, 1 reply; 14+ messages in thread
From: Dmitry Baryshkov @ 2025-12-18 0:07 UTC (permalink / raw)
To: jerome.debretagne
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson, linux-arm-msm,
devicetree, linux-kernel, linux-wireless, platform-driver-x86,
ath12k, Dale Whinham
On Thu, Dec 18, 2025 at 12:56:40AM +0100, Jérôme de Bretagne via B4 Relay wrote:
> From: Dale Whinham <daleyo@gmail.com>
>
> This enables support for the X1-based Surface Pro 11.
>
> Signed-off-by: Dale Whinham <daleyo@gmail.com>
> Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
> Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com>
> ---
> drivers/platform/surface/surface_aggregator_registry.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
> index 78ac3a8fbb736384f7e50f1888a71297a892a7c3..c18d991afc8b0a0bbb26966351b75b8ea01097a4 100644
> --- a/drivers/platform/surface/surface_aggregator_registry.c
> +++ b/drivers/platform/surface/surface_aggregator_registry.c
> @@ -406,6 +406,22 @@ static const struct software_node *ssam_node_group_sp9_5g[] = {
> NULL,
> };
>
> +/* Devices for Surface Pro 11 (ARM/QCOM) */
> +static const struct software_node *ssam_node_group_sp11[] = {
> + &ssam_node_root,
> + &ssam_node_hub_kip,
> + &ssam_node_bat_ac,
> + &ssam_node_bat_main,
> + &ssam_node_tmp_sensors,
> + &ssam_node_hid_kip_keyboard,
> + &ssam_node_hid_kip_penstash,
> + &ssam_node_hid_kip_touchpad,
> + &ssam_node_hid_kip_fwupd,
> + &ssam_node_hid_sam_sensors,
> + &ssam_node_kip_tablet_switch,
> + NULL,
> +};
> +
> /* -- SSAM platform/meta-hub driver. ---------------------------------------- */
>
> static const struct acpi_device_id ssam_platform_hub_acpi_match[] = {
> @@ -485,6 +501,8 @@ static const struct of_device_id ssam_platform_hub_of_match[] __maybe_unused = {
> /* Surface Laptop 7 */
> { .compatible = "microsoft,romulus13", (void *)ssam_node_group_sl7 },
> { .compatible = "microsoft,romulus15", (void *)ssam_node_group_sl7 },
> + /* Surface Pro 11 */
> + { .compatible = "microsoft,denali", (void *)ssam_node_group_sp11 },
Please keep it sorted. arcata < denali < romulus
> { },
> };
>
>
> --
> 2.47.3
>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 4/6] platform/surface: aggregator_registry: Add Surface Pro 11
2025-12-18 0:07 ` Dmitry Baryshkov
@ 2025-12-18 8:04 ` Jérôme de Bretagne
0 siblings, 0 replies; 14+ messages in thread
From: Jérôme de Bretagne @ 2025-12-18 8:04 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson, linux-arm-msm,
devicetree, linux-kernel, linux-wireless, platform-driver-x86,
ath12k, Dale Whinham
Le jeu. 18 déc. 2025 à 01:07, Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> a écrit :
>
> On Thu, Dec 18, 2025 at 12:56:40AM +0100, Jérôme de Bretagne via B4 Relay wrote:
> > From: Dale Whinham <daleyo@gmail.com>
> >
> > This enables support for the X1-based Surface Pro 11.
> >
> > Signed-off-by: Dale Whinham <daleyo@gmail.com>
> > Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
> > Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com>
> > ---
> > drivers/platform/surface/surface_aggregator_registry.c | 18 ++++++++++++++++++
> > 1 file changed, 18 insertions(+)
> >
> > diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
> > index 78ac3a8fbb736384f7e50f1888a71297a892a7c3..c18d991afc8b0a0bbb26966351b75b8ea01097a4 100644
> > --- a/drivers/platform/surface/surface_aggregator_registry.c
> > +++ b/drivers/platform/surface/surface_aggregator_registry.c
> > @@ -406,6 +406,22 @@ static const struct software_node *ssam_node_group_sp9_5g[] = {
> > NULL,
> > };
> >
> > +/* Devices for Surface Pro 11 (ARM/QCOM) */
> > +static const struct software_node *ssam_node_group_sp11[] = {
> > + &ssam_node_root,
> > + &ssam_node_hub_kip,
> > + &ssam_node_bat_ac,
> > + &ssam_node_bat_main,
> > + &ssam_node_tmp_sensors,
> > + &ssam_node_hid_kip_keyboard,
> > + &ssam_node_hid_kip_penstash,
> > + &ssam_node_hid_kip_touchpad,
> > + &ssam_node_hid_kip_fwupd,
> > + &ssam_node_hid_sam_sensors,
> > + &ssam_node_kip_tablet_switch,
> > + NULL,
> > +};
> > +
> > /* -- SSAM platform/meta-hub driver. ---------------------------------------- */
> >
> > static const struct acpi_device_id ssam_platform_hub_acpi_match[] = {
> > @@ -485,6 +501,8 @@ static const struct of_device_id ssam_platform_hub_of_match[] __maybe_unused = {
> > /* Surface Laptop 7 */
> > { .compatible = "microsoft,romulus13", (void *)ssam_node_group_sl7 },
> > { .compatible = "microsoft,romulus15", (void *)ssam_node_group_sl7 },
> > + /* Surface Pro 11 */
> > + { .compatible = "microsoft,denali", (void *)ssam_node_group_sp11 },
>
> Please keep it sorted. arcata < denali < romulus
Thank you, I will fix this in v4.
> > { },
> > };
> >
> >
> > --
> > 2.47.3
> >
> >
>
> --
> With best wishes
> Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 5/6] arm64: dts: qcom: Add support for Surface Pro 11
2025-12-17 23:56 ` [PATCH v3 5/6] arm64: dts: qcom: Add support for " Jérôme de Bretagne via B4 Relay
@ 2025-12-18 10:54 ` Konrad Dybcio
0 siblings, 0 replies; 14+ messages in thread
From: Konrad Dybcio @ 2025-12-18 10:54 UTC (permalink / raw)
To: jerome.debretagne, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Johannes Berg,
Lorenzo Bianconi, Maximilian Luz, Hans de Goede,
Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham
On 12/18/25 12:56 AM, Jérôme de Bretagne via B4 Relay wrote:
> From: Dale Whinham <daleyo@gmail.com>
>
> Add device trees for the Qualcomm X1E and X1P-based Microsoft Surface
> Pro 11 machines (codenamed 'Denali').
>
> This device is very similar to the Surface Laptop 7 ('Romulus').
>
> Use a similar strategy to x1-asus-zenbook-a14.dtsi so that we can create
> x1e and x1p-specific flavors of the device tree without too much code
> duplication.
>
> Hardware support is similar to other X1 machines. The most notable
> missing features are:
>
> - Touchscreen and pen
> - Cameras (and status LEDs)
>
> Signed-off-by: Dale Whinham <daleyo@gmail.com>
> Tested-by: Dale Whinham <daleyo@gmail.com>
> Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
> ---
[...]
> +&i2c4 {
> + clock-frequency = <400000>;
> +
> + status = "disabled";
> +};
> +
> +&i2c5 {
> + clock-frequency = <400000>;
> +
> + status = "disabled";
> +};
A little bit odd to leave them explicitly disabled. If they're useful,
enabling them makes sense. If not, removing the reference seems to be the
way to go.
With that taken care of, one way or the other:
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 0/6] Microsoft Surface Pro 11 support
2025-12-17 23:56 [PATCH v3 0/6] Microsoft Surface Pro 11 support Jérôme de Bretagne via B4 Relay
` (5 preceding siblings ...)
2025-12-17 23:56 ` [PATCH v3 6/6] wifi: ath12k: Add support for disabling rfkill via devicetree Jérôme de Bretagne via B4 Relay
@ 2025-12-18 14:10 ` Rob Herring
6 siblings, 0 replies; 14+ messages in thread
From: Rob Herring @ 2025-12-18 14:10 UTC (permalink / raw)
To: Jérôme de Bretagne
Cc: Lorenzo Bianconi, platform-driver-x86, linux-arm-msm,
Maximilian Luz, Bjorn Andersson, Jeff Johnson, Dale Whinham,
linux-kernel, Conor Dooley, linux-wireless, Krzysztof Kozlowski,
devicetree, Dmitry Baryshkov, Konrad Dybcio, Ilpo Järvinen,
Hans de Goede, ath12k, Johannes Berg
On Thu, 18 Dec 2025 00:56:36 +0100, Jérôme de Bretagne wrote:
> This series brings support for the Qualcomm-based Microsoft Surface
> Pro 11 covering both the OLED and LCD variants.
>
> Signed-off-by: Dale Whinham <daleyo@gmail.com>
> Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
> ---
> Changes in v3:
> - Update the compatible strings to document both the OLED and LCD variants
> - Move the disable-rfkill property into ieee80211.yaml [Rob,Krzysztof]
> - Reference commit c6a7c0b09d5f and detail the disable-rfkill patch description [Rob,Krzysztof]
> - Switch to the renamed hamoa.dtsi and hamoa-pmics.dtsi [Dale]
> - Improve the comments describing the 2 USB Type-C port location
> - Update the speaker definition to describe only 2-speakers [Konrad]
> - Drop output-low from the speaker definition [Konrad]
> - Enable i2c0 to make it accessible through i2c-tools [Konrad]
> - Delete a non-applicable comment about removable WLAN card [Konrad]
> - Re-order a few nodes and fix indentation issues [Konrad]
> - Squash one of the patches as suggested [Krzysztof]
> - Drop the NAKed patch patch about a dpcd link rate quirk [Dmitry]
> - Include the Reviewed-by: tags
> - Link to v2: https://lore.kernel.org/all/20251201011457.17422-1-daleyo@gmail.com/
>
> Changes in v2:
> - Dropped ATNA30DW01 patch as it was merged.
> - Split device tree into x1e (OLED)/x1p (LCD) specific *.dts files and move common code into x1-microsoft-denali.dtsi (patch 4).
> - Device tree now enables higher external monitor refresh rates/resolutions (patch 4).
> - Device tree now enables partially working audio output; requires alsa-ucm-conf and audioreach-topology definitions in userspace (patch 4).
> - Replaced 'Work around bogus maximum link rate' with a quirk-based approach (patch 5).
> - Improve the commit message about the disable-rfkill property in response to feedback (patch 6).
>
> ---
> Dale Whinham (4):
> firmware: qcom: scm: allow QSEECOM on Surface Pro 11
> platform/surface: aggregator_registry: Add Surface Pro 11
> arm64: dts: qcom: Add support for Surface Pro 11
> wifi: ath12k: Add support for disabling rfkill via devicetree
>
> Jérôme de Bretagne (2):
> dt-bindings: arm: qcom: Document Microsoft Surface Pro 11
> dt-bindings: wireless: ieee80211: Add disable-rfkill property
>
> Documentation/devicetree/bindings/arm/qcom.yaml | 8 +
> .../bindings/net/wireless/ieee80211.yaml | 6 +
> arch/arm64/boot/dts/qcom/Makefile | 4 +
> arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi | 1326 ++++++++++++++++++++
> .../dts/qcom/x1e80100-microsoft-denali-oled.dts | 20 +
> .../boot/dts/qcom/x1p64100-microsoft-denali.dts | 16 +
> drivers/firmware/qcom/qcom_scm.c | 1 +
> drivers/net/wireless/ath/ath12k/core.c | 3 +
> .../platform/surface/surface_aggregator_registry.c | 18 +
> 9 files changed, 1402 insertions(+)
> ---
> base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
> change-id: 20251218-surface-sp11-for-next-626e327f7b33
>
> Best regards,
> --
> Jérôme de Bretagne <jerome.debretagne@gmail.com>
>
>
>
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: 8f0b4cce4481fb22653697cced8d0d04027cb1e8 (use --merge-base to override)
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 20251218-surface-sp11-for-next-v3-0-875afc7bd3b7@gmail.com:
arch/arm64/boot/dts/qcom/x1e80100-microsoft-denali-oled.dtb: / (microsoft,denali-oled): compatible: 'oneOf' conditional failed, one must be fixed:
['microsoft,denali-oled', 'microsoft,denali', 'qcom,x1e80100'] is too long
['microsoft,denali-oled', 'microsoft,denali', 'qcom,x1e80100'] is too short
'microsoft,denali-oled' is not one of ['qcom,apq8016-sbc', 'schneider,apq8016-hmibsc']
'microsoft,denali-oled' is not one of ['asus,sparrow', 'huawei,sturgeon', 'lg,lenok', 'samsung,matisse-wifi', 'samsung,milletwifi']
'microsoft,denali-oled' is not one of ['asus,nexus7-flo', 'lg,nexus4-mako', 'sony,xperia-yuga', 'qcom,apq8064-cm-qs600', 'qcom,apq8064-ifc6410']
'microsoft,denali-oled' is not one of ['qcom,apq8074-dragonboard']
'microsoft,denali-oled' is not one of ['qcom,apq8060-dragonboard', 'qcom,msm8660-surf']
'microsoft,denali-oled' is not one of ['qcom,apq8084-mtp', 'qcom,apq8084-sbc']
'microsoft,denali-oled' is not one of ['microsoft,dempsey', 'microsoft,makepeace', 'microsoft,moneypenny', 'motorola,falcon', 'samsung,ms013g', 'samsung,s3ve3g']
'microsoft,denali-oled' is not one of ['htc,memul', 'microsoft,superman-lte', 'microsoft,tesla', 'motorola,peregrine', 'samsung,matisselte']
'microsoft,denali-oled' is not one of ['wingtech,wt82918hd']
'microsoft,denali-oled' is not one of ['asus,z00t', 'huawei,kiwi', 'longcheer,l9100', 'samsung,a7', 'sony,kanuti-tulip', 'square,apq8039-t2', 'wingtech,wt82918', 'wingtech,wt82918hdhw39']
'microsoft,denali-oled' is not one of ['sony,kugo-row', 'sony,suzu-row']
'microsoft,denali-oled' is not one of ['qcom,msm8960-cdp', 'samsung,expressatt']
'microsoft,denali-oled' is not one of ['sony,huashan']
'microsoft,denali-oled' is not one of ['lge,hammerhead', 'samsung,hlte', 'sony,xperia-amami', 'sony,xperia-honami', 'sony,xperia-togari']
'microsoft,denali-oled' is not one of ['fairphone,fp2', 'htc,m8', 'oneplus,bacon', 'samsung,klte', 'sony,xperia-aries', 'sony,xperia-castor', 'sony,xperia-leo']
'microsoft,denali-oled' is not one of ['samsung,kltechn']
'microsoft,denali-oled' is not one of ['longcheer,l9360']
'microsoft,denali-oled' is not one of ['acer,a1-724', 'alcatel,idol347', 'asus,z00l', 'gplus,fl8005a', 'huawei,g7', 'lg,c50', 'lg,m216', 'longcheer,l8910', 'longcheer,l8150', 'motorola,harpia', 'motorola,osprey', 'motorola,surnia', 'qcom,msm8916-mtp', 'samsung,a3u-eur', 'samsung,a5u-eur', 'samsung,e5', 'samsung,e7', 'samsung,fortuna3g', 'samsung,gprimeltecan', 'samsung,grandmax', 'samsung,grandprimelte', 'samsung,gt510', 'samsung,gt58', 'samsung,j3ltetw', 'samsung,j5', 'samsung,j5x', 'samsung,rossa', 'samsung,serranove', 'thwc,uf896', 'thwc,ufi001c', 'wingtech,wt86518', 'wingtech,wt86528', 'wingtech,wt88047', 'yiming,uz801-v3']
'microsoft,denali-oled' is not one of ['xiaomi,riva']
'microsoft,denali-oled' is not one of ['xiaomi,land']
'microsoft,denali-oled' is not one of ['flipkart,rimob', 'motorola,potter', 'xiaomi,daisy', 'xiaomi,mido', 'xiaomi,tissot', 'xiaomi,vince']
'microsoft,denali-oled' is not one of ['lg,bullhead', 'lg,h815', 'microsoft,talkman', 'xiaomi,libra']
'microsoft,denali-oled' is not one of ['sony,karin_windy']
'microsoft,denali-oled' is not one of ['huawei,angler', 'microsoft,cityman', 'sony,ivy-row', 'sony,karin-row', 'sony,satsuki-row', 'sony,sumire-row', 'sony,suzuran-row']
'microsoft,denali-oled' is not one of ['arrow,apq8096-db820c', 'inforce,ifc6640']
'microsoft,denali-oled' is not one of ['oneplus,oneplus3', 'oneplus,oneplus3t', 'qcom,msm8996-mtp', 'sony,dora-row', 'sony,kagura-row', 'sony,keyaki-row', 'xiaomi,gemini']
'microsoft,denali-oled' is not one of ['xiaomi,natrium', 'xiaomi,scorpio']
'microsoft,denali-oled' is not one of ['asus,novago-tp370ql', 'fxtec,pro1', 'hp,envy-x2', 'lenovo,miix-630', 'oneplus,cheeseburger', 'oneplus,dumpling', 'qcom,msm8998-mtp', 'sony,xperia-lilac', 'sony,xperia-maple', 'sony,xperia-poplar', 'xiaomi,sagit']
'microsoft,denali-oled' is not one of ['8dev,jalapeno', 'alfa-network,ap120c-ac']
'microsoft,denali-oled' is not one of ['qcom,ipq4019-ap-dk01.1-c1', 'qcom,ipq4019-ap-dk04.1-c3', 'qcom,ipq4019-ap-dk07.1-c1', 'qcom,ipq4019-ap-dk07.1-c2', 'qcom,ipq4019-dk04.1-c1']
'microsoft,denali-oled' is not one of ['qcom,ipq5018-rdp432-c2', 'tplink,archer-ax55-v1']
'microsoft,denali-oled' is not one of ['qcom,ipq5332-ap-mi01.2', 'qcom,ipq5332-ap-mi01.3', 'qcom,ipq5332-ap-mi01.6', 'qcom,ipq5332-ap-mi01.9']
'microsoft,denali-oled' is not one of ['qcom,ipq5424-rdp466']
'microsoft,denali-oled' is not one of ['mikrotik,rb3011', 'qcom,ipq8064-ap148']
'microsoft,denali-oled' is not one of ['qcom,ipq8074-hk01', 'qcom,ipq8074-hk10-c1', 'qcom,ipq8074-hk10-c2']
'microsoft,denali-oled' is not one of ['qcom,ipq9574-ap-al02-c2', 'qcom,ipq9574-ap-al02-c6', 'qcom,ipq9574-ap-al02-c7', 'qcom,ipq9574-ap-al02-c8', 'qcom,ipq9574-ap-al02-c9']
'swir,mangoh-green-wp8548' was expected
'microsoft,denali-oled' is not one of ['qcom,qrb2210-rb1']
'microsoft,denali-oled' is not one of ['fairphone,fp5', 'particle,tachyon', 'qcom,qcm6490-idp', 'qcom,qcs6490-rb3gen2', 'radxa,dragon-q6a', 'shift,otter']
'microsoft,denali-oled' is not one of ['qcom,qdu1000-idp', 'qcom,qdu1000-x100']
'microsoft,denali-oled' is not one of ['qcom,qru1000-idp']
'microsoft,denali-oled' is not one of ['qcom,qar2130p']
'microsoft,denali-oled' is not one of ['acer,aspire1', 'qcom,sc7180-idp']
'google,coachz-rev1' was expected
'google,coachz' was expected
'google,coachz-rev1-sku0' was expected
'google,coachz-sku0' was expected
'google,homestar-rev2' was expected
'google,homestar-rev3' was expected
'google,homestar' was expected
'google,kingoftown-rev0' was expected
'google,kingoftown' was expected
'google,lazor-rev0' was expected
'google,lazor-rev1' was expected
'google,lazor-rev3' was expected
'google,lazor-rev9' was expected
'google,lazor' was expected
'google,lazor-rev1-sku2' was expected
'google,lazor-rev3-sku2' was expected
'google,lazor-rev9-sku2' was expected
'google,lazor-sku2' was expected
'google,lazor-rev1-sku0' was expected
'google,lazor-rev3-sku0' was expected
'google,lazor-rev9-sku0' was expected
'google,lazor-sku0' was expected
'google,lazor-rev4-sku4' was expected
'google,lazor-rev9-sku4' was expected
'google,lazor-sku4' was expected
'google,lazor-rev4-sku5' was expected
'google,lazor-rev5-sku5' was expected
'google,lazor-rev9-sku6' was expected
'google,lazor-sku6' was expected
'google,mrbland-rev0-sku0' was expected
'google,mrbland-sku1536' was expected
'google,mrbland-rev0-sku16' was expected
'google,mrbland-sku1024' was expected
'google,pazquel-sku5' was expected
'google,pazquel-sku1' was expected
'google,pazquel-sku6' was expected
'google,pazquel-sku0' was expected
'google,pazquel-sku22' was expected
'google,pazquel-sku21' was expected
'google,pompom-rev1' was expected
'google,pompom-rev2' was expected
'google,pompom' was expected
'google,pompom-rev1-sku0' was expected
'google,pompom-rev2-sku0' was expected
'google,pompom-sku0' was expected
'google,quackingstick-sku1537' was expected
'google,quackingstick-sku1536' was expected
'google,trogdor' was expected
'google,trogdor-sku0' was expected
'google,wormdingler-rev0-sku16' was expected
'google,wormdingler-sku1024' was expected
'google,wormdingler-sku1025' was expected
'google,wormdingler-rev0-sku0' was expected
'google,wormdingler-sku0' was expected
'google,wormdingler-sku1' was expected
'qcom,sc7280-crd' was expected
'google,zoglin' was expected
'google,zoglin-sku1536' was expected
'qcom,sc7280-idp' was expected
'qcom,sc7280-idp2' was expected
'google,evoker' was expected
'google,evoker-sku512' was expected
'google,herobrine' was expected
'google,villager-rev0' was expected
'google,villager' was expected
'google,villager-sku512' was expected
'google,zombie' was expected
'google,zombie-sku512' was expected
'google,zombie-sku2' was expected
'google,zombie-sku514' was expected
'microsoft,denali-oled' is not one of ['lenovo,flex-5g', 'microsoft,surface-prox', 'qcom,sc8180x-primus']
'microsoft,denali-oled' is not one of ['huawei,gaokun3', 'lenovo,thinkpad-x13s', 'microsoft,arcata', 'microsoft,blackrock', 'qcom,sc8280xp-crd', 'qcom,sc8280xp-qrd']
'microsoft,denali-oled' is not one of ['lenovo,tbx605f', 'motorola,ali']
'microsoft,denali-oled' is not one of ['sony,discovery-row', 'sony,kirin-row', 'sony,pioneer-row', 'sony,voyager-row']
'microsoft,denali-oled' is not one of ['inforce,ifc6560']
'microsoft,denali-oled' is not one of ['fairphone,fp3', 'motorola,ocean']
'microsoft,denali-oled' is not one of ['sony,mermaid-row']
'microsoft,denali-oled' is not one of ['xiaomi,lavender']
'microsoft,denali-oled' is not one of ['google,sargo']
'microsoft,denali-oled' is not one of ['qcom,sdx55-mtp', 'qcom,sdx55-telit-fn980-tlb', 'qcom,sdx55-t55']
'microsoft,denali-oled' is not one of ['qcom,sdx65-mtp']
'microsoft,denali-oled' is not one of ['qcom,sdx75-idp']
'microsoft,denali-oled' is not one of ['qcom,ipq6018-cp01', 'qcom,ipq6018-cp01-c1']
'microsoft,denali-oled' is not one of ['qcom,qcs404-evb-1000', 'qcom,qcs404-evb-4000']
'microsoft,denali-oled' is not one of ['qcom,monaco-evk', 'qcom,qcs8300-ride']
'microsoft,denali-oled' is not one of ['qcom,qcs615-ride']
'microsoft,denali-oled' is not one of ['qcom,sa8155p-adp']
'microsoft,denali-oled' is not one of ['qcom,sa8295p-adp', 'qcom,sa8540p-ride']
'microsoft,denali-oled' is not one of ['qcom,sa8775p-ride', 'qcom,sa8775p-ride-r3']
'microsoft,denali-oled' is not one of ['qcom,lemans-evk', 'qcom,qcs9100-ride', 'qcom,qcs9100-ride-r3']
'microsoft,denali-oled' is not one of ['huawei,planck', 'lenovo,yoga-c630', 'lg,judyln', 'lg,judyp', 'oneplus,enchilada', 'oneplus,fajita', 'qcom,sdm845-mtp', 'shift,axolotl', 'samsung,starqltechn', 'samsung,w737', 'sony,akari-row', 'sony,akatsuki-row', 'sony,apollo-row', 'thundercomm,db845c', 'xiaomi,beryllium', 'xiaomi,beryllium-ebbg', 'xiaomi,polaris']
'microsoft,denali-oled' is not one of ['oneplus,billie2']
'microsoft,denali-oled' is not one of ['qcom,qrb4210-rb2']
'microsoft,denali-oled' is not one of ['qcom,sm4450-qrd']
'microsoft,denali-oled' is not one of ['fxtec,pro1x']
'microsoft,denali-oled' is not one of ['lenovo,j606f']
'microsoft,denali-oled' is not one of ['sony,pdx201', 'xiaomi,ginkgo', 'xiaomi,laurel-sprout']
'microsoft,denali-oled' is not one of ['sony,pdx213']
'microsoft,denali-oled' is not one of ['sony,pdx225']
'microsoft,denali-oled' is not one of ['xiaomi,curtana', 'xiaomi,joyeuse']
'microsoft,denali-oled' is not one of ['google,sunfish']
'microsoft,denali-oled' is not one of ['fairphone,fp4']
'microsoft,denali-oled' is not one of ['nothing,spacewar']
'microsoft,denali-oled' is not one of ['microsoft,surface-duo', 'qcom,sm8150-hdk', 'qcom,sm8150-mtp', 'sony,bahamut-generic', 'sony,griffin-generic']
'microsoft,denali-oled' is not one of ['qcom,qrb5165-rb5', 'qcom,sm8250-hdk', 'qcom,sm8250-mtp', 'samsung,r8q', 'samsung,x1q', 'sony,pdx203-generic', 'sony,pdx206-generic', 'xiaomi,elish', 'xiaomi,pipa']
'microsoft,denali-oled' is not one of ['microsoft,surface-duo2', 'qcom,sm8350-hdk', 'qcom,sm8350-mtp', 'sony,pdx214-generic', 'sony,pdx215-generic']
'microsoft,denali-oled' is not one of ['qcom,sm8450-hdk', 'qcom,sm8450-qrd', 'samsung,r0q', 'sony,pdx223', 'sony,pdx224']
'microsoft,denali-oled' is not one of ['qcom,sm8550-hdk', 'qcom,sm8550-mtp', 'qcom,sm8550-qrd', 'samsung,q5q', 'sony,pdx234']
'microsoft,denali-oled' is not one of ['qcom,qcs8550-aim300-aiot']
'microsoft,denali-oled' is not one of ['qcom,sm8650-hdk', 'qcom,sm8650-mtp', 'qcom,sm8650-qrd']
'microsoft,denali-oled' is not one of ['qcom,sm8750-mtp', 'qcom,sm8750-qrd']
'microsoft,denali-oled' is not one of ['qcom,x1e001de-devkit']
'microsoft,denali-oled' is not one of ['lenovo,thinkpad-t14s-lcd', 'lenovo,thinkpad-t14s-oled']
'microsoft,denali-oled' is not one of ['asus,vivobook-s15', 'asus,zenbook-a14-ux3407ra', 'dell,inspiron-14-plus-7441', 'dell,latitude-7455', 'dell,xps13-9345', 'hp,elitebook-ultra-g1q', 'hp,omnibook-x14', 'lenovo,yoga-slim7x', 'microsoft,romulus13', 'microsoft,romulus15', 'qcom,x1e80100-crd', 'qcom,x1e80100-qcp']
'microsoft,denali-oled' is not one of ['qcom,hamoa-iot-evk']
'microsoft,denali-oled' is not one of ['asus,zenbook-a14-ux3407qa-lcd', 'asus,zenbook-a14-ux3407qa-oled']
'microsoft,denali-oled' is not one of ['hp,omnibook-x14-fe1', 'lenovo,thinkbook-16', 'qcom,x1p42100-crd']
'qcom,apq8016' was expected
'qcom,apq8026' was expected
'qcom,apq8064' was expected
'qcom,apq8074' was expected
'qcom,msm8660' was expected
'qcom,apq8084' was expected
'qcom,msm8226' was expected
'qcom,msm8926' was expected
'qcom,msm8929' was expected
'qcom,msm8939' was expected
'qcom,msm8956' was expected
'qcom,msm8960' was expected
'qcom,msm8960t' was expected
'qcom,msm8974' was expected
'qcom,msm8974pro' was expected
'samsung,klte' was expected
'qcom,msm8976' was expected
'qcom,msm8916' was expected
'qcom,msm8917' was expected
'qcom,msm8937' was expected
'qcom,msm8953' was expected
'qcom,msm8992' was expected
'qcom,apq8094' was expected
'qcom,msm8994' was expected
'qcom,apq8096-sbc' was expected
'qcom,msm8996' was expected
'qcom,msm8996pro' was expected
'qcom,msm8998' was expected
'qcom,ipq4018' was expected
'qcom,ipq4019' was expected
'qcom,ipq5018' was expected
'qcom,ipq5332' was expected
'qcom,ipq5424' was expected
'qcom,ipq8064' was expected
'qcom,ipq8074' was expected
'qcom,ipq9574' was expected
'swir,wp8548' was expected
'qcom,qrb2210' was expected
'qcom,qcm6490' was expected
'qcom,qdu1000' was expected
'qcom,qru1000' was expected
'qcom,sar2130p' was expected
'qcom,sc7180' was expected
'google,coachz-rev2' was expected
'google,coachz-rev2-sku0' was expected
'google,homestar-rev23' was expected
'google,lazor-rev2' was expected
'google,lazor-rev4' was expected
'google,lazor-rev2-sku2' was expected
'google,lazor-rev4-sku2' was expected
'google,lazor-rev2-sku0' was expected
'google,lazor-rev4-sku0' was expected
'google,lazor-rev9-sku10' was expected
'google,lazor-sku10' was expected
'google,lazor-rev5-sku4' was expected
'google,lazor-rev9-sku15' was expected
'google,lazor-sku15' was expected
'google,lazor-rev5-sku6' was expected
'google,lazor-rev9-sku18' was expected
'google,lazor-sku18' was expected
'google,mrbland-sku768' was expected
'google,pazquel-sku4' was expected
'google,pazquel-sku2' was expected
'google,pazquel-sku20' was expected
'google,hoglin-rev3' was expected
'google,hoglin' was expected
'google,hoglin-sku1536' was expected
'google,senor' was expected
'google,piglin' was expected
'qcom,sc7280' was expected
'google,zombie-sku3' was expected
'qcom,sc8180x' was expected
'qcom,sc8280xp' was expected
'qcom,sdm450' was expected
'qcom,sdm630' was expected
'qcom,sda660' was expected
'qcom,sdm632' was expected
'qcom,sdm636' was expected
'qcom,sdm660' was expected
'qcom,sdm670' was expected
'qcom,sdx55' was expected
'qcom,sdx65' was expected
'qcom,sdx75' was expected
'qcom,ipq6018' was expected
'qcom,qcs404-evb' was expected
'qcom,qcs8300' was expected
'qcom,qcs615' was expected
'qcom,sa8155p' was expected
'qcom,sa8540p' was expected
'qcom,sa8775p' was expected
'qcom,qcs9100' was expected
'qcom,sdm845' was expected
'qcom,sm4250' was expected
'qcom,qrb4210' was expected
'qcom,sm4450' was expected
'qcom,sm6115' was expected
'qcom,sm6115p' was expected
'qcom,sm6125' was expected
'qcom,sm6350' was expected
'qcom,sm6375' was expected
'qcom,sm7125' was expected
'qcom,sm7150' was expected
'qcom,sm7225' was expected
'qcom,sm7325' was expected
'qcom,sm8150' was expected
'qcom,sm8250' was expected
'qcom,sm8350' was expected
'qcom,sm8450' was expected
'qcom,sm8550' was expected
'qcom,qcs8550-aim300' was expected
'qcom,sm8650' was expected
'qcom,sm8750' was expected
'qcom,x1e001de' was expected
'lenovo,thinkpad-t14s' was expected
'qcom,x1e80100' was expected
'qcom,hamoa-iot-som' was expected
'asus,zenbook-a14-ux3407qa' was expected
'qcom,x1p42100' was expected
'qcom,apq8096' was expected
'qcom,mdm9615' was expected
'qcom,qcm2290' was expected
'google,lazor-rev5' was expected
'google,lazor-rev5-sku2' was expected
'google,lazor-rev5-sku0' was expected
'google,lazor-rev6-sku4' was expected
'google,lazor-rev6-sku6' was expected
'google,hoglin-rev4' was expected
'google,zombie-sku515' was expected
'qcom,qcs404' was expected
'qcom,sm6150' was expected
'qcom,qcs8550' was expected
'qcom,x1e78100' was expected
'qcom,x1p64100' was expected
from schema $id: http://devicetree.org/schemas/arm/qcom.yaml
arch/arm64/boot/dts/qcom/x1e80100-microsoft-denali-oled.dtb: wifi@0 (pci17cb,1107): 'disable-rfkill' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/net/wireless/qcom,ath12k.yaml
arch/arm64/boot/dts/qcom/x1p64100-microsoft-denali.dtb: wifi@0 (pci17cb,1107): 'disable-rfkill' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/net/wireless/qcom,ath12k.yaml
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11
2025-12-17 23:56 ` [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11 Jérôme de Bretagne via B4 Relay
@ 2025-12-18 14:15 ` Konrad Dybcio
2025-12-18 16:35 ` Jérôme de Bretagne
0 siblings, 1 reply; 14+ messages in thread
From: Konrad Dybcio @ 2025-12-18 14:15 UTC (permalink / raw)
To: jerome.debretagne, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Johannes Berg,
Lorenzo Bianconi, Maximilian Luz, Hans de Goede,
Ilpo Järvinen, Jeff Johnson
Cc: linux-arm-msm, devicetree, linux-kernel, linux-wireless,
platform-driver-x86, ath12k, Dale Whinham
On 12/18/25 12:56 AM, Jérôme de Bretagne via B4 Relay wrote:
> From: Jérôme de Bretagne <jerome.debretagne@gmail.com>
>
> Add the compatibles for the Qualcomm-based Microsoft Surface Pro 11,
> using its Denali codename.
>
> The LCD models are using the Qualcomm Snapdragon X1 Plus (X1P64100),
> the OLED ones are using the Qualcomm Snapdragon X1 Elite (X1E80100).
>
> Due to the difference in how the built-in panel is being handled
> between the OLED variant and LCD one, it is required to have two
> separate DTBs, so document the compatible string for both variants.
>
> Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
> ---
> Documentation/devicetree/bindings/arm/qcom.yaml | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
> index d84bd3bca2010508a8225b9549d8c634efa06531..7c99bc0d3aae3dc6e9c08fef0a535e114a3297a8 100644
> --- a/Documentation/devicetree/bindings/arm/qcom.yaml
> +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
> @@ -1067,6 +1067,14 @@ properties:
> - const: qcom,x1e78100
> - const: qcom,x1e80100
>
> + - items:
> + - enum:
> + - microsoft,denali-lcd
> + - microsoft,denali-oled
> + - const: microsoft,denali
> + - const: qcom,x1p64100
> + - const: qcom,x1e80100
As the bot pointed out, this is valid, but not what you want:
This expects
"microsoft,denali-(lcd/oled)", "microsoft,denali", "qcom,x1p64100",
"qcom,x1e80100"
whereas you're looking for 2 entries:
- items:
const: microsoft,denali-lcd
const: microsoft,denali
const: qcom,x1p64100
const: qcom,x1e80100
- items:
const: microsoft,denali-oled
const: microsoft,denali
const: qcom,x1e80100
Konrad
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11
2025-12-18 14:15 ` Konrad Dybcio
@ 2025-12-18 16:35 ` Jérôme de Bretagne
2025-12-19 11:33 ` Konrad Dybcio
0 siblings, 1 reply; 14+ messages in thread
From: Jérôme de Bretagne @ 2025-12-18 16:35 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson, linux-arm-msm,
devicetree, linux-kernel, linux-wireless, platform-driver-x86,
ath12k, Dale Whinham
Le jeu. 18 déc. 2025 à 15:15, Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> a écrit :
>
> On 12/18/25 12:56 AM, Jérôme de Bretagne via B4 Relay wrote:
> > From: Jérôme de Bretagne <jerome.debretagne@gmail.com>
> >
> > Add the compatibles for the Qualcomm-based Microsoft Surface Pro 11,
> > using its Denali codename.
> >
> > The LCD models are using the Qualcomm Snapdragon X1 Plus (X1P64100),
> > the OLED ones are using the Qualcomm Snapdragon X1 Elite (X1E80100).
> >
> > Due to the difference in how the built-in panel is being handled
> > between the OLED variant and LCD one, it is required to have two
> > separate DTBs, so document the compatible string for both variants.
> >
> > Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
> > ---
> > Documentation/devicetree/bindings/arm/qcom.yaml | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
> > index d84bd3bca2010508a8225b9549d8c634efa06531..7c99bc0d3aae3dc6e9c08fef0a535e114a3297a8 100644
> > --- a/Documentation/devicetree/bindings/arm/qcom.yaml
> > +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
> > @@ -1067,6 +1067,14 @@ properties:
> > - const: qcom,x1e78100
> > - const: qcom,x1e80100
> >
> > + - items:
> > + - enum:
> > + - microsoft,denali-lcd
> > + - microsoft,denali-oled
> > + - const: microsoft,denali
> > + - const: qcom,x1p64100
> > + - const: qcom,x1e80100
>
> As the bot pointed out, this is valid, but not what you want:
>
> This expects
>
> "microsoft,denali-(lcd/oled)", "microsoft,denali", "qcom,x1p64100",
> "qcom,x1e80100"
>
> whereas you're looking for 2 entries:
>
> - items:
> const: microsoft,denali-lcd
> const: microsoft,denali
> const: qcom,x1p64100
> const: qcom,x1e80100
>
> - items:
> const: microsoft,denali-oled
> const: microsoft,denali
> const: qcom,x1e80100
I was trying to group the 2 variants together, as they are very much
related. Your description captures the 2 variants way more precisely,
I will switch to 2 distinct entries in v4.
> Konrad
Thanks again for your review,
Jérôme
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11
2025-12-18 16:35 ` Jérôme de Bretagne
@ 2025-12-19 11:33 ` Konrad Dybcio
0 siblings, 0 replies; 14+ messages in thread
From: Konrad Dybcio @ 2025-12-19 11:33 UTC (permalink / raw)
To: Jérôme de Bretagne
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Johannes Berg, Lorenzo Bianconi, Maximilian Luz,
Hans de Goede, Ilpo Järvinen, Jeff Johnson, linux-arm-msm,
devicetree, linux-kernel, linux-wireless, platform-driver-x86,
ath12k, Dale Whinham
On 12/18/25 5:35 PM, Jérôme de Bretagne wrote:
> Le jeu. 18 déc. 2025 à 15:15, Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> a écrit :
>>
>> On 12/18/25 12:56 AM, Jérôme de Bretagne via B4 Relay wrote:
>>> From: Jérôme de Bretagne <jerome.debretagne@gmail.com>
>>>
>>> Add the compatibles for the Qualcomm-based Microsoft Surface Pro 11,
>>> using its Denali codename.
>>>
>>> The LCD models are using the Qualcomm Snapdragon X1 Plus (X1P64100),
>>> the OLED ones are using the Qualcomm Snapdragon X1 Elite (X1E80100).
>>>
>>> Due to the difference in how the built-in panel is being handled
>>> between the OLED variant and LCD one, it is required to have two
>>> separate DTBs, so document the compatible string for both variants.
>>>
>>> Signed-off-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
>>> ---
>>> Documentation/devicetree/bindings/arm/qcom.yaml | 8 ++++++++
>>> 1 file changed, 8 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
>>> index d84bd3bca2010508a8225b9549d8c634efa06531..7c99bc0d3aae3dc6e9c08fef0a535e114a3297a8 100644
>>> --- a/Documentation/devicetree/bindings/arm/qcom.yaml
>>> +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
>>> @@ -1067,6 +1067,14 @@ properties:
>>> - const: qcom,x1e78100
>>> - const: qcom,x1e80100
>>>
>>> + - items:
>>> + - enum:
>>> + - microsoft,denali-lcd
>>> + - microsoft,denali-oled
>>> + - const: microsoft,denali
>>> + - const: qcom,x1p64100
>>> + - const: qcom,x1e80100
>>
>> As the bot pointed out, this is valid, but not what you want:
>>
>> This expects
>>
>> "microsoft,denali-(lcd/oled)", "microsoft,denali", "qcom,x1p64100",
>> "qcom,x1e80100"
>>
>> whereas you're looking for 2 entries:
>>
>> - items:
>> const: microsoft,denali-lcd
>> const: microsoft,denali
>> const: qcom,x1p64100
>> const: qcom,x1e80100
>>
>> - items:
>> const: microsoft,denali-oled
>> const: microsoft,denali
>> const: qcom,x1e80100
>
> I was trying to group the 2 variants together, as they are very much
> related. Your description captures the 2 variants way more precisely,
> I will switch to 2 distinct entries in v4.
Unfortunately, in math terms, this is a:
ab + ac + bc
situation, as in you see there's a lot of repetition, but there's no way
to find a common neat factor for every entry
Konrad
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-12-19 11:33 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-17 23:56 [PATCH v3 0/6] Microsoft Surface Pro 11 support Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 1/6] dt-bindings: arm: qcom: Document Microsoft Surface Pro 11 Jérôme de Bretagne via B4 Relay
2025-12-18 14:15 ` Konrad Dybcio
2025-12-18 16:35 ` Jérôme de Bretagne
2025-12-19 11:33 ` Konrad Dybcio
2025-12-17 23:56 ` [PATCH v3 2/6] dt-bindings: wireless: ieee80211: Add disable-rfkill property Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 3/6] firmware: qcom: scm: allow QSEECOM on Surface Pro 11 Jérôme de Bretagne via B4 Relay
2025-12-17 23:56 ` [PATCH v3 4/6] platform/surface: aggregator_registry: Add " Jérôme de Bretagne via B4 Relay
2025-12-18 0:07 ` Dmitry Baryshkov
2025-12-18 8:04 ` Jérôme de Bretagne
2025-12-17 23:56 ` [PATCH v3 5/6] arm64: dts: qcom: Add support for " Jérôme de Bretagne via B4 Relay
2025-12-18 10:54 ` Konrad Dybcio
2025-12-17 23:56 ` [PATCH v3 6/6] wifi: ath12k: Add support for disabling rfkill via devicetree Jérôme de Bretagne via B4 Relay
2025-12-18 14:10 ` [PATCH v3 0/6] Microsoft Surface Pro 11 support Rob Herring
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).