[U-Boot] [PATCH v5 0/7] usb: Add cadence USB3 gadget/host/phy driver

Vignesh Raghavendra vigneshr at ti.com
Wed Aug 28 12:48:33 UTC 2019


Hi Sherry,

On 21/08/19 8:05 PM, Sherry Sun wrote:
> These patches introduce new Cadence driver to U-Boot.
> The first patch is to add the Cadence USB3 IP(CDNS3) core and driver for 
> the usb gadget.
> The second patch introduce the xhci-imx8 usb host driver separately.
> The third patch introduce the cdns3 phy driver which can be used for both 
> cdns3 host driver and gadget driver.
> The cdns3 usb gadget/host/phy driver are all used DM mode.
> 
> The current driver has been validated on i.MX8 platform.
> If someone want to test it, please note that the additional dts nodes/
> config macros/clock driver are also essential. You can also get
> my test patches at https://github.com/sherrysun1/u-boot-imx.git to 
> start your test quickly.
> 

I see that Cadence USB driver for Linux kernel is still under
development and DT compatible binding is supposed to be "cdns,usb3" not
"cdns,usb3-1.0.0". See v11:
https://patchwork.kernel.org/patch/11114415/
Deviating from kernel binding will break sync'ing of DTs b/w kernel and
U-Boot.

Also, why not sync the latest host/gadget driver patches from kernel as
is? That should help in borrowing bug fixes/features whenever Cadence
updates kernel driver in future.

BTW, have you tested gadget driver with functions that use bulk
endpoints such as f_mass_storage or f_fastboot?

Regards
Vignesh

> Changes in v5:
>  - Delete some unnecessary code.
>  - Fix some issues about lack of parentheses.
>  - Add separate patch for core framework changes. 
>  - Add "reg-names" for usb nodes in DT and use it to get reg
>  values.
>  - Use "cdns,usb3-1.0.0" compatible instead "cdns,usb3".
>  - Add DM_FLAG_OS_PREPARE flag to xhci-imx8 driver.
> 
> Sherry Sun (7):
>   dt-bindings: add dt-binding doc for CDNS3 controller
>   usb: gadget: Add the cadence USB3 gadget driver
>   usb: gadget: Add match_ep call back to usb_gadget_ops
>   usb: gadget: Add gadget_is_cdns3 checking to provide bcdUSB value
>   usb: host: Add the USB3 host driver
>   phy: Add USB PHY driver for the cadence USB3
>   usb: gadget: core: introduce ->udc_set_speed() method
> 
>  Makefile                                   |    1 +
>  doc/device-tree-bindings/usb/cdns-usb3.txt |   53 +
>  drivers/phy/Kconfig                        |    8 +
>  drivers/phy/Makefile                       |    1 +
>  drivers/phy/cdns3-usb-phy.c                |  241 +++
>  drivers/usb/Kconfig                        |    2 +
>  drivers/usb/cdns3/Kconfig                  |   20 +
>  drivers/usb/cdns3/Makefile                 |    5 +
>  drivers/usb/cdns3/cdns3-generic.c          |  114 +
>  drivers/usb/cdns3/cdns3-nxp-reg-def.h      |   93 +
>  drivers/usb/cdns3/core.c                   |  203 ++
>  drivers/usb/cdns3/core.h                   |  118 ++
>  drivers/usb/cdns3/dev-regs-macro.h         |  116 ++
>  drivers/usb/cdns3/dev-regs-map.h           |  117 ++
>  drivers/usb/cdns3/gadget-export.h          |   26 +
>  drivers/usb/cdns3/gadget.c                 | 2183 ++++++++++++++++++++
>  drivers/usb/cdns3/gadget.h                 |  225 ++
>  drivers/usb/cdns3/io.h                     |   27 +
>  drivers/usb/gadget/epautoconf.c            |    4 +
>  drivers/usb/gadget/gadget_chips.h          |    7 +
>  drivers/usb/gadget/udc/Makefile            |    1 +
>  drivers/usb/gadget/udc/udc-core.c          |   23 +
>  drivers/usb/host/Kconfig                   |    9 +
>  drivers/usb/host/Makefile                  |    1 +
>  drivers/usb/host/xhci-imx8.c               |  210 ++
>  include/linux/usb/gadget.h                 |    5 +
>  scripts/Makefile.spl                       |    1 +
>  27 files changed, 3814 insertions(+)
>  create mode 100644 doc/device-tree-bindings/usb/cdns-usb3.txt
>  create mode 100644 drivers/phy/cdns3-usb-phy.c
>  create mode 100644 drivers/usb/cdns3/Kconfig
>  create mode 100644 drivers/usb/cdns3/Makefile
>  create mode 100644 drivers/usb/cdns3/cdns3-generic.c
>  create mode 100644 drivers/usb/cdns3/cdns3-nxp-reg-def.h
>  create mode 100644 drivers/usb/cdns3/core.c
>  create mode 100644 drivers/usb/cdns3/core.h
>  create mode 100644 drivers/usb/cdns3/dev-regs-macro.h
>  create mode 100644 drivers/usb/cdns3/dev-regs-map.h
>  create mode 100644 drivers/usb/cdns3/gadget-export.h
>  create mode 100644 drivers/usb/cdns3/gadget.c
>  create mode 100644 drivers/usb/cdns3/gadget.h
>  create mode 100644 drivers/usb/cdns3/io.h
>  create mode 100644 drivers/usb/host/xhci-imx8.c
> 

-- 
Regards
Vignesh


More information about the U-Boot mailing list