[PATCH v2 0/9] arm64: dts: phy: st: usb: Add STM32MP2 USB support
Fabrice Gasnier
fabrice.gasnier at foss.st.com
Mon Aug 17 09:35:54 PDT 2026
On 8/16/26 23:37, Marek Vasut wrote:
> Add USB support for STM32MP23xx/STM32MP25xx SoCs. This includes USB 2.0
> FEMTO-PHY driver, DWC3 glue code and DT adjustments. Parts of this are
> taken from ST downstream kernel fork, reduced, or rewritten, since not
> all of the content there was useful and bits which might be missing and
> are useful can be added later.
>
> Unlike the downstream implementation, the DWC3 glue code is using plain
> dwc3-generic-plat, the EHCI and OHCI controllers are instantiated as
> plain generic controllers without any wrapper glue driver, and the USB2
> PHY driver is simplified.
>
> Both USB 2.0 Host controller and DWC3 super-speed controller are tested.
Hi Marek,
Regarding dwc3, I've started to test and needed another patch from our
downstream. I've posted it here:
https://lore.kernel.org/linux-usb/20260817163101.6203-1-fabrice.gasnier@foss.st.com/
Regarding USBH, there's a dedicated glue on STM32MP2x SoCs for the
EHCI/OHCI controllers, similar to the dwc3. On dwc3, I see it can be
managed.
There are:
- AFMUX signals out of EHCI/OHCI controllers, to manage a Vbus power
switch (with polarity) control.
- AFMUX need pinctrl to be added, and managed during system PM
- On coming MP21 (not supported here), there's address translation control
- Common dedicated interrupt to manage wakeup
Using generic controller drivers, I don't see how to manage it, without
describing it in the DT.
For sure, generic ehci/ochi drivers and bindings can/must be used. What
would be the proper place for this glue to leave ? Why not adding the
glue driver from the downstream ? That's supposed to address this.
Do you wish I send it upstream, so it can be properly reviewed, amended ?
I'd like to sort this glue management out before the DT for the USBH can
land.
Best Regards,
Thanks,
Fabrice
>
> Marek Vasut (6):
> dt-bindings: usb: generic-ehci: Document access-controllers property
> dt-bindings: usb: generic-ohci: Document access-controllers property
> dt-bindings: usb: dwc3: Document ST STM32MP2 DWC3 xHCI USB controller
> usb: dwc3: dwc3-generic-plat: Add ST STM32MP2 DWC3 xHCI USB controller
> glue
> dt-bindings: arm: stm32: Switch st,stm32mp23/25-syscfg into simple-mfd
> arm64: dts: st: Add USB nodes on stm32mp231
>
> Pankaj Dev (3):
> dt-bindings: phy: Document ST STM32MP25 USB2-FEMTO PHY
> phy: stm32: Add support for ST STM32MP25 USB2-FEMTO PHY
> arm64: dts: st: Add USB nodes on stm32mp251
>
> .../bindings/arm/stm32/st,stm32-syscon.yaml | 7 +-
> .../bindings/phy/st,stm32-usb2phy.yaml | 73 ++++
> .../devicetree/bindings/usb/generic-ehci.yaml | 3 +
> .../devicetree/bindings/usb/generic-ohci.yaml | 3 +
> .../bindings/usb/st,stm32mp25-dwc3.yaml | 108 ++++++
> arch/arm64/boot/dts/st/stm32mp231.dtsi | 81 +++-
> arch/arm64/boot/dts/st/stm32mp251.dtsi | 65 +++-
> drivers/phy/st/Kconfig | 10 +
> drivers/phy/st/Makefile | 1 +
> drivers/phy/st/phy-stm32-usb2phy.c | 361 ++++++++++++++++++
> drivers/usb/dwc3/dwc3-generic-plat.c | 44 +++
> 11 files changed, 751 insertions(+), 5 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/phy/st,stm32-usb2phy.yaml
> create mode 100644 Documentation/devicetree/bindings/usb/st,stm32mp25-dwc3.yaml
> create mode 100644 drivers/phy/st/phy-stm32-usb2phy.c
>
> Cc: Alexandre Torgue <alexandre.torgue at foss.st.com>
> Cc: Christian Bruel <christian.bruel at foss.st.com>
> Cc: Conor Dooley <conor+dt at kernel.org>
> Cc: Fabrice Gasnier <fabrice.gasnier at foss.st.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Krzysztof Kozlowski <krzk+dt at kernel.org>
> Cc: Maxime Coquelin <mcoquelin.stm32 at gmail.com>
> Cc: Neil Armstrong <neil.armstrong at linaro.org>
> Cc: Pankaj Dev <pankaj.dev at st.com>
> Cc: Rahul Kumar <rahul.kumar05 at st.com>
> Cc: Rob Herring <robh at kernel.org>
> Cc: Rosen Penev <rosenp at gmail.com>
> Cc: Thinh Nguyen <Thinh.Nguyen at synopsys.com>
> Cc: Vinod Koul <vkoul at kernel.org>
> Cc: devicetree at vger.kernel.org
> Cc: kernel at dh-electronics.com
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-phy at lists.infradead.org
> Cc: linux-stm32 at st-md-mailman.stormreply.com
> Cc: linux-usb at vger.kernel.org
>
More information about the linux-phy
mailing list