This series adds bindings and a driver for the Willsemi WUSB3801. This chip's bindings use the standard USB Type-C connector bindings, but the driver does not use the TCPM library, so a refactoring patch is included to avoid duplicating some fwnode parsing code. Changes in v3: - Leave the call to fw_devlink_purge_absent_suppliers in its original place in the TCPM code. It is not needed by the new driver. - Remove unused variable from TCPM function. - Remove version info printout Changes in v2: - Always put the return values from typec_find_* in a signed variable for error checking. - License the driver as GPL 2 only; probably best anyway as I used a lot of other drivers/usb/typec code as inspiration - Don't try to be clever; use `default` instead of `unreachable` - Free the IRQ before unregistering the partner/port Samuel Holland (4): dt-bindings: vendor-prefixes: Add willsemi dt-bindings: usb: Add WUSB3801 Type-C Port Controller usb: typec: Factor out non-PD fwnode properties usb: typec: Support the WUSB3801 port controller .../bindings/usb/willsemi,wusb3801.yaml | 75 +++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + drivers/usb/typec/Kconfig | 10 + drivers/usb/typec/Makefile | 1 + drivers/usb/typec/class.c | 43 ++ drivers/usb/typec/tcpm/tcpm.c | 24 +- drivers/usb/typec/wusb3801.c | 437 ++++++++++++++++++ include/linux/usb/typec.h | 3 + 8 files changed, 572 insertions(+), 23 deletions(-) create mode 100644 Documentation/devicetree/bindings/usb/willsemi,wusb3801.yaml create mode 100644 drivers/usb/typec/wusb3801.c -- 2.33.1