This patch series introduces full support for the Amlogic A1 USB controller in OTG mode (peripheral and host modes switching). Previously, Amlogic's patch series [1] was applied to the upstream tree, but it only had USB host mode support. Furthermore, the device tree patchset [2] wasn't merged due to a missing clk driver. Patchset [2] has been completely reworked: - changed register base offsets to proper values - introduced dwc2 in peripheral mode - OTG mode support - the SoB of Amlogic authors still remain Testing: - USB OTG role switching between gadget and host - OK - Peripheral mode - OK (tested with adb shell/push/pop) - Host mode - OK (tested only USB enumeration and detection) Changes v4 since v3 at [5]: - remove the dtsi patchset from series because it is dependent on the A1 clock bindings, which are not resolved yet; this is due to the fact that the A1 clock drivers are currently under review - remove the patchset for phy as it has already been applied by Vinod to phy/next at [6] Changes v3 since v2 at [4]: - if reset_control_reset() fails during phy_exit() callback execution, do not disable clkin, instead, return an error immediately - provide proper 'phy-names' for the dwc2 device tree node as 'usb2-phy' instead of 'usb2_phy' (replace underscore with dash) Changes v2 since v1 at [3]: - as Martin suggested in v1, this commit completely removes the 'otg_switch_supported' parameter from dwc3_meson_g12a_drvdata; this parameter is no longer necessary as all IP versions now support OTG switching - this commit moves the USB PHY clkin enable/disable calls to the PHY init/exit routines Links: [1] https://lore.kernel.org/all/1581990859-135234-1-git-send-email-hanjie.lin@xxxxxxxxxxx/ [2] https://lore.kernel.org/all/1581990859-135234-4-git-send-email-hanjie.lin@xxxxxxxxxxx/ [3] https://lore.kernel.org/all/20230414152423.19842-1-ddrokosov@xxxxxxxxxxxxxx/ [4] https://lore.kernel.org/all/20230418111612.19479-1-ddrokosov@xxxxxxxxxxxxxx/ [5] https://lore.kernel.org/all/20230426102922.19705-1-ddrokosov@xxxxxxxxxxxxxx/ [6] https://lore.kernel.org/all/ZFjAmCcc%2F35MhcuI@matsya/ Dmitry Rokosov (3): usb: dwc2: support dwc2 IP for Amlogic A1 SoC family dt-bindings: usb: dwc2: add support for Amlogic A1 SoC USB peripheral usb: dwc3-meson-g12a: support OTG switch for all IP versions .../devicetree/bindings/usb/dwc2.yaml | 1 + drivers/usb/dwc2/params.c | 21 +++++++++++++++++++ drivers/usb/dwc3/dwc3-meson-g12a.c | 16 +++----------- 3 files changed, 25 insertions(+), 13 deletions(-) -- 2.36.0