[PATCH 1/2] arm64: dts: qcom: lemans-evk: Enable GPIO expander3 interrupt for Lemans EVK

Swati Agarwal posted 2 patches 3 days, 4 hours ago
[PATCH 1/2] arm64: dts: qcom: lemans-evk: Enable GPIO expander3 interrupt for Lemans EVK
Posted by Swati Agarwal 3 days, 4 hours ago
Enable PCA9538 expander3 as interrupt controller on Lemans EVK and
configures the corresponding TLMM pins via pinctrl to operate as GPIO
inputs with internal pull-ups.

Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/lemans-evk.dts | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
index a549f7fe53a1..473cc2a81670 100644
--- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
+++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
@@ -649,6 +649,12 @@ expander3: gpio@3b {
 		reg = <0x3b>;
 		#gpio-cells = <2>;
 		gpio-controller;
+		#interrupt-cells = <2>;
+		interrupt-controller;
+		interrupt-parent = <&tlmm>;
+		interrupts = <39 IRQ_TYPE_LEVEL_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&expander3_int>;
 	};
 
 	eeprom@50 {
@@ -894,6 +900,13 @@ ethernet0_mdio: ethernet0-mdio-pins {
 		};
 	};
 
+	expander3_int: expander3-int-state {
+		pins = "gpio39";
+		function = "gpio";
+		input-enable;
+		bias-pull-up;
+	};
+
 	pcie0_default_state: pcie0-default-state {
 		clkreq-pins {
 			pins = "gpio1";
-- 
2.34.1
Re: [PATCH 1/2] arm64: dts: qcom: lemans-evk: Enable GPIO expander3 interrupt for Lemans EVK
Posted by Dmitry Baryshkov 3 days, 3 hours ago
On Fri, Feb 06, 2026 at 04:16:41PM +0530, Swati Agarwal wrote:
> Enable PCA9538 expander3 as interrupt controller on Lemans EVK and
> configures the corresponding TLMM pins via pinctrl to operate as GPIO
> inputs with internal pull-ups.
> 
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/lemans-evk.dts | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index a549f7fe53a1..473cc2a81670 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -649,6 +649,12 @@ expander3: gpio@3b {
>  		reg = <0x3b>;
>  		#gpio-cells = <2>;
>  		gpio-controller;
> +		#interrupt-cells = <2>;
> +		interrupt-controller;
> +		interrupt-parent = <&tlmm>;
> +		interrupts = <39 IRQ_TYPE_LEVEL_LOW>;

interrupts-extended, please.

> +		pinctrl-names = "default";
> +		pinctrl-0 = <&expander3_int>;
>  	};
>  
>  	eeprom@50 {

-- 
With best wishes
Dmitry
Re: [PATCH 1/2] arm64: dts: qcom: lemans-evk: Enable GPIO expander3 interrupt for Lemans EVK
Posted by Konrad Dybcio 3 days, 3 hours ago
On 2/6/26 1:12 PM, Dmitry Baryshkov wrote:
> On Fri, Feb 06, 2026 at 04:16:41PM +0530, Swati Agarwal wrote:
>> Enable PCA9538 expander3 as interrupt controller on Lemans EVK and
>> configures the corresponding TLMM pins via pinctrl to operate as GPIO
>> inputs with internal pull-ups.
>>
>> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
>> ---
>>  arch/arm64/boot/dts/qcom/lemans-evk.dts | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> index a549f7fe53a1..473cc2a81670 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> @@ -649,6 +649,12 @@ expander3: gpio@3b {
>>  		reg = <0x3b>;
>>  		#gpio-cells = <2>;
>>  		gpio-controller;
>> +		#interrupt-cells = <2>;
>> +		interrupt-controller;
>> +		interrupt-parent = <&tlmm>;
>> +		interrupts = <39 IRQ_TYPE_LEVEL_LOW>;
> 
> interrupts-extended, please.

I think interrupt-parent makes sense for a child that's also an
interrupt provider, IDK if interrupt-extended maintains the
topology

Konrad
Re: [PATCH 1/2] arm64: dts: qcom: lemans-evk: Enable GPIO expander3 interrupt for Lemans EVK
Posted by Konrad Dybcio 3 days, 4 hours ago
On 2/6/26 11:46 AM, Swati Agarwal wrote:
> Enable PCA9538 expander3 as interrupt controller on Lemans EVK and
> configures the corresponding TLMM pins via pinctrl to operate as GPIO
> inputs with internal pull-ups.
> 
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/lemans-evk.dts | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index a549f7fe53a1..473cc2a81670 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -649,6 +649,12 @@ expander3: gpio@3b {
>  		reg = <0x3b>;
>  		#gpio-cells = <2>;
>  		gpio-controller;
> +		#interrupt-cells = <2>;
> +		interrupt-controller;
> +		interrupt-parent = <&tlmm>;
> +		interrupts = <39 IRQ_TYPE_LEVEL_LOW>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&expander3_int>;

property-n
property-names

in this order, please

Could you wire up the interrupts from other expanders while at it?

>  	};
>  
>  	eeprom@50 {
> @@ -894,6 +900,13 @@ ethernet0_mdio: ethernet0-mdio-pins {
>  		};
>  	};
>  
> +	expander3_int: expander3-int-state {
> +		pins = "gpio39";
> +		function = "gpio";
> +		input-enable;

input-enable is not allowed for TLMM GPIOs, please make sure to run "make dtbs_check"
(or at least make [...] CHECK_DTBS=1 qcom/lemans-evk.dtb) before submitting

Konrad