mbox series

[v2,0/4] Add MediaTek MUSB Controller Driver

Message ID 1547516626-5084-1-git-send-email-min.guo@mediatek.com (mailing list archive)
Headers show
Series Add MediaTek MUSB Controller Driver | expand

Message

Min Guo Jan. 15, 2019, 1:43 a.m. UTC
From: Min Guo <min.guo@mediatek.com>

These patches introduce the MediaTek MUSB controller driver.

The driver can be configured as Dual-Role Device (DRD),
Peripheral Only and Host Only modes. This has beed tested on
MT2701 with a variety of devices in host mode and with the 
f_mass gadget driver in peripheral mode, plugging otg cables
in/out a lot of times in all possible imaginable plug orders.

changes in v2:
changes of dt-bindings suggested by Rob and Bin:
1. Modify DRC to DRD
2. Drop the "<soc-model>-musb" in compatible
3. Remove phy-names
4. Add space after comma in clock-names
dtsi:
1. Remove phy-names
changes of driver suggested by Bin:
1. Add a new patch for musb_set_toggle
2. Add summarize of MediaTek musb controller differences in the commit log
3. Abondon patch "usb: musb: Move musbhsdma macro definition to musb_dma.h"
4. Add "|| COMPILE_TEST" in Kconfig
5. Add musb_clearb() and musb_clearw() hooks
6. Add get_toggle() and set_toggle() hooks
7. Replace musb_readl() with musb_readw() to read 16bit toggle register
8. Move MediaTek's private toggle registers from musb_regs.h to mediatek.c
9. Create musbhs_dma_controller_create_noirq()

Min Guo (4):
  dt-bindings: usb: musb: Add support for MediaTek musb controller
  arm: dts: mt2701: Add usb2 device nodes
  usb: musb: Extract set toggle as a separate interface
  usb: musb: Add support for MediaTek musb controller

 .../devicetree/bindings/usb/mediatek,musb.txt      |  43 ++
 arch/arm/boot/dts/mt2701-evb.dts                   |  21 +
 arch/arm/boot/dts/mt2701.dtsi                      |  33 ++
 drivers/usb/musb/Kconfig                           |   8 +-
 drivers/usb/musb/Makefile                          |   1 +
 drivers/usb/musb/mediatek.c                        | 617 +++++++++++++++++++++
 drivers/usb/musb/musb_core.c                       |  69 +++
 drivers/usb/musb/musb_core.h                       |   9 +
 drivers/usb/musb/musb_dma.h                        |   9 +
 drivers/usb/musb/musb_host.c                       |  35 +-
 drivers/usb/musb/musb_io.h                         |   6 +
 drivers/usb/musb/musbhsdma.c                       |  55 +-
 12 files changed, 868 insertions(+), 38 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/mediatek,musb.txt
 create mode 100644 drivers/usb/musb/mediatek.c

Comments

Ryder Lee Jan. 15, 2019, 5:18 a.m. UTC | #1
On Tue, 2019-01-15 at 09:43 +0800, min.guo@mediatek.com wrote:
> From: Min Guo <min.guo@mediatek.com>
> 
> These patches introduce the MediaTek MUSB controller driver.
> 
> The driver can be configured as Dual-Role Device (DRD),
> Peripheral Only and Host Only modes. This has beed tested on
> MT2701 with a variety of devices in host mode and with the 
> f_mass gadget driver in peripheral mode, plugging otg cables
> in/out a lot of times in all possible imaginable plug orders.
> 
> changes in v2:
> changes of dt-bindings suggested by Rob and Bin:
> 1. Modify DRC to DRD
> 2. Drop the "<soc-model>-musb" in compatible
> 3. Remove phy-names
> 4. Add space after comma in clock-names
> dtsi:
> 1. Remove phy-names
> changes of driver suggested by Bin:
> 1. Add a new patch for musb_set_toggle
> 2. Add summarize of MediaTek musb controller differences in the commit log
> 3. Abondon patch "usb: musb: Move musbhsdma macro definition to musb_dma.h"
> 4. Add "|| COMPILE_TEST" in Kconfig
> 5. Add musb_clearb() and musb_clearw() hooks
> 6. Add get_toggle() and set_toggle() hooks
> 7. Replace musb_readl() with musb_readw() to read 16bit toggle register
> 8. Move MediaTek's private toggle registers from musb_regs.h to mediatek.c
> 9. Create musbhs_dma_controller_create_noirq()
> 
> Min Guo (4):
>   dt-bindings: usb: musb: Add support for MediaTek musb controller
>   arm: dts: mt2701: Add usb2 device nodes
>   usb: musb: Extract set toggle as a separate interface
>   usb: musb: Add support for MediaTek musb controller
> 
>  .../devicetree/bindings/usb/mediatek,musb.txt      |  43 ++
>  arch/arm/boot/dts/mt2701-evb.dts                   |  21 +
>  arch/arm/boot/dts/mt2701.dtsi                      |  33 ++
>  drivers/usb/musb/Kconfig                           |   8 +-
>  drivers/usb/musb/Makefile                          |   1 +
>  drivers/usb/musb/mediatek.c                        | 617 +++++++++++++++++++++
>  drivers/usb/musb/musb_core.c                       |  69 +++
>  drivers/usb/musb/musb_core.h                       |   9 +
>  drivers/usb/musb/musb_dma.h                        |   9 +
>  drivers/usb/musb/musb_host.c                       |  35 +-
>  drivers/usb/musb/musb_io.h                         |   6 +
>  drivers/usb/musb/musbhsdma.c                       |  55 +-
>  12 files changed, 868 insertions(+), 38 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/usb/mediatek,musb.txt
>  create mode 100644 drivers/usb/musb/mediatek.c
> 

I tried the series on my mt7623

Tested-by: Ryder Lee <ryder.lee@mediatek.com>