Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Elson Serrao <elson.serrao@oss.qualcomm.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Souradeep Chowdhury <quic_schowdhu@quicinc.com>
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH RFC v3 08/10] usb: dwc3: qcom: notify EUD driver of role changes
Date: Mon,  9 Mar 2026 13:33:35 -0700	[thread overview]
Message-ID: <20260309203337.803986-9-elson.serrao@oss.qualcomm.com> (raw)
In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com>

The EUD driver needs USB role information to control its operation as
it is incompatible with host mode. Notify the EUD driver when role
changes occur so it can manage its state accordingly.

Signed-off-by: Elson Serrao <elson.serrao@oss.qualcomm.com>
---
 drivers/usb/dwc3/Kconfig     |  1 +
 drivers/usb/dwc3/dwc3-qcom.c | 10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
index 240b15bc52cb..1a2d7c883b50 100644
--- a/drivers/usb/dwc3/Kconfig
+++ b/drivers/usb/dwc3/Kconfig
@@ -132,6 +132,7 @@ config USB_DWC3_QCOM
 	depends on ARCH_QCOM || COMPILE_TEST
 	depends on EXTCON || !EXTCON
 	depends on OF
+	depends on USB_QCOM_EUD || !USB_QCOM_EUD
 	default USB_DWC3
 	help
 	  Some Qualcomm SoCs use DesignWare Core IP for USB2/3
diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
index 9ac75547820d..b51fd97521df 100644
--- a/drivers/usb/dwc3/dwc3-qcom.c
+++ b/drivers/usb/dwc3/dwc3-qcom.c
@@ -9,6 +9,7 @@
 #include <linux/clk.h>
 #include <linux/irq.h>
 #include <linux/of_clk.h>
+#include <linux/of_graph.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/interconnect.h>
@@ -19,6 +20,7 @@
 #include <linux/iopoll.h>
 #include <linux/usb/hcd.h>
 #include <linux/usb.h>
+#include <linux/usb/qcom_eud.h>
 #include "core.h"
 #include "glue.h"
 
@@ -561,6 +563,7 @@ static int dwc3_qcom_setup_irq(struct dwc3_qcom *qcom, struct platform_device *p
 static void dwc3_qcom_set_role_notifier(struct dwc3 *dwc, enum usb_role next_role)
 {
 	struct dwc3_qcom *qcom = to_dwc3_qcom(dwc);
+	struct device_node *eud_node;
 
 	if (qcom->current_role == next_role)
 		return;
@@ -570,6 +573,13 @@ static void dwc3_qcom_set_role_notifier(struct dwc3 *dwc, enum usb_role next_rol
 		return;
 	}
 
+	/* Notify EUD of role change */
+	eud_node = of_graph_get_remote_node(qcom->dev->of_node, 0, -1);
+	if (eud_node) {
+		qcom_eud_usb_role_notify(eud_node, dwc->usb2_generic_phy[0], next_role);
+		of_node_put(eud_node);
+	}
+
 	if (qcom->current_role == USB_ROLE_DEVICE)
 		dwc3_qcom_vbus_override_enable(qcom, false);
 	else if (qcom->current_role != USB_ROLE_DEVICE)
-- 
2.34.1


  parent reply	other threads:[~2026-03-09 20:33 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-09 20:33 [PATCH RFC v3 00/10] Improve Qualcomm EUD driver and platform support Elson Serrao
2026-03-09 20:33 ` [PATCH RFC v3 01/10] dt-bindings: soc: qcom: eud: Add support for dual-port configuration Elson Serrao
2026-03-09 20:33 ` [PATCH RFC v3 02/10] usb: misc: qcom_eud: add sysfs attribute for port selection Elson Serrao
2026-03-11 13:16   ` Greg Kroah-Hartman
2026-03-11 22:57     ` Elson Serrao
2026-03-13 12:10     ` Konrad Dybcio
2026-03-13 12:45       ` Greg Kroah-Hartman
2026-03-13 12:50         ` Konrad Dybcio
2026-03-09 20:33 ` [PATCH RFC v3 03/10] usb: misc: qcom_eud: add per-port High-Speed PHY control Elson Serrao
2026-03-09 20:33 ` [PATCH RFC v3 04/10] usb: misc: qcom_eud: add per-port role switch support Elson Serrao
2026-03-09 20:33 ` [PATCH RFC v3 05/10] usb: misc: qcom_eud: improve enable_store API Elson Serrao
2026-03-09 20:33 ` [PATCH RFC v3 06/10] usb: misc: qcom_eud: fix virtual attach/detach event handling Elson Serrao
2026-03-09 20:33 ` [PATCH RFC v3 07/10] usb: misc: qcom_eud: add host mode coordination Elson Serrao
2026-03-09 20:33 ` Elson Serrao [this message]
2026-03-09 20:33 ` [PATCH RFC v3 09/10] arm64: dts: qcom: kodiak: Fix EUD USB controller connection Elson Serrao
2026-03-09 20:33 ` [PATCH RFC v3 10/10] arm64: dts: qcom: Map USB connector to EUD for kodiak boards Elson Serrao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260309203337.803986-9-elson.serrao@oss.qualcomm.com \
    --to=elson.serrao@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=quic_schowdhu@quicinc.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox