[PATCH 00/16] Add support for USB Type-C on STM32MP25
From: Fabrice Gasnier
Date: Fri Aug 21 2026 - 12:24:51 EST
Add support for the UCPD controller found in STM32MP23 and STM32MP25 platforms.
It is tigtly coupled with external TCPP02/03 I2C companion chip to interface
and to protect UCB-C DRP port.
Purpose is to propose a complete set of drivers and bindings to enable USB
Type-C support on STM32MP25 reference design boards, EVAL and DK, compared
to alternate UCPD series [1].
This is an on-going work on top of over series [2] and [3].
[1] https://lore.kernel.org/all/20260819163410.119755-1-marex@xxxxxxxxxxxx/
[2] https://lore.kernel.org/linux-phy/20260816213849.1044073-1-marex@xxxxxxxxxxxx/
[3] https://lore.kernel.org/linux-usb/20260817163101.6203-1-fabrice.gasnier@xxxxxxxxxxx/
---
Christian Bruel (6):
dt-bindings: usb: st,tcpp: Document TCPP USB-C PD protection chip
usb: typec: tcpm: Add STM32 tcpp driver
dt-bindings: usb: st,stm32-ucpd: Document STM32 UCPD controller
usb: typec: tcpm: Add STM32 UCPD driver
arm64: dts: st: add i2c1 pinctrl entries for stm32mp25
arm64: dts: st: add tcpp pinctrl entries for stm32mp25
Fabrice Gasnier (10):
dt-bindings: usb: add FUSB340 switch binding
usb: typec: add FUSB340 SuperSpeed switch driver
dt-bindings: nvmem: st,stm32-romem: align patternProperties regex on nvmem-deprecated-cells.yaml
arm64: dts: st: Add ucpd node on stm32mp251
dt-bindings: usb: dwc3: stm32: refer to dwc3-common
dt-bindings: phy: stm32: adapt usb2phy as syscon child on stm32mp25
dt-bindings: arm: stm32mp2: allow child nodes since simple-mfd transition
arm64: dts: st: enable usb on stm32mp257f-ev1
arm64: dts: st: enable usb on stm32mp257f-dk
arm64: configs: enable usb and its dependencies used on stm32mp25
.../bindings/arm/stm32/st,stm32-syscon.yaml | 10 +
.../devicetree/bindings/nvmem/st,stm32-romem.yaml | 2 +-
.../devicetree/bindings/phy/st,stm32-usb2phy.yaml | 20 +-
.../devicetree/bindings/usb/onnn,fusb340.yaml | 73 ++
.../devicetree/bindings/usb/st,stm32-ucpd.yaml | 134 ++++
.../devicetree/bindings/usb/st,stm32mp25-dwc3.yaml | 3 +
Documentation/devicetree/bindings/usb/st,tcpp.yaml | 63 ++
arch/arm64/boot/dts/st/stm32mp25-pinctrl.dtsi | 27 +
arch/arm64/boot/dts/st/stm32mp251.dtsi | 51 ++
arch/arm64/boot/dts/st/stm32mp257f-dk.dts | 111 +++
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 79 ++
arch/arm64/configs/defconfig | 6 +
drivers/usb/typec/mux/Kconfig | 8 +
drivers/usb/typec/mux/Makefile | 1 +
drivers/usb/typec/mux/fusb340.c | 169 +++++
drivers/usb/typec/tcpm/Kconfig | 22 +
drivers/usb/typec/tcpm/Makefile | 2 +
drivers/usb/typec/tcpm/st_tcpp.c | 418 +++++++++++
drivers/usb/typec/tcpm/st_tcpp.h | 21 +
drivers/usb/typec/tcpm/stm32_ucpd.c | 818 +++++++++++++++++++++
20 files changed, 2024 insertions(+), 14 deletions(-)
---
base-commit: a8eb98861eefbab7fc254c8014712471448b295c
change-id: 20260821-ucpd-host-fusb340-v7-2-rfc-836f0bac0543
Best regards,
--
Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx>