]> git.baikalelectronics.ru Git - kernel.git/commit
usb: typec: ucsi: stm32g0: add support for stm32g0 controller
authorFabrice Gasnier <fabrice.gasnier@foss.st.com>
Wed, 13 Jul 2022 12:08:41 +0000 (14:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 Jul 2022 12:39:11 +0000 (14:39 +0200)
commitca9401bfda25b03f1c303788df503fd05a99ba32
treef106897bac28b0b2ebed4e0f1a78b5386810abe8
parent820cb9508c062713c50c7817cd30cf30b5167a39
usb: typec: ucsi: stm32g0: add support for stm32g0 controller

STM32G0 provides an integrated USB Type-C and power delivery interface.
It can be programmed with a firmware to handle UCSI protocol over I2C
interface. A GPIO is used as an interrupt line.

Type-C connector can be used as a wakeup source (typically to detect
changes on the port, like attach or detach). PM suspend / resume routines
are used to enable wake irqs, and signal a wakeup event in case the IRQ
has fired while in suspend. The i2c core is doing the necessary
initialization when the "wakeup-source" flag is provided.
Note: the interrupt handler shouldn't be called before the i2c bus resumes.
So, the interrupts are disabled during suspend period, and re-enabled
upon resume, to avoid i2c transfer while suspended, from the irq handler.

Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Link: https://lore.kernel.org/r/20220713120842.560902-3-fabrice.gasnier@foss.st.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/Kconfig
drivers/usb/typec/ucsi/Makefile
drivers/usb/typec/ucsi/ucsi_stm32g0.c [new file with mode: 0644]