These patches introduce the MediaTek USB3 Dual-Role Controller driver. The driver can be configured as Peripheral only and Host only(xHCI) modes, and it's ported from Linux Kernel 5.8-rc1
v7 changes 1. use xhci quirk flag XHCI_MTK_HOST v6 changes 1. modify commit message of [4/10] v5 changes: 1. change condition of readl_poll_timeout() when check clocks 2. add xhci-mtk.c and myself as maintainer for MTK USB v4 changes: 1. [4/10], [9/10] and [10/10] are new patches 2. add a glue driver 3. add host driver and rebuild host flow 4. support force_vbus mode for device 5. update bindings to support glue driver v3 changes: 1. add patch [5/7] 2. add udc_set_speed() 3. simplify some code flow v2 changes: 1. simplify QMU operations Chunfeng Yun (10): dt-binding: usb: add bindings for some common properties dt-bindings: usb: mtu3: add bindings for MediaTek USB3 DRD usb: add USB_SPEED_SUPER_PLUS usb: common: add define of usb_speed_string() usb: add MediaTek USB3 DRD driver usb: gadget: Add bcdDevice for the MTU3 USB Gadget Controller arm: dts: mt8512: add usb related nodes configs: mt8512: enable fastboot configs: mt8512: add USB host related configs MAINTAINERS: add USB driver to ARM MEDIATEK MAINTAINERS | 3 + Makefile | 1 + arch/arm/dts/mt8512-bm1-emmc.dts | 34 + arch/arm/dts/mt8512.dtsi | 49 +- configs/mt8512_bm1_emmc_defconfig | 26 + doc/device-tree-bindings/usb/generic.txt | 31 + doc/device-tree-bindings/usb/mediatek,mtu3.txt | 79 +++ drivers/usb/Kconfig | 2 + drivers/usb/common/common.c | 8 + drivers/usb/gadget/gadget_chips.h | 8 + drivers/usb/mtu3/Kconfig | 45 ++ drivers/usb/mtu3/Makefile | 11 + drivers/usb/mtu3/mtu3.h | 423 +++++++++++ drivers/usb/mtu3/mtu3_core.c | 838 ++++++++++++++++++++++ drivers/usb/mtu3/mtu3_dr.h | 52 ++ drivers/usb/mtu3/mtu3_gadget.c | 686 ++++++++++++++++++ drivers/usb/mtu3/mtu3_gadget_ep0.c | 933 +++++++++++++++++++++++++ drivers/usb/mtu3/mtu3_host.c | 141 ++++ drivers/usb/mtu3/mtu3_hw_regs.h | 515 ++++++++++++++ drivers/usb/mtu3/mtu3_plat.c | 368 ++++++++++ drivers/usb/mtu3/mtu3_qmu.c | 504 +++++++++++++ drivers/usb/mtu3/mtu3_qmu.h | 37 + include/linux/usb/ch9.h | 5 +- 23 files changed, 4794 insertions(+), 5 deletions(-) create mode 100644 doc/device-tree-bindings/usb/generic.txt create mode 100644 doc/device-tree-bindings/usb/mediatek,mtu3.txt create mode 100644 drivers/usb/mtu3/Kconfig create mode 100644 drivers/usb/mtu3/Makefile create mode 100644 drivers/usb/mtu3/mtu3.h create mode 100644 drivers/usb/mtu3/mtu3_core.c create mode 100644 drivers/usb/mtu3/mtu3_dr.h create mode 100644 drivers/usb/mtu3/mtu3_gadget.c create mode 100644 drivers/usb/mtu3/mtu3_gadget_ep0.c create mode 100644 drivers/usb/mtu3/mtu3_host.c create mode 100644 drivers/usb/mtu3/mtu3_hw_regs.h create mode 100644 drivers/usb/mtu3/mtu3_plat.c create mode 100644 drivers/usb/mtu3/mtu3_qmu.c create mode 100644 drivers/usb/mtu3/mtu3_qmu.h -- 1.9.1