Hello, This patch series brings the NVIDIA Tegra USB2 PHY driver into a better shape by refactoring code to match upstream standards, the ChipIdea/Tegra UDC driver also gets a minor update. Please review and apply, thanks in advance! Changelog: v3: - The "Perform general clean up of the code" patch now cleans up couple more minor crumbs. - Added more "clean up" patches: usb: phy: tegra: Disable VBUS regulator on tegra_usb_phy_init failure usb: phy: tegra: Move utmip_pad_count checking under lock usb: phy: tegra: Keep CPU interrupts enabled usb: host: ehci-tegra: Remove unused fields from tegra_ehci_hcd - I noticed that ULPI's reset is getting erroneously deasserted on PHY's shutdown, this is fixed in these new patches: usb: phy: tegra: Assert reset on ULPI close instead of deasserting it usb: phy: tegra: Use device-tree notion of reset-GPIO's active-state v2: - The "usb: phy: tegra: Hook up init/shutdown callbacks" patch was updated and now it does a better job in regards to checking whether PHY is initialized before it is started to be used and whether there is a double init/shutdown. This allows to factor out the ChipIdea's driver change into a separate patch, which was requested by Peter Chen in a review comment to v1. In a result there is this new patch: usb: chipidea: tegra: Stop managing PHY's power - Added few more new patches: usb: phy: tegra: Use generic stub for a missing VBUS regulator I noticed that VBUS regulator usage could be cleaned up a tad as well. usb: ulpi: Add resource-managed variant of otg_ulpi_create() usb: phy: tegra: Use devm_otg_ulpi_create() usb: phy: tegra: Use u32 for hardware register variables These patches are made in response to review comments that were made by Thierry Reding to v1. I also noticed that phy_tegra_usb isn't getting auto-loaded while it should be. This is fixed in this new patch: usb: chipidea: tegra: Add USB_TEGRA_PHY to driver's dependencies Dmitry Osipenko (16): dt-binding: usb: ci-hdrc-usb2: Document NVIDIA Tegra support usb: phy: tegra: Hook up init/shutdown callbacks usb: phy: tegra: Perform general clean up of the code usb: phy: tegra: Use relaxed versions of readl/writel usb: phy: tegra: Use generic stub for a missing VBUS regulator usb: ulpi: Add resource-managed variant of otg_ulpi_create() usb: phy: tegra: Use devm_otg_ulpi_create() usb: phy: tegra: Use u32 for hardware register variables usb: phy: tegra: Assert reset on ULPI close instead of deasserting it usb: phy: tegra: Use device-tree notion of reset-GPIO's active-state usb: phy: tegra: Disable VBUS regulator on tegra_usb_phy_init failure usb: phy: tegra: Move utmip_pad_count checking under lock usb: phy: tegra: Keep CPU interrupts enabled usb: chipidea: tegra: Stop managing PHY's power usb: chipidea: tegra: Add USB_TEGRA_PHY to driver's dependencies usb: host: ehci-tegra: Remove unused fields from tegra_ehci_hcd .../devicetree/bindings/usb/ci-hdrc-usb2.txt | 4 + drivers/usb/chipidea/Kconfig | 1 + drivers/usb/chipidea/ci_hdrc_tegra.c | 15 +- drivers/usb/host/ehci-tegra.c | 2 - drivers/usb/phy/phy-tegra-usb.c | 830 +++++++++--------- drivers/usb/phy/phy-ulpi.c | 48 +- include/linux/usb/tegra_usb_phy.h | 3 +- include/linux/usb/ulpi.h | 11 + 8 files changed, 496 insertions(+), 418 deletions(-) -- 2.24.0