• Martin Blumenstingl's avatar
    usb: core: add a wrapper for the USB PHYs on the HCD · 07dbff0d
    Martin Blumenstingl authored
    Many SoC platforms have separate devices for the USB PHY which are
    registered through the generic PHY framework. These PHYs have to be
    enabled to make the USB controller actually work. They also have to be
    disabled again on shutdown/suspend.
    
    Currently (at least) the following HCI platform drivers are using custom
    code to obtain all PHYs via devicetree for the roothub/controller and
    disable/enable them when required:
    - ehci-platform.c has ehci_platform_power_{on,off}
    - xhci-mtk.c has xhci_mtk_phy_{init,exit,power_on,power_off}
    - ohci-platform.c has ohci_platform_power_{on,off}
    
    With this new wrapper the USB PHYs can be specified directly in the
    USB controller's devicetree node (just like on the drivers listed
    above). This allows SoCs like the Amlogic Meson GXL family to operate
    correctly once this is wired up correctly. These SoCs use a dwc3
    controller and require all USB PHYs to be initialized (if one of the USB
    PHYs it not initialized then none of USB port works at all).
    Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
    Tested-by: default avatarYixun Lan <yixun.lan@amlogic.com>
    Cc: Chunfeng Yun <chunfeng.yun@mediatek.com>
    Tested-by: default avatarNeil Armstrong <narmstrong@baylibre.con>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    07dbff0d
phy.c 3.36 KB