[PATCH v3 0/9] Support Runtime PM and host mode by Tegra ChipIdea USB driver

Dmitry Osipenko
2020-12-18T12:12:11Z

This series implements Runtime PM support for the Tegra ChipIdea USB driver.
It also squashes the older ehci-tegra driver into the ChipIdea driver, hence
the RPM is supported by both UDC and host controllers, secondly this opens
opportunity for implementing OTG support in the future.

Patchset was tested on various Tegra20, Tegra30 and Tegra124 devices.
Thanks to Peter Geis, Matt Merhar, Nicolas Chauvet and Ion Agorria for
helping with the extensive and productive testing!

Changelog:

v3: - Replaced "goto" with if-statements as was suggested by Thierry Reding.

- Improved wording of the deprecated Kconfig entry as was suggested
by Alan Stern.

- Added ACKs from Thierry Reding and Alan Stern.

- Added a new minor patch "Specify TX FIFO threshold in UDC SoC info"
just for completeness, since we can now switch OTG to host mode in
the ChipIdea driver. Although, OTG support remains a work-in-progress
for now.

v2: - Improved comments in the code as it was suggested by Peter Chen and
Sergei Shtylyov for v1.

- Replaced mdelay() with fsleep() and made ci->hdc to reset to NULL in
a error code path, like it was suggested by Peter Chen.

- Redirected deprecated USB_EHCI_TEGRA Kconfig entry to USB_CHIPIDEA_TEGRA
as was suggested by Alan Stern.

- Improved commit message and added ACK from Thierry Reding to the patch
that removes MODULE_ALIAS.

- Fixed UDC PHY waking up on ASUS TF201 tablet device by utilizing
additional VBUS sensor. This was reported and tested by Ion Agorria.

- Added t-b from Ion Agorria.

Dmitry Osipenko (8):
usb: phy: tegra: Add delay after power up
usb: phy: tegra: Support waking up from a low power mode
usb: chipidea: tegra: Remove MODULE_ALIAS
usb: chipidea: tegra: Rename UDC to USB
usb: chipidea: tegra: Support runtime PM
usb: chipidea: tegra: Specify TX FIFO threshold in UDC SoC info
usb: host: ehci-tegra: Remove the driver
ARM: tegra_defconfig: Enable USB_CHIPIDEA_HOST and remove
USB_EHCI_TEGRA

Peter Geis (1):
usb: chipidea: tegra: Support host mode

arch/arm/configs/tegra_defconfig | 3 +-
drivers/usb/chipidea/Kconfig | 3 +-
drivers/usb/chipidea/ci_hdrc_tegra.c | 344 ++++++++++++---
drivers/usb/chipidea/core.c | 10 +-
drivers/usb/chipidea/host.c | 104 ++++-
drivers/usb/host/Kconfig | 10 +-
drivers/usb/host/Makefile | 1 -
drivers/usb/host/ehci-tegra.c | 604 ---------------------------
drivers/usb/phy/phy-tegra-usb.c | 103 ++++-
include/linux/usb/chipidea.h | 6 +
include/linux/usb/tegra_usb_phy.h | 2 +
11 files changed, 518 insertions(+), 672 deletions(-)
delete mode 100644 drivers/usb/host/ehci-tegra.c

--
2.29.2