From 3734a969d7e8cb2b7eb5a4238cea0deb4673b702 Mon Sep 17 00:00:00 2001 From: Leon Silcott Date: Mon, 10 Aug 2026 08:50:46 +0100 Subject: [PATCH 1/2] arm64: dts: qcom: x1-denali: add volume-up key Describe the Surface Pro 11 volume-up key on PM8550 GPIO 6 as an active-low wake-capable input with the required pull-up. This carries the hardware-verified volume-up portion of the original SP11 integration change without its obsolete pon_resin assumption. Link: https://github.com/ooaklee/linux_ms_dev_kit-sp11/commit/070c486c1075e3bd8def391d0bc9e596cdb1d131 Signed-off-by: Leon Silcott --- .../boot/dts/qcom/x1-microsoft-denali.dtsi | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi index 0886eb11095d60..6c5328f310a72d 100644 --- a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi +++ b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi @@ -20,7 +20,7 @@ gpio-keys { compatible = "gpio-keys"; - pinctrl-0 = <&hall_int_n_default>; + pinctrl-0 = <&hall_int_n_default>, <&kypd_vol_up_n>; pinctrl-names = "default"; switch-lid { @@ -30,6 +30,13 @@ wakeup-source; wakeup-event-action = ; }; + + key-vol-up { + label = "volume_up"; + gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>; + linux,code = ; + wakeup-source; + }; }; pmic-glink { @@ -997,6 +1004,14 @@ function = "normal"; power-source = <1>; /* 1.8V */ }; + + kypd_vol_up_n: kypd-vol-up-n-state { + pins = "gpio6"; + function = "normal"; + power-source = <1>; /* 1.8V */ + bias-pull-up; + input-enable; + }; }; &pm8550ve_9_gpios { From b5108d87754c40b3b043981ce0f249b02b71017c Mon Sep 17 00:00:00 2001 From: Leon Silcott Date: Wed, 19 Aug 2026 08:24:35 +0100 Subject: [PATCH 2/2] arm64: dts: qcom: x1-denali: add volume-down key Describe the Surface Pro 11 volume-down key on PM8550 GPIO 8 as an active-low wake-capable input with the required pull-up. Enable gpio-keys autorepeat for the hardware rocker. The SP11 rocker is not wired through pon_resin, which remains disabled by the shared base description. Keep properties before child nodes so the gpio-keys node passes DT validation. Link: https://github.com/ooaklee/linux_ms_dev_kit-sp11/commit/247858bdd7ff39f5b05c996b226ffda353058fd0 Link: https://github.com/ooaklee/linux_ms_dev_kit-sp11/commit/e3b4bf3577abb0715ff69df13db1a146acbb5d72 Signed-off-by: Leon Silcott --- .../boot/dts/qcom/x1-microsoft-denali.dtsi | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi index 6c5328f310a72d..b84249c5eef573 100644 --- a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi +++ b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi @@ -20,8 +20,9 @@ gpio-keys { compatible = "gpio-keys"; - pinctrl-0 = <&hall_int_n_default>, <&kypd_vol_up_n>; + pinctrl-0 = <&hall_int_n_default>, <&kypd_vol_up_n>, <&kypd_vol_down_n>; pinctrl-names = "default"; + autorepeat; switch-lid { gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; @@ -37,6 +38,13 @@ linux,code = ; wakeup-source; }; + + key-vol-down { + label = "volume_down"; + gpios = <&pm8550_gpios 8 GPIO_ACTIVE_LOW>; + linux,code = ; + wakeup-source; + }; }; pmic-glink { @@ -1012,6 +1020,14 @@ bias-pull-up; input-enable; }; + + kypd_vol_down_n: kypd-vol-down-n-state { + pins = "gpio8"; + function = "normal"; + power-source = <1>; /* 1.8V */ + bias-pull-up; + input-enable; + }; }; &pm8550ve_9_gpios {