* [PATCH v2 1/3] arm64: dts: qcom: monaco-evk: Enable GPIO expander interrupt for Monaco EVK
2026-03-03 8:21 [PATCH v2 0/3] Enable secondary USB controller in OTG mode Swati Agarwal
@ 2026-03-03 8:21 ` Swati Agarwal
2026-03-03 9:59 ` Konrad Dybcio
2026-03-03 8:21 ` [PATCH v2 2/3] arm64: dts: qcom: monaco: Add role-switch support and HS endpoint for secondary USB controller Swati Agarwal
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Swati Agarwal @ 2026-03-03 8:21 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Swati Agarwal
Enable PCA9538 expander as interrupt controller on Monaco EVK and configure
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/monaco-evk.dts | 77 +++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk.dts b/arch/arm64/boot/dts/qcom/monaco-evk.dts
index 565418b86b2a..03af9bbcacc9 100644
--- a/arch/arm64/boot/dts/qcom/monaco-evk.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-evk.dts
@@ -362,6 +362,11 @@ expander0: gpio@38 {
reg = <0x38>;
#gpio-cells = <2>;
gpio-controller;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupts-extended = <&tlmm 56 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&expander0_int>;
+ pinctrl-names = "default";
};
expander1: gpio@39 {
@@ -369,6 +374,11 @@ expander1: gpio@39 {
reg = <0x39>;
#gpio-cells = <2>;
gpio-controller;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupts-extended = <&tlmm 16 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&expander1_int>;
+ pinctrl-names = "default";
};
expander2: gpio@3a {
@@ -376,6 +386,11 @@ expander2: gpio@3a {
reg = <0x3a>;
#gpio-cells = <2>;
gpio-controller;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupts-extended = <&tlmm 95 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&expander2_int>;
+ pinctrl-names = "default";
};
expander3: gpio@3b {
@@ -383,6 +398,11 @@ expander3: gpio@3b {
reg = <0x3b>;
#gpio-cells = <2>;
gpio-controller;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupts-extended = <&tlmm 24 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&expander3_int>;
+ pinctrl-names = "default";
};
expander4: gpio@3c {
@@ -390,6 +410,11 @@ expander4: gpio@3c {
reg = <0x3c>;
#gpio-cells = <2>;
gpio-controller;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupts-extended = <&tlmm 96 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&expander4_int>;
+ pinctrl-names = "default";
};
expander5: gpio@3d {
@@ -397,6 +422,11 @@ expander5: gpio@3d {
reg = <0x3d>;
#gpio-cells = <2>;
gpio-controller;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&expander5_int>;
+ pinctrl-names = "default";
};
expander6: gpio@3e {
@@ -404,6 +434,11 @@ expander6: gpio@3e {
reg = <0x3e>;
#gpio-cells = <2>;
gpio-controller;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupts-extended = <&tlmm 52 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&expander6_int>;
+ pinctrl-names = "default";
};
};
@@ -495,6 +530,48 @@ tpm@0 {
&tlmm {
+ expander0_int: expander0-int-state {
+ pins = "gpio56";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ expander1_int: expander1-int-state {
+ pins = "gpio16";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ expander2_int: expander2-int-state {
+ pins = "gpio95";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ expander3_int: expander3-int-state {
+ pins = "gpio24";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ expander4_int: expander4-int-state {
+ pins = "gpio96";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ expander5_int: expander5-int-state {
+ pins = "gpio3";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ expander6_int: expander6-int-state {
+ pins = "gpio52";
+ function = "gpio";
+ bias-pull-up;
+ };
+
pcie0_default_state: pcie0-default-state {
wake-pins {
pins = "gpio0";
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v2 1/3] arm64: dts: qcom: monaco-evk: Enable GPIO expander interrupt for Monaco EVK
2026-03-03 8:21 ` [PATCH v2 1/3] arm64: dts: qcom: monaco-evk: Enable GPIO expander interrupt for Monaco EVK Swati Agarwal
@ 2026-03-03 9:59 ` Konrad Dybcio
2026-03-06 10:04 ` Swati Agarwal
0 siblings, 1 reply; 11+ messages in thread
From: Konrad Dybcio @ 2026-03-03 9:59 UTC (permalink / raw)
To: Swati Agarwal, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 3/3/26 9:21 AM, Swati Agarwal wrote:
> Enable PCA9538 expander as interrupt controller on Monaco EVK and configure
> 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>
> ---
[...]
> &tlmm {
>
> +
Stray \n above
expander0_int: expander0-int-state {
> + pins = "gpio56";
The TLMM entries are currently ordered by the pin index - please retain
that.
Otherwise, this looks good
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v2 1/3] arm64: dts: qcom: monaco-evk: Enable GPIO expander interrupt for Monaco EVK
2026-03-03 9:59 ` Konrad Dybcio
@ 2026-03-06 10:04 ` Swati Agarwal
0 siblings, 0 replies; 11+ messages in thread
From: Swati Agarwal @ 2026-03-06 10:04 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel
On Tue, Mar 3, 2026 at 3:29 PM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 3/3/26 9:21 AM, Swati Agarwal wrote:
> > Enable PCA9538 expander as interrupt controller on Monaco EVK and configure
> > 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>
> > ---
>
> [...]
>
> > &tlmm {
> >
> > +
> Stray \n above
>
> expander0_int: expander0-int-state {
> > + pins = "gpio56";
>
> The TLMM entries are currently ordered by the pin index - please retain
> that.
Hi Konrad,
Do you want me to sort expander_int as per pin number and not as per
expander0_int and expander1_int.
For eg:- expander5-int-state(gpio3) followed by expander1_int(gpio16).
Regards,
Swati
>
> Otherwise, this looks good
>
> Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 2/3] arm64: dts: qcom: monaco: Add role-switch support and HS endpoint for secondary USB controller
2026-03-03 8:21 [PATCH v2 0/3] Enable secondary USB controller in OTG mode Swati Agarwal
2026-03-03 8:21 ` [PATCH v2 1/3] arm64: dts: qcom: monaco-evk: Enable GPIO expander interrupt for Monaco EVK Swati Agarwal
@ 2026-03-03 8:21 ` Swati Agarwal
2026-03-03 10:00 ` Konrad Dybcio
2026-03-04 3:57 ` Dmitry Baryshkov
2026-03-03 8:21 ` [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Enable the " Swati Agarwal
2026-03-10 2:45 ` [PATCH v2 0/3] Enable secondary USB controller in OTG mode Bjorn Andersson
3 siblings, 2 replies; 11+ messages in thread
From: Swati Agarwal @ 2026-03-03 8:21 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Swati Agarwal
Enable usb-role-switch for the secondary HS USB controller on Monaco.
Additionally, add a port node with an HS endpoint so the controller can be
linked through the DT graph to the corresponding connector.
Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index 5d2df4305d1c..59dfacbae4f6 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -5232,7 +5232,14 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
qcom,select-utmi-as-pipe-clk;
wakeup-source;
+ usb-role-switch;
+
status = "disabled";
+
+ port {
+ usb_2_dwc3_hs: endpoint {
+ };
+ };
};
iris: video-codec@aa00000 {
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v2 2/3] arm64: dts: qcom: monaco: Add role-switch support and HS endpoint for secondary USB controller
2026-03-03 8:21 ` [PATCH v2 2/3] arm64: dts: qcom: monaco: Add role-switch support and HS endpoint for secondary USB controller Swati Agarwal
@ 2026-03-03 10:00 ` Konrad Dybcio
2026-03-04 3:57 ` Dmitry Baryshkov
1 sibling, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2026-03-03 10:00 UTC (permalink / raw)
To: Swati Agarwal, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 3/3/26 9:21 AM, Swati Agarwal wrote:
> Enable usb-role-switch for the secondary HS USB controller on Monaco.
>
> Additionally, add a port node with an HS endpoint so the controller can be
> linked through the DT graph to the corresponding connector.
>
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/3] arm64: dts: qcom: monaco: Add role-switch support and HS endpoint for secondary USB controller
2026-03-03 8:21 ` [PATCH v2 2/3] arm64: dts: qcom: monaco: Add role-switch support and HS endpoint for secondary USB controller Swati Agarwal
2026-03-03 10:00 ` Konrad Dybcio
@ 2026-03-04 3:57 ` Dmitry Baryshkov
1 sibling, 0 replies; 11+ messages in thread
From: Dmitry Baryshkov @ 2026-03-04 3:57 UTC (permalink / raw)
To: Swati Agarwal
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel
On Tue, Mar 03, 2026 at 01:51:56PM +0530, Swati Agarwal wrote:
> Enable usb-role-switch for the secondary HS USB controller on Monaco.
>
> Additionally, add a port node with an HS endpoint so the controller can be
> linked through the DT graph to the corresponding connector.
>
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/monaco.dtsi | 7 +++++++
> 1 file changed, 7 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Enable the secondary USB controller
2026-03-03 8:21 [PATCH v2 0/3] Enable secondary USB controller in OTG mode Swati Agarwal
2026-03-03 8:21 ` [PATCH v2 1/3] arm64: dts: qcom: monaco-evk: Enable GPIO expander interrupt for Monaco EVK Swati Agarwal
2026-03-03 8:21 ` [PATCH v2 2/3] arm64: dts: qcom: monaco: Add role-switch support and HS endpoint for secondary USB controller Swati Agarwal
@ 2026-03-03 8:21 ` Swati Agarwal
2026-03-03 10:00 ` Konrad Dybcio
2026-03-04 4:17 ` Dmitry Baryshkov
2026-03-10 2:45 ` [PATCH v2 0/3] Enable secondary USB controller in OTG mode Bjorn Andersson
3 siblings, 2 replies; 11+ messages in thread
From: Swati Agarwal @ 2026-03-03 8:21 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Swati Agarwal
Enable the secondary USB controller connected to micro usb port in OTG mode
on Monaco EVK platform.
Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco-evk.dts | 54 +++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk.dts b/arch/arm64/boot/dts/qcom/monaco-evk.dts
index 03af9bbcacc9..bc75bdd1281b 100644
--- a/arch/arm64/boot/dts/qcom/monaco-evk.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-evk.dts
@@ -27,6 +27,25 @@ chosen {
stdout-path = "serial0:115200n8";
};
+ connector-2 {
+ compatible = "gpio-usb-b-connector", "usb-b-connector";
+ label = "micro-USB";
+ type = "micro";
+
+ id-gpios = <&pmm8620au_0_gpios 9 GPIO_ACTIVE_HIGH>;
+ vbus-gpios = <&expander6 7 GPIO_ACTIVE_HIGH>;
+ vbus-supply = <&usb2_vbus>;
+
+ pinctrl-0 = <&usb2_id>;
+ pinctrl-names = "default";
+
+ port {
+ usb2_con_hs_ep: endpoint {
+ remote-endpoint = <&usb_2_dwc3_hs>;
+ };
+ };
+ };
+
dmic: audio-codec-0 {
compatible = "dmic-codec";
#sound-dai-cells = <0>;
@@ -77,6 +96,15 @@ platform {
};
};
};
+
+ usb2_vbus: regulator-usb2-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "usb2_vbus";
+ gpio = <&pmm8650au_1_gpios 7 GPIO_ACTIVE_HIGH>;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ };
};
&apps_rsc {
@@ -484,6 +512,16 @@ &pcieport1 {
wake-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
};
+&pmm8620au_0_gpios {
+ usb2_id: usb2-id-state {
+ pins = "gpio9";
+ function = "normal";
+ input-enable;
+ bias-pull-up;
+ power-source = <0>;
+ };
+};
+
&qupv3_id_0 {
firmware-name = "qcom/qcs8300/qupv3fw.elf";
status = "okay";
@@ -690,3 +728,19 @@ &usb_qmpphy {
status = "okay";
};
+
+&usb_2 {
+ status = "okay";
+};
+
+&usb_2_dwc3_hs {
+ remote-endpoint = <&usb2_con_hs_ep>;
+};
+
+&usb_2_hsphy {
+ vdda-pll-supply = <&vreg_l7a>;
+ vdda18-supply = <&vreg_l7c>;
+ vdda33-supply = <&vreg_l9a>;
+
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Enable the secondary USB controller
2026-03-03 8:21 ` [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Enable the " Swati Agarwal
@ 2026-03-03 10:00 ` Konrad Dybcio
2026-03-04 4:17 ` Dmitry Baryshkov
1 sibling, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2026-03-03 10:00 UTC (permalink / raw)
To: Swati Agarwal, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 3/3/26 9:21 AM, Swati Agarwal wrote:
> Enable the secondary USB controller connected to micro usb port in OTG mode
> on Monaco EVK platform.
>
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Enable the secondary USB controller
2026-03-03 8:21 ` [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Enable the " Swati Agarwal
2026-03-03 10:00 ` Konrad Dybcio
@ 2026-03-04 4:17 ` Dmitry Baryshkov
1 sibling, 0 replies; 11+ messages in thread
From: Dmitry Baryshkov @ 2026-03-04 4:17 UTC (permalink / raw)
To: Swati Agarwal
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel
On Tue, Mar 03, 2026 at 01:51:57PM +0530, Swati Agarwal wrote:
> Enable the secondary USB controller connected to micro usb port in OTG mode
> on Monaco EVK platform.
>
> Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/monaco-evk.dts | 54 +++++++++++++++++++++++++
> 1 file changed, 54 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 0/3] Enable secondary USB controller in OTG mode
2026-03-03 8:21 [PATCH v2 0/3] Enable secondary USB controller in OTG mode Swati Agarwal
` (2 preceding siblings ...)
2026-03-03 8:21 ` [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Enable the " Swati Agarwal
@ 2026-03-10 2:45 ` Bjorn Andersson
3 siblings, 0 replies; 11+ messages in thread
From: Bjorn Andersson @ 2026-03-10 2:45 UTC (permalink / raw)
To: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Swati Agarwal
Cc: linux-arm-msm, devicetree, linux-kernel
On Tue, 03 Mar 2026 13:51:54 +0530, Swati Agarwal wrote:
> Enable secondary USB controller in OTG mode on monaco EVK platform.
>
> Changes in v2:
> Separate patches for Monaco and Monaco-evk.
> Minor formatting changes.
>
> Link to v1:
> https://lore.kernel.org/all/20260210155329.3044455-1-swati.agarwal@oss.qualcomm.com/
>
> [...]
Applied, thanks!
[1/3] arm64: dts: qcom: monaco-evk: Enable GPIO expander interrupt for Monaco EVK
commit: d99862e7103986b98ed0b79e3527af0e7bc516ef
[2/3] arm64: dts: qcom: monaco: Add role-switch support and HS endpoint for secondary USB controller
commit: d2b1f221088d3ba1c365ea9af1e7ebe20c34a3a5
[3/3] arm64: dts: qcom: monaco-evk: Enable the secondary USB controller
commit: 8eb46e0a7a1074342b3aab75a48783cd488f56e1
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 11+ messages in thread