* [PATCH v2] arm64: dts: qcom: sc8280xp: add missing QUP pinctrl states
@ 2026-08-31 9:55 Xilin Wu
2026-10-15 12:18 ` Konrad Dybcio
0 siblings, 1 reply; 3+ messages in thread
From: Xilin Wu @ 2026-08-31 9:55 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Xilin Wu
Add the missing tlmm pinctrl states for the SC8280XP QUP engines so common
I2C, SPI and UART pinmux definitions are available from the SoC dtsi.
Populate all 24 engines using the SC8280XP lane-to-GPIO mapping, including
the non-linear QUP instances, and keep the mux function names aligned with
the driver-supported qup0..qup23 names.
Define common four-wire UART electrical defaults in the SoC dtsi: CTS uses
bus hold, RX uses a pull-up, and RTS/TX use 2 mA drive with no bias. This
matches the Bluetooth UART configuration used by the existing boards, lets
them reference the shared QUP state directly, and removes duplicated
board-local pinctrl definitions.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
Changes in v2:
- Rebased onto next-20260828
- Define common UART electrical defaults in the SC8280XP dtsi and drop redundant board overrides.
- Link to v1: https://patch.msgid.link/20260507-sc8280xp-qup-pinctrl-v1-1-8950644af141@radxa.com
To: Bjorn Andersson <andersson@kernel.org>
To: Konrad Dybcio <konradybcio@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 30 +-
.../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 30 +-
.../dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 30 +-
.../boot/dts/qcom/sc8280xp-microsoft-arcata.dts | 30 +-
.../boot/dts/qcom/sc8280xp-microsoft-blackrock.dts | 30 +-
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 1060 +++++++++++++++++++-
6 files changed, 1060 insertions(+), 150 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
index 1eea9d710d5b..814ed65af1dd 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
@@ -778,7 +778,7 @@ &sdc2 {
};
&uart2 {
- pinctrl-0 = <&uart2_default>;
+ pinctrl-0 = <&qup_uart2_default>;
pinctrl-names = "default";
status = "okay";
@@ -1150,34 +1150,6 @@ reset-n-pins {
};
};
- 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;
- };
- };
-
usb0_sbu_default: usb0-sbu-state {
oe-n-pins {
pins = "gpio101";
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
index adce0302d92e..5254292ce349 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
@@ -1109,7 +1109,7 @@ &txmacro {
};
&uart2 {
- pinctrl-0 = <&uart2_default>;
+ pinctrl-0 = <&qup_uart2_default>;
pinctrl-names = "default";
status = "okay";
@@ -1430,34 +1430,6 @@ reset-n-pins {
};
};
- 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;
- };
- };
-
usb0_sbu_default: usb0-sbu-state {
pins = "gpio164";
function = "gpio";
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
index 218573a97785..51523e305a5b 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
@@ -1327,7 +1327,7 @@ &txmacro {
};
&uart2 {
- pinctrl-0 = <&uart2_default>;
+ pinctrl-0 = <&qup_uart2_default>;
pinctrl-names = "default";
status = "okay";
@@ -1760,34 +1760,6 @@ reset-n-pins {
};
};
- 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;
- };
- };
-
usb0_sbu_default: usb0-sbu-state {
oe-n-pins {
pins = "gpio101";
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dts b/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dts
index 89c4ba267b07..18b12ee277c8 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dts
@@ -876,7 +876,7 @@ &txmacro {
};
&uart2 {
- pinctrl-0 = <&uart2_default>;
+ pinctrl-0 = <&qup_uart2_default>;
pinctrl-names = "default";
status = "okay";
@@ -1170,34 +1170,6 @@ ssam_state: ssam-state-state {
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;
- };
- };
-
usb0_sbu_default: usb0-sbu-state {
oe-n-pins {
pins = "gpio100";
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dts b/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dts
index 4f4b5f4285ec..20d0515a5d53 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dts
@@ -954,7 +954,7 @@ &txmacro {
};
&uart2 {
- pinctrl-0 = <&uart2_default>;
+ pinctrl-0 = <&qup_uart2_default>;
pinctrl-names = "default";
status = "okay";
@@ -1231,34 +1231,6 @@ wake-n-pins {
};
};
- 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;
- };
- };
-
usb0_sbu_default: usb0-sbu-state {
oe-n-pins {
pins = "gpio101";
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
index fbcfd3883bbb..6f331dd59e03 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
@@ -5799,34 +5799,1084 @@ cci3_i2c1_sleep: cci3-i2c1-sleep-pins {
};
};
- qup_uart18_default: qup-uart18-default-state {
+ qup_i2c0_data_clk: qup-i2c0-data-clk-state {
+ pins = "gpio135", "gpio136";
+ function = "qup0";
+ };
+
+ qup_i2c1_data_clk: qup-i2c1-data-clk-state {
+ pins = "gpio158", "gpio159";
+ function = "qup1";
+ };
+
+ qup_i2c2_data_clk: qup-i2c2-data-clk-state {
+ pins = "gpio121", "gpio122";
+ function = "qup2";
+ };
+
+ qup_i2c3_data_clk: qup-i2c3-data-clk-state {
+ pins = "gpio137", "gpio138";
+ function = "qup3";
+ };
+
+ qup_i2c4_data_clk: qup-i2c4-data-clk-state {
+ pins = "gpio171", "gpio172";
+ function = "qup4";
+ };
+
+ qup_i2c5_data_clk: qup-i2c5-data-clk-state {
+ pins = "gpio111", "gpio112";
+ function = "qup5";
+ };
+
+ qup_i2c6_data_clk: qup-i2c6-data-clk-state {
+ pins = "gpio154", "gpio155";
+ function = "qup6";
+ };
+
+ qup_i2c7_data_clk: qup-i2c7-data-clk-state {
+ pins = "gpio128", "gpio129";
+ function = "qup7";
+ };
+
+ qup_i2c8_data_clk: qup-i2c8-data-clk-state {
+ pins = "gpio43", "gpio44";
+ function = "qup8";
+ };
+
+ qup_i2c9_data_clk: qup-i2c9-data-clk-state {
+ pins = "gpio41", "gpio42";
+ function = "qup9";
+ };
+
+ qup_i2c10_data_clk: qup-i2c10-data-clk-state {
+ pins = "gpio22", "gpio23";
+ function = "qup10";
+ };
+
+ qup_i2c11_data_clk: qup-i2c11-data-clk-state {
+ pins = "gpio18", "gpio19";
+ function = "qup11";
+ };
+
+ qup_i2c12_data_clk: qup-i2c12-data-clk-state {
+ pins = "gpio0", "gpio1";
+ function = "qup12";
+ };
+
+ qup_i2c13_data_clk: qup-i2c13-data-clk-state {
+ pins = "gpio26", "gpio27";
+ function = "qup13";
+ };
+
+ qup_i2c14_data_clk: qup-i2c14-data-clk-state {
+ pins = "gpio4", "gpio5";
+ function = "qup14";
+ };
+
+ qup_i2c15_data_clk: qup-i2c15-data-clk-state {
+ pins = "gpio36", "gpio37";
+ function = "qup15";
+ };
+
+ qup_i2c16_data_clk: qup-i2c16-data-clk-state {
+ pins = "gpio70", "gpio71";
+ function = "qup16";
+ };
+
+ qup_i2c17_data_clk: qup-i2c17-data-clk-state {
+ pins = "gpio61", "gpio62";
+ function = "qup17";
+ };
+
+ qup_i2c18_data_clk: qup-i2c18-data-clk-state {
+ pins = "gpio66", "gpio67";
+ function = "qup18";
+ };
+
+ qup_i2c19_data_clk: qup-i2c19-data-clk-state {
+ pins = "gpio55", "gpio56";
+ function = "qup19";
+ };
+
+ qup_i2c20_data_clk: qup-i2c20-data-clk-state {
+ pins = "gpio87", "gpio88";
+ function = "qup20";
+ };
+
+ qup_i2c21_data_clk: qup-i2c21-data-clk-state {
+ pins = "gpio81", "gpio82";
+ function = "qup21";
+ };
+
+ qup_i2c22_data_clk: qup-i2c22-data-clk-state {
+ pins = "gpio85", "gpio86";
+ function = "qup22";
+ };
+
+ qup_i2c23_data_clk: qup-i2c23-data-clk-state {
+ pins = "gpio59", "gpio60";
+ function = "qup23";
+ };
+
+ qup_spi0_data_clk: qup-spi0-data-clk-state {
+ pins = "gpio135", "gpio136", "gpio137";
+ function = "qup0";
+ };
+
+ qup_spi0_cs: qup-spi0-cs-state {
+ pins = "gpio138";
+ function = "qup0";
+ };
+
+ qup_spi0_cs_gpio: qup-spi0-cs-gpio-state {
+ pins = "gpio138";
+ function = "gpio";
+ };
+
+ qup_spi1_data_clk: qup-spi1-data-clk-state {
+ pins = "gpio158", "gpio159", "gpio160";
+ function = "qup1";
+ };
+
+ qup_spi1_cs: qup-spi1-cs-state {
+ pins = "gpio161";
+ function = "qup1";
+ };
+
+ qup_spi1_cs_gpio: qup-spi1-cs-gpio-state {
+ pins = "gpio161";
+ function = "gpio";
+ };
+
+ qup_spi2_data_clk: qup-spi2-data-clk-state {
+ pins = "gpio121", "gpio122", "gpio123";
+ function = "qup2";
+ };
+
+ qup_spi2_cs: qup-spi2-cs-state {
+ pins = "gpio124";
+ function = "qup2";
+ };
+
+ qup_spi2_cs_gpio: qup-spi2-cs-gpio-state {
+ pins = "gpio124";
+ function = "gpio";
+ };
+
+ qup_spi3_data_clk: qup-spi3-data-clk-state {
+ pins = "gpio137", "gpio138", "gpio135";
+ function = "qup3";
+ };
+
+ qup_spi3_cs: qup-spi3-cs-state {
+ pins = "gpio136";
+ function = "qup3";
+ };
+
+ qup_spi3_cs_gpio: qup-spi3-cs-gpio-state {
+ pins = "gpio136";
+ function = "gpio";
+ };
+
+ qup_spi4_data_clk: qup-spi4-data-clk-state {
+ pins = "gpio171", "gpio172", "gpio173";
+ function = "qup4";
+ };
+
+ qup_spi4_cs: qup-spi4-cs-state {
+ pins = "gpio174";
+ function = "qup4";
+ };
+
+ qup_spi4_cs_gpio: qup-spi4-cs-gpio-state {
+ pins = "gpio174";
+ function = "gpio";
+ };
+
+ qup_spi5_data_clk: qup-spi5-data-clk-state {
+ pins = "gpio111", "gpio112", "gpio145";
+ function = "qup5";
+ };
+
+ qup_spi5_cs: qup-spi5-cs-state {
+ pins = "gpio146";
+ function = "qup5";
+ };
+
+ qup_spi5_cs_gpio: qup-spi5-cs-gpio-state {
+ pins = "gpio146";
+ function = "gpio";
+ };
+
+ qup_spi6_data_clk: qup-spi6-data-clk-state {
+ pins = "gpio154", "gpio155", "gpio156";
+ function = "qup6";
+ };
+
+ qup_spi6_cs: qup-spi6-cs-state {
+ pins = "gpio157";
+ function = "qup6";
+ };
+
+ qup_spi6_cs_gpio: qup-spi6-cs-gpio-state {
+ pins = "gpio157";
+ function = "gpio";
+ };
+
+ qup_spi7_data_clk: qup-spi7-data-clk-state {
+ pins = "gpio128", "gpio129", "gpio125";
+ function = "qup7";
+ };
+
+ qup_spi7_cs: qup-spi7-cs-state {
+ pins = "gpio126";
+ function = "qup7";
+ };
+
+ qup_spi7_cs_gpio: qup-spi7-cs-gpio-state {
+ pins = "gpio126";
+ function = "gpio";
+ };
+
+ qup_spi8_data_clk: qup-spi8-data-clk-state {
+ pins = "gpio43", "gpio44", "gpio45";
+ function = "qup8";
+ };
+
+ qup_spi8_cs: qup-spi8-cs-state {
+ pins = "gpio46";
+ function = "qup8";
+ };
+
+ qup_spi8_cs_gpio: qup-spi8-cs-gpio-state {
+ pins = "gpio46";
+ function = "gpio";
+ };
+
+ qup_spi9_data_clk: qup-spi9-data-clk-state {
+ pins = "gpio41", "gpio42", "gpio43";
+ function = "qup9";
+ };
+
+ qup_spi9_cs: qup-spi9-cs-state {
+ pins = "gpio44";
+ function = "qup9";
+ };
+
+ qup_spi9_cs_gpio: qup-spi9-cs-gpio-state {
+ pins = "gpio44";
+ function = "gpio";
+ };
+
+ qup_spi10_data_clk: qup-spi10-data-clk-state {
+ pins = "gpio22", "gpio23", "gpio24";
+ function = "qup10";
+ };
+
+ qup_spi10_cs: qup-spi10-cs-state {
+ pins = "gpio25";
+ function = "qup10";
+ };
+
+ qup_spi10_cs_gpio: qup-spi10-cs-gpio-state {
+ pins = "gpio25";
+ function = "gpio";
+ };
+
+ qup_spi11_data_clk: qup-spi11-data-clk-state {
+ pins = "gpio18", "gpio19", "gpio20";
+ function = "qup11";
+ };
+
+ qup_spi11_cs: qup-spi11-cs-state {
+ pins = "gpio21";
+ function = "qup11";
+ };
+
+ qup_spi11_cs_gpio: qup-spi11-cs-gpio-state {
+ pins = "gpio21";
+ function = "gpio";
+ };
+
+ qup_spi12_data_clk: qup-spi12-data-clk-state {
+ pins = "gpio0", "gpio1", "gpio2";
+ function = "qup12";
+ };
+
+ qup_spi12_cs: qup-spi12-cs-state {
+ pins = "gpio3";
+ function = "qup12";
+ };
+
+ qup_spi12_cs_gpio: qup-spi12-cs-gpio-state {
+ pins = "gpio3";
+ function = "gpio";
+ };
+
+ qup_spi13_data_clk: qup-spi13-data-clk-state {
+ pins = "gpio26", "gpio27", "gpio28";
+ function = "qup13";
+ };
+
+ qup_spi13_cs: qup-spi13-cs-state {
+ pins = "gpio29";
+ function = "qup13";
+ };
+
+ qup_spi13_cs_gpio: qup-spi13-cs-gpio-state {
+ pins = "gpio29";
+ function = "gpio";
+ };
+
+ qup_spi14_data_clk: qup-spi14-data-clk-state {
+ pins = "gpio4", "gpio5", "gpio6";
+ function = "qup14";
+ };
+
+ qup_spi14_cs: qup-spi14-cs-state {
+ pins = "gpio7";
+ function = "qup14";
+ };
+
+ qup_spi14_cs_gpio: qup-spi14-cs-gpio-state {
+ pins = "gpio7";
+ function = "gpio";
+ };
+
+ qup_spi15_data_clk: qup-spi15-data-clk-state {
+ pins = "gpio36", "gpio37", "gpio38";
+ function = "qup15";
+ };
+
+ qup_spi15_cs: qup-spi15-cs-state {
+ pins = "gpio39";
+ function = "qup15";
+ };
+
+ qup_spi15_cs_gpio: qup-spi15-cs-gpio-state {
+ pins = "gpio39";
+ function = "gpio";
+ };
+
+ qup_spi16_data_clk: qup-spi16-data-clk-state {
+ pins = "gpio70", "gpio71", "gpio72";
+ function = "qup16";
+ };
+
+ qup_spi16_cs: qup-spi16-cs-state {
+ pins = "gpio73";
+ function = "qup16";
+ };
+
+ qup_spi16_cs_gpio: qup-spi16-cs-gpio-state {
+ pins = "gpio73";
+ function = "gpio";
+ };
+
+ qup_spi17_data_clk: qup-spi17-data-clk-state {
+ pins = "gpio61", "gpio62", "gpio63";
+ function = "qup17";
+ };
+
+ qup_spi17_cs: qup-spi17-cs-state {
+ pins = "gpio64";
+ function = "qup17";
+ };
+
+ qup_spi17_cs_gpio: qup-spi17-cs-gpio-state {
+ pins = "gpio64";
+ function = "gpio";
+ };
+
+ qup_spi18_data_clk: qup-spi18-data-clk-state {
+ pins = "gpio66", "gpio67", "gpio68";
+ function = "qup18";
+ };
+
+ qup_spi18_cs: qup-spi18-cs-state {
+ pins = "gpio69";
+ function = "qup18";
+ };
+
+ qup_spi18_cs_gpio: qup-spi18-cs-gpio-state {
+ pins = "gpio69";
+ function = "gpio";
+ };
+
+ qup_spi19_data_clk: qup-spi19-data-clk-state {
+ pins = "gpio55", "gpio56", "gpio57";
+ function = "qup19";
+ };
+
+ qup_spi19_cs: qup-spi19-cs-state {
+ pins = "gpio58";
+ function = "qup19";
+ };
+
+ qup_spi19_cs_gpio: qup-spi19-cs-gpio-state {
+ pins = "gpio58";
+ function = "gpio";
+ };
+
+ qup_spi20_data_clk: qup-spi20-data-clk-state {
+ pins = "gpio87", "gpio88", "gpio89";
+ function = "qup20";
+ };
+
+ qup_spi20_cs: qup-spi20-cs-state {
+ pins = "gpio90";
+ function = "qup20";
+ };
+
+ qup_spi20_cs_gpio: qup-spi20-cs-gpio-state {
+ pins = "gpio90";
+ function = "gpio";
+ };
+
+ qup_spi21_data_clk: qup-spi21-data-clk-state {
+ pins = "gpio81", "gpio82", "gpio83";
+ function = "qup21";
+ };
+
+ qup_spi21_cs: qup-spi21-cs-state {
+ pins = "gpio84";
+ function = "qup21";
+ };
+
+ qup_spi21_cs_gpio: qup-spi21-cs-gpio-state {
+ pins = "gpio84";
+ function = "gpio";
+ };
+
+ qup_spi22_data_clk: qup-spi22-data-clk-state {
+ pins = "gpio85", "gpio86", "gpio83";
+ function = "qup22";
+ };
+
+ qup_spi22_cs: qup-spi22-cs-state {
+ pins = "gpio84";
+ function = "qup22";
+ };
+
+ qup_spi22_cs_gpio: qup-spi22-cs-gpio-state {
+ pins = "gpio84";
+ function = "gpio";
+ };
+
+ qup_spi23_data_clk: qup-spi23-data-clk-state {
+ pins = "gpio59", "gpio60", "gpio61";
+ function = "qup23";
+ };
+
+ qup_spi23_cs: qup-spi23-cs-state {
+ pins = "gpio62";
+ function = "qup23";
+ };
+
+ qup_spi23_cs_gpio: qup-spi23-cs-gpio-state {
+ pins = "gpio62";
+ function = "gpio";
+ };
+
+ qup_uart0_default: qup-uart0-default-state {
+ cts-pins {
+ pins = "gpio135";
+ function = "qup0";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio136";
+ function = "qup0";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio137";
+ function = "qup0";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio138";
+ function = "qup0";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart1_default: qup-uart1-default-state {
+ cts-pins {
+ pins = "gpio158";
+ function = "qup1";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio159";
+ function = "qup1";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio160";
+ function = "qup1";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio161";
+ function = "qup1";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart2_default: qup-uart2-default-state {
+ cts-pins {
+ pins = "gpio121";
+ function = "qup2";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio122";
+ function = "qup2";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio123";
+ function = "qup2";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio124";
+ function = "qup2";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart3_default: qup-uart3-default-state {
+ cts-pins {
+ pins = "gpio137";
+ function = "qup3";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio138";
+ function = "qup3";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio135";
+ function = "qup3";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio136";
+ function = "qup3";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart4_default: qup-uart4-default-state {
+ cts-pins {
+ pins = "gpio171";
+ function = "qup4";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio172";
+ function = "qup4";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio173";
+ function = "qup4";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio174";
+ function = "qup4";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart5_default: qup-uart5-default-state {
+ cts-pins {
+ pins = "gpio111";
+ function = "qup5";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio112";
+ function = "qup5";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio145";
+ function = "qup5";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio146";
+ function = "qup5";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart6_default: qup-uart6-default-state {
+ cts-pins {
+ pins = "gpio154";
+ function = "qup6";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio155";
+ function = "qup6";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio156";
+ function = "qup6";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio157";
+ function = "qup6";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart7_default: qup-uart7-default-state {
+ cts-pins {
+ pins = "gpio128";
+ function = "qup7";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio129";
+ function = "qup7";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio125";
+ function = "qup7";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio126";
+ function = "qup7";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart8_default: qup-uart8-default-state {
cts-pins {
- pins = "gpio66";
- function = "qup18";
+ pins = "gpio43";
+ function = "qup8";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio44";
+ function = "qup8";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio45";
+ function = "qup8";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio46";
+ function = "qup8";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart9_default: qup-uart9-default-state {
+ cts-pins {
+ pins = "gpio41";
+ function = "qup9";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio42";
+ function = "qup9";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio43";
+ function = "qup9";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio44";
+ function = "qup9";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart10_default: qup-uart10-default-state {
+ cts-pins {
+ pins = "gpio22";
+ function = "qup10";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio23";
+ function = "qup10";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio24";
+ function = "qup10";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio25";
+ function = "qup10";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart11_default: qup-uart11-default-state {
+ cts-pins {
+ pins = "gpio18";
+ function = "qup11";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio19";
+ function = "qup11";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio20";
+ function = "qup11";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio21";
+ function = "qup11";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart12_default: qup-uart12-default-state {
+ cts-pins {
+ pins = "gpio0";
+ function = "qup12";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio1";
+ function = "qup12";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio2";
+ function = "qup12";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio3";
+ function = "qup12";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart13_default: qup-uart13-default-state {
+ cts-pins {
+ pins = "gpio26";
+ function = "qup13";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio27";
+ function = "qup13";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio28";
+ function = "qup13";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio29";
+ function = "qup13";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart14_default: qup-uart14-default-state {
+ cts-pins {
+ pins = "gpio4";
+ function = "qup14";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio5";
+ function = "qup14";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio6";
+ function = "qup14";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio7";
+ function = "qup14";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart15_default: qup-uart15-default-state {
+ cts-pins {
+ pins = "gpio36";
+ function = "qup15";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio37";
+ function = "qup15";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio38";
+ function = "qup15";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio39";
+ function = "qup15";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart16_default: qup-uart16-default-state {
+ cts-pins {
+ pins = "gpio70";
+ function = "qup16";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio71";
+ function = "qup16";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio72";
+ function = "qup16";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio73";
+ function = "qup16";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart17_default: qup-uart17-default-state {
+ cts-pins {
+ pins = "gpio61";
+ function = "qup17";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio62";
+ function = "qup17";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio63";
+ function = "qup17";
drive-strength = <2>;
bias-disable;
};
+ rx-pins {
+ pins = "gpio64";
+ function = "qup17";
+ bias-pull-up;
+ };
+ };
+ qup_uart18_default: qup-uart18-default-state {
+ cts-pins {
+ pins = "gpio66";
+ function = "qup18";
+ bias-bus-hold;
+ };
rts-pins {
pins = "gpio67";
function = "qup18";
drive-strength = <2>;
bias-disable;
};
-
tx-pins {
pins = "gpio68";
function = "qup18";
drive-strength = <2>;
bias-disable;
};
-
rx-pins {
pins = "gpio69";
function = "qup18";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart19_default: qup-uart19-default-state {
+ cts-pins {
+ pins = "gpio55";
+ function = "qup19";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio56";
+ function = "qup19";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio57";
+ function = "qup19";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio58";
+ function = "qup19";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart20_default: qup-uart20-default-state {
+ cts-pins {
+ pins = "gpio87";
+ function = "qup20";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio88";
+ function = "qup20";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio89";
+ function = "qup20";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio90";
+ function = "qup20";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart21_default: qup-uart21-default-state {
+ cts-pins {
+ pins = "gpio81";
+ function = "qup21";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio82";
+ function = "qup21";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio83";
+ function = "qup21";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio84";
+ function = "qup21";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart22_default: qup-uart22-default-state {
+ cts-pins {
+ pins = "gpio85";
+ function = "qup22";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio86";
+ function = "qup22";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio83";
+ function = "qup22";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ rx-pins {
+ pins = "gpio84";
+ function = "qup22";
+ bias-pull-up;
+ };
+ };
+
+ qup_uart23_default: qup-uart23-default-state {
+ cts-pins {
+ pins = "gpio59";
+ function = "qup23";
+ bias-bus-hold;
+ };
+ rts-pins {
+ pins = "gpio60";
+ function = "qup23";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ tx-pins {
+ pins = "gpio61";
+ function = "qup23";
drive-strength = <2>;
bias-disable;
};
+ rx-pins {
+ pins = "gpio62";
+ function = "qup23";
+ bias-pull-up;
+ };
};
};
---
base-commit: e30626823a406725ce29bc75cb8ec467d3e1e326
change-id: 20260507-sc8280xp-qup-pinctrl-5ab8af9be35f
Best regards,
--
Xilin Wu <sophon@radxa.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sc8280xp: add missing QUP pinctrl states
2026-08-31 9:55 [PATCH v2] arm64: dts: qcom: sc8280xp: add missing QUP pinctrl states Xilin Wu
@ 2026-10-15 12:18 ` Konrad Dybcio
2026-10-15 13:30 ` Xilin Wu
0 siblings, 1 reply; 3+ messages in thread
From: Konrad Dybcio @ 2026-10-15 12:18 UTC (permalink / raw)
To: Xilin Wu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 8/31/26 11:55 AM, Xilin Wu wrote:
> Add the missing tlmm pinctrl states for the SC8280XP QUP engines so common
> I2C, SPI and UART pinmux definitions are available from the SoC dtsi.
> Populate all 24 engines using the SC8280XP lane-to-GPIO mapping, including
> the non-linear QUP instances, and keep the mux function names aligned with
> the driver-supported qup0..qup23 names.
[...]
> + qup_uart0_default: qup-uart0-default-state {
> + cts-pins {
> + pins = "gpio135";
> + function = "qup0";
> + bias-bus-hold;
> + };
> + rts-pins {
Please keep a \n between each subnode, there's a new tool in town
that will be very grumpy if you don't:
https://lore.kernel.org/linux-arm-msm/cover.1790892852.git.waqar.hameed@axis.com/
https://lore.kernel.org/linux-arm-msm/e869c2bb5005830c9ac1d4bf998696ffc4eed335.1790892852.git.waqar.hameed@axis.com/
with that:
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sc8280xp: add missing QUP pinctrl states
2026-10-15 12:18 ` Konrad Dybcio
@ 2026-10-15 13:30 ` Xilin Wu
0 siblings, 0 replies; 3+ messages in thread
From: Xilin Wu @ 2026-10-15 13:30 UTC (permalink / raw)
To: Konrad Dybcio, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 10/15/2026 8:18 PM, Konrad Dybcio wrote:
> On 8/31/26 11:55 AM, Xilin Wu wrote:
>> Add the missing tlmm pinctrl states for the SC8280XP QUP engines so common
>> I2C, SPI and UART pinmux definitions are available from the SoC dtsi.
>> Populate all 24 engines using the SC8280XP lane-to-GPIO mapping, including
>> the non-linear QUP instances, and keep the mux function names aligned with
>> the driver-supported qup0..qup23 names.
>
> [...]
>
>> + qup_uart0_default: qup-uart0-default-state {
>> + cts-pins {
>> + pins = "gpio135";
>> + function = "qup0";
>> + bias-bus-hold;
>> + };
>> + rts-pins {
>
> Please keep a \n between each subnode, there's a new tool in town
> that will be very grumpy if you don't:
>
> https://lore.kernel.org/linux-arm-msm/cover.1790892852.git.waqar.hameed@axis.com/
>
> https://lore.kernel.org/linux-arm-msm/e869c2bb5005830c9ac1d4bf998696ffc4eed335.1790892852.git.waqar.hameed@axis.com/
Cool! Thanks for the pointers.
>
> with that:
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>
> Konrad
--
Best regards,
Xilin Wu <sophon@radxa.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-15 13:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-31 9:55 [PATCH v2] arm64: dts: qcom: sc8280xp: add missing QUP pinctrl states Xilin Wu
2026-10-15 12:18 ` Konrad Dybcio
2026-10-15 13:30 ` Xilin Wu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®