All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anders Roxell <anders.roxell@linaro.org>
To: u-boot@lists.u-boot-project.org
Cc: marek.vasut@mailbox.org, trini@konsulko.com,
	ilias.apalodimas@linaro.org, michal.simek@amd.com, lukma@denx.de,
	alchark@flipper.net, jerome.forissier@arm.com,
	dlechner@baylibre.com, anshuld@ti.com, sjg@chromium.org,
	Anders Roxell <anders.roxell@linaro.org>,
	Jerome Forissier <jerome.forissier@linaro.org>,
	Jens Wiklander <jens.wiklander@linaro.org>
Subject: [PATCH v7 02/24] usb: phy: add the usb_phy helpers needed by the resynced DWC3 code
Date: Mon, 24 Aug 2026 17:41:11 +0200	[thread overview]
Message-ID: <20260824154133.217744-3-anders.roxell@linaro.org> (raw)
In-Reply-To: <20260824154133.217744-1-anders.roxell@linaro.org>

The resynced DWC3 core includes linux/usb/phy.h and uses struct usb_phy,
usb_phy_init(), usb_phy_shutdown(), usb_phy_set_power() and
usb_phy_set_suspend(). u-boot has none of them.

Add a cut down version of include/linux/usb/phy.h from Linux v6.16. Only
the parts the DWC3 core needs are here.

usb_phy_set_suspend() is a stub that returns 0. u-boot never suspends
the controller, so there is nothing to do.

Linux calls usb_phy_set_charger_current() from usb_phy_set_power().
u-boot has no charger framework, so the call is left as a comment. It
marks where the call goes if someone adds one later.

Co-developed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Co-developed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
---
 include/linux/usb/phy.h | 56 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h
index 14b2c7eb2e63..afda7870e21e 100644
--- a/include/linux/usb/phy.h
+++ b/include/linux/usb/phy.h
@@ -21,6 +21,13 @@ enum usb_phy_interface {
 	USBPHY_INTERFACE_MODE_HSIC,
 };
 
+/* associate a type with PHY */
+enum usb_phy_type {
+	USB_PHY_TYPE_UNDEFINED,
+	USB_PHY_TYPE_USB2,
+	USB_PHY_TYPE_USB3,
+};
+
 #if CONFIG_IS_ENABLED(DM_USB)
 /**
  * usb_get_phy_mode - Get phy mode for given device_node
@@ -37,4 +44,53 @@ static inline enum usb_phy_interface usb_get_phy_mode(ofnode node)
 }
 #endif
 
+struct usb_phy {
+	struct device		*dev;
+
+	/* initialize/shutdown the phy */
+	int     (*init)(struct usb_phy *x);
+	void    (*shutdown)(struct usb_phy *x);
+
+	/* enable/disable VBUS */
+	int     (*set_vbus)(struct usb_phy *x, int on);
+
+	/* effective for B devices, ignored for A-peripheral */
+	int     (*set_power)(struct usb_phy *x,
+			     unsigned int mA);
+};
+
+static inline int
+usb_phy_init(struct usb_phy *x)
+{
+	if (x && x->init)
+		return x->init(x);
+
+	return 0;
+}
+
+static inline void
+usb_phy_shutdown(struct usb_phy *x)
+{
+	if (x && x->shutdown)
+		x->shutdown(x);
+}
+
+static inline int
+usb_phy_set_power(struct usb_phy *x, unsigned int mA)
+{
+	if (!x)
+		return 0;
+
+	/* TODO usb_phy_set_charger_current(x, mA); */
+
+	if (x->set_power)
+		return x->set_power(x, mA);
+	return 0;
+}
+
+static inline int
+usb_phy_set_suspend(struct usb_phy *x, int suspend)
+{
+	return 0;
+}
 #endif /* __LINUX_USB_PHY_H */
-- 
2.53.0


  parent reply	other threads:[~2026-08-24 16:47 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-24 15:41 [PATCH v7 00/24] usb: dwc3: part 2, make the resynced code work Anders Roxell
2026-08-24 15:41 ` [PATCH v7 01/24] dm: add helpers needed by the resynced DWC3 code Anders Roxell
2026-08-24 15:41 ` Anders Roxell [this message]
2026-08-24 15:41 ` [PATCH v7 03/24] usb: gadget: adapt the gadget API after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 04/24] usb: gadget: udc: make udc-core build in u-boot Anders Roxell
2026-08-24 15:41 ` [PATCH v7 05/24] usb: dwc3: make the core driver " Anders Roxell
2026-08-24 15:41 ` [PATCH v7 06/24] usb: dwc3: bring back the samsung usb phy driver Anders Roxell
2026-08-24 15:41 ` [PATCH v7 07/24] usb: dwc3: make gadget and ep0 build in u-boot Anders Roxell
2026-08-24 15:41 ` [PATCH v7 08/24] usb: gadget: udc: enable async callbacks on bind Anders Roxell
2026-08-24 15:41 ` [PATCH v7 09/24] usb: dwc3: ep0: flush and invalidate cache around ep0 transfers Anders Roxell
2026-08-24 15:41 ` [PATCH v7 10/24] usb: dwc3: make the am62 glue build in u-boot Anders Roxell
2026-08-24 15:41 ` [PATCH v7 11/24] usb: gadget: ci_udc: move to the udc-core registration Anders Roxell
2026-08-24 15:41 ` [PATCH v7 12/24] usb: gadget: ci_udc: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 13/24] usb: gadget: dwc2_udc_otg: fix up after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 14/24] usb: gadget: fix up the function drivers " Anders Roxell
2026-08-24 15:41 ` [PATCH v7 15/24] usb: gadget: fix up the last UDC " Anders Roxell
2026-08-24 15:41 ` [PATCH v7 16/24] usb: gadget: atmel_usba_udc: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 17/24] usb: gadget: at91_udc: register with udc-core Anders Roxell
2026-08-24 15:41 ` [PATCH v7 18/24] usb: gadget: at91_udc: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 19/24] usb: musb-new: fix up after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 20/24] usb: musb-new: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 21/24] usb: mtu3: fix up after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 22/24] usb: mtu3: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 23/24] usb: host: xhci: fix up after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 24/24] usb: cdns3: " Anders Roxell
2026-08-25  9:42 ` [PATCH v7 00/24] usb: dwc3: part 2, make the resynced code work Anshul Dalal
2026-08-26  8:29   ` Anders Roxell
2026-08-27  7:48     ` Anshul Dalal
2026-08-28 12:26       ` Anders Roxell

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=20260824154133.217744-3-anders.roxell@linaro.org \
    --to=anders.roxell@linaro.org \
    --cc=alchark@flipper.net \
    --cc=anshuld@ti.com \
    --cc=dlechner@baylibre.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jens.wiklander@linaro.org \
    --cc=jerome.forissier@arm.com \
    --cc=jerome.forissier@linaro.org \
    --cc=lukma@denx.de \
    --cc=marek.vasut@mailbox.org \
    --cc=michal.simek@amd.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.u-boot-project.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.