STM32G0 provides an integrated USB Type-C and power delivery interface [1]. It can be programmed with a firmware [2] to act as a PPM. Currently it implements UCSI protocol over I2C interface. A GPIO is used as an interrupt line. This series adds a driver to support it, including: - dt-bindings documentation - optional STM32G0 firmware control and update, over a secondary I2C address - power management [1] https://wiki.st.com/stm32mcu/wiki/Introduction_to_USB_Power_Delivery_with_STM32 [2] https://github.com/STMicroelectronics/x-cube-ucsi Changes in v3: - Add connector to the required properties as pointed out by Krzysztof. - PM support squashed as suggested by Heikki (hence removed patch 3) Changes in v2: - Krzysztof's review comments on dt-bindings: update commit message, use ports, use unevaluatedProperties: false for usb-connector schema, define maxItems for power-domains, adopt generic node names, remove quotes. - Christophe's comments on driver: use kmalloc instead of kzalloc Use-after-free of buf: directly print the offset Fabrice Gasnier (3): dt-bindings: usb: typec: add bindings for stm32g0 controller usb: typec: ucsi: stm32g0: add support for stm32g0 controller usb: typec: ucsi: stm32g0: add bootloader support .../bindings/usb/st,typec-stm32g0.yaml | 91 ++ drivers/usb/typec/ucsi/Kconfig | 10 + drivers/usb/typec/ucsi/Makefile | 1 + drivers/usb/typec/ucsi/ucsi_stm32g0.c | 777 ++++++++++++++++++ 4 files changed, 879 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/st,typec-stm32g0.yaml create mode 100644 drivers/usb/typec/ucsi/ucsi_stm32g0.c -- 2.25.1