mbox series

[U-Boot,0/3] USB: Add cadence USB3 gadget driver and host driver

Message ID 1563278895-10635-1-git-send-email-sherry.sun@nxp.com
Headers show
Series USB: Add cadence USB3 gadget driver and host driver | expand

Message

Sherry Sun July 16, 2019, 12:08 p.m. UTC
From: Sherry Sun <sherry.sun@nxp.com>

These patches introduce new Cadence USBSS driver to U-Boot.

The first patch is to add the Cadence USB3 IP(CDNS3) driver for the usb
gadget, but the host mode is not supported now. The second patch
introduce the xhci-imx8 usb host driver separately. The cdns3 usb
gadget driver and xhci-imx8 host driver both use DM mode.

The current driver has been validated on i.MX8 platform.

Sherry Sun (3):
  USB: gadget: Add the cadence USB3 gadget driver
  USB: host: Add the USB3 host driver
  USB: gadget: core: introduce ->udc_set_speed() method

 Makefile                              |    1 +
 drivers/usb/Kconfig                   |    2 +
 drivers/usb/cdns3/Kconfig             |   20 +
 drivers/usb/cdns3/Makefile            |    5 +
 drivers/usb/cdns3/cdns3-generic.c     |  176 ++
 drivers/usb/cdns3/cdns3-nxp-reg-def.h |  158 ++
 drivers/usb/cdns3/core.c              |  408 +++++
 drivers/usb/cdns3/core.h              |  129 ++
 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            | 2278 +++++++++++++++++++++++++
 drivers/usb/cdns3/gadget.h            |  238 +++
 drivers/usb/cdns3/io.h                |   30 +
 drivers/usb/cdns3/linux-compat.h      |   16 +
 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          |  311 ++++
 include/cdns3-uboot.h                 |   26 +
 include/linux/usb/gadget.h            |    5 +
 include/usb/imx8_usb3_reg_def.h       |  455 +++++
 scripts/Makefile.spl                  |    1 +
 26 files changed, 4563 insertions(+)
 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/cdns3/linux-compat.h
 create mode 100644 drivers/usb/host/xhci-imx8.c
 create mode 100644 include/cdns3-uboot.h
 create mode 100644 include/usb/imx8_usb3_reg_def.h

Comments

Igor Opaniuk Aug. 1, 2019, 12:09 p.m. UTC | #1
Hi Sherry,

On Tue, Jul 16, 2019 at 4:15 PM sherry sun <sherry.sun@nxp.com> wrote:
>
> From: Sherry Sun <sherry.sun@nxp.com>
>
> These patches introduce new Cadence USBSS driver to U-Boot.
>
> The first patch is to add the Cadence USB3 IP(CDNS3) driver for the usb
> gadget, but the host mode is not supported now. The second patch
> introduce the xhci-imx8 usb host driver separately. The cdns3 usb
> gadget driver and xhci-imx8 host driver both use DM mode.
>
> The current driver has been validated on i.MX8 platform.
>
> Sherry Sun (3):
>   USB: gadget: Add the cadence USB3 gadget driver
>   USB: host: Add the USB3 host driver
>   USB: gadget: core: introduce ->udc_set_speed() method
>
>  Makefile                              |    1 +
>  drivers/usb/Kconfig                   |    2 +
>  drivers/usb/cdns3/Kconfig             |   20 +
>  drivers/usb/cdns3/Makefile            |    5 +
>  drivers/usb/cdns3/cdns3-generic.c     |  176 ++
>  drivers/usb/cdns3/cdns3-nxp-reg-def.h |  158 ++
>  drivers/usb/cdns3/core.c              |  408 +++++
>  drivers/usb/cdns3/core.h              |  129 ++
>  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            | 2278 +++++++++++++++++++++++++
>  drivers/usb/cdns3/gadget.h            |  238 +++
>  drivers/usb/cdns3/io.h                |   30 +
>  drivers/usb/cdns3/linux-compat.h      |   16 +
>  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          |  311 ++++
>  include/cdns3-uboot.h                 |   26 +
>  include/linux/usb/gadget.h            |    5 +
>  include/usb/imx8_usb3_reg_def.h       |  455 +++++
>  scripts/Makefile.spl                  |    1 +
>  26 files changed, 4563 insertions(+)
>  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/cdns3/linux-compat.h
>  create mode 100644 drivers/usb/host/xhci-imx8.c
>  create mode 100644 include/cdns3-uboot.h
>  create mode 100644 include/usb/imx8_usb3_reg_def.h
>
> --
> 2.17.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> https://lists.denx.de/listinfo/u-boot

Thanks for your patches!
Taking into account that this series introduces a brand new driver,
it would be really nice to also have proper device tree bindings
in doc/device-tree-bindings (so I can at least quickly enable it for my
board, test it and leave my T-b tags).

Thanks
Peng Fan Aug. 2, 2019, 1:04 a.m. UTC | #2
Igor,

> Subject: Re: [U-Boot] [PATCH 0/3] USB: Add cadence USB3 gadget driver and
> host driver
> 
> Hi Sherry,
> 
> On Tue, Jul 16, 2019 at 4:15 PM sherry sun <sherry.sun@nxp.com> wrote:
> >
> > From: Sherry Sun <sherry.sun@nxp.com>
> >
> > These patches introduce new Cadence USBSS driver to U-Boot.
> >
> > The first patch is to add the Cadence USB3 IP(CDNS3) driver for the
> > usb gadget, but the host mode is not supported now. The second patch
> > introduce the xhci-imx8 usb host driver separately. The cdns3 usb
> > gadget driver and xhci-imx8 host driver both use DM mode.
> >
> > The current driver has been validated on i.MX8 platform.
> >
> > Sherry Sun (3):
> >   USB: gadget: Add the cadence USB3 gadget driver
> >   USB: host: Add the USB3 host driver
> >   USB: gadget: core: introduce ->udc_set_speed() method
> >
> >  Makefile                              |    1 +
> >  drivers/usb/Kconfig                   |    2 +
> >  drivers/usb/cdns3/Kconfig             |   20 +
> >  drivers/usb/cdns3/Makefile            |    5 +
> >  drivers/usb/cdns3/cdns3-generic.c     |  176 ++
> >  drivers/usb/cdns3/cdns3-nxp-reg-def.h |  158 ++
> >  drivers/usb/cdns3/core.c              |  408 +++++
> >  drivers/usb/cdns3/core.h              |  129 ++
> >  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            | 2278
> +++++++++++++++++++++++++
> >  drivers/usb/cdns3/gadget.h            |  238 +++
> >  drivers/usb/cdns3/io.h                |   30 +
> >  drivers/usb/cdns3/linux-compat.h      |   16 +
> >  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          |  311 ++++
> >  include/cdns3-uboot.h                 |   26 +
> >  include/linux/usb/gadget.h            |    5 +
> >  include/usb/imx8_usb3_reg_def.h       |  455 +++++
> >  scripts/Makefile.spl                  |    1 +
> >  26 files changed, 4563 insertions(+)
> >  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/cdns3/linux-compat.h  create mode
> > 100644 drivers/usb/host/xhci-imx8.c  create mode 100644
> > include/cdns3-uboot.h  create mode 100644
> > include/usb/imx8_usb3_reg_def.h
> >
> > --
> > 2.17.1
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot@lists.denx.de
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> >
> s.denx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7Cpeng.fan%40nxp.co
> m%7C
> >
> fbf069e4184b49805ff608d716792228%7C686ea1d3bc2b4c6fa92cd99c5c301
> 635%7C
> >
> 0%7C0%7C637002581830489188&amp;sdata=2sLbnCK6jSV9a3NQZFK8iwc1r
> lh5jSyAR
> > qSveO4nebg%3D&amp;reserved=0
> 
> Thanks for your patches!
> Taking into account that this series introduces a brand new driver, it would be
> really nice to also have proper device tree bindings in
> doc/device-tree-bindings (so I can at least quickly enable it for my board, test
> it and leave my T-b tags).

Currently there is also no linux upstream bindings for the new IP, so this
will be dedicated for U-Boot. In future when Linux is ready, need to migrate
to use Linux bindings.

To let you test the patchset, suggest Sherry to create a branch on github
or somewhere.

Regards,
Peng.

> 
> Thanks
> 
> --
> Best regards - Freundliche Grüsse - Meilleures salutations
> 
> Igor Opaniuk
> 
> mailto: igor.opaniuk@gmail.com
> skype: igor.opanyuk
> +380 (93) 836 40 67
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fua.linke
> din.com%2Fin%2Fiopaniuk&amp;data=02%7C01%7Cpeng.fan%40nxp.com%7
> Cfbf069e4184b49805ff608d716792228%7C686ea1d3bc2b4c6fa92cd99c5c30
> 1635%7C0%7C0%7C637002581830489188&amp;sdata=xgOmj3btCYHz8akdK
> 6oK7rLSGD9AhLnQmd6Ob2aq%2Bzc%3D&amp;reserved=0
Sherry Sun Aug. 8, 2019, 9:03 a.m. UTC | #3
Hi Igor,

Sorry for the late reply.

> 
> Igor,
> 
> > Subject: Re: [U-Boot] [PATCH 0/3] USB: Add cadence USB3 gadget driver
> > and host driver
> >
> > Hi Sherry,
> >
> > On Tue, Jul 16, 2019 at 4:15 PM sherry sun <sherry.sun@nxp.com>
> wrote:
> > >
> > > From: Sherry Sun <sherry.sun@nxp.com>
> > >
> > > These patches introduce new Cadence USBSS driver to U-Boot.
> > >
> > > The first patch is to add the Cadence USB3 IP(CDNS3) driver for the
> > > usb gadget, but the host mode is not supported now. The second patch
> > > introduce the xhci-imx8 usb host driver separately. The cdns3 usb
> > > gadget driver and xhci-imx8 host driver both use DM mode.
> > >
> > > The current driver has been validated on i.MX8 platform.
> > >
> > > Sherry Sun (3):
> > >   USB: gadget: Add the cadence USB3 gadget driver
> > >   USB: host: Add the USB3 host driver
> > >   USB: gadget: core: introduce ->udc_set_speed() method
> > >
> > >  Makefile                              |    1 +
> > >  drivers/usb/Kconfig                   |    2 +
> > >  drivers/usb/cdns3/Kconfig             |   20 +
> > >  drivers/usb/cdns3/Makefile            |    5 +
> > >  drivers/usb/cdns3/cdns3-generic.c     |  176 ++
> > >  drivers/usb/cdns3/cdns3-nxp-reg-def.h |  158 ++
> > >  drivers/usb/cdns3/core.c              |  408 +++++
> > >  drivers/usb/cdns3/core.h              |  129 ++
> > >  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            | 2278
> > +++++++++++++++++++++++++
> > >  drivers/usb/cdns3/gadget.h            |  238 +++
> > >  drivers/usb/cdns3/io.h                |   30 +
> > >  drivers/usb/cdns3/linux-compat.h      |   16 +
> > >  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          |  311 ++++
> > >  include/cdns3-uboot.h                 |   26 +
> > >  include/linux/usb/gadget.h            |    5 +
> > >  include/usb/imx8_usb3_reg_def.h       |  455 +++++
> > >  scripts/Makefile.spl                  |    1 +
> > >  26 files changed, 4563 insertions(+)  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/cdns3/linux-compat.h  create mode
> > > 100644 drivers/usb/host/xhci-imx8.c  create mode 100644
> > > include/cdns3-uboot.h  create mode 100644
> > > include/usb/imx8_usb3_reg_def.h
> > >
> > > --
> > > 2.17.1
> > >
> > > _______________________________________________
> > > U-Boot mailing list
> > > U-Boot@lists.denx.de
> > >
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fli
> > > st
> > >
> >
> s.denx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7Cpeng.fan%40nx
> p.co
> > m%7C
> > >
> >
> fbf069e4184b49805ff608d716792228%7C686ea1d3bc2b4c6fa92cd99c
> 5c301
> > 635%7C
> > >
> >
> 0%7C0%7C637002581830489188&amp;sdata=2sLbnCK6jSV9a3NQZFK8i
> wc1r
> > lh5jSyAR
> > > qSveO4nebg%3D&amp;reserved=0
> >
> > Thanks for your patches!
> > Taking into account that this series introduces a brand new driver, it
> > would be really nice to also have proper device tree bindings in
> > doc/device-tree-bindings (so I can at least quickly enable it for my
> > board, test it and leave my T-b tags).
> 
> Currently there is also no linux upstream bindings for the new IP, so this
> will be dedicated for U-Boot. In future when Linux is ready, need to migrate
> to use Linux bindings.
> 
> To let you test the patchset, suggest Sherry to create a branch on github or
> somewhere.
> 
> Regards,
> Peng.
> 

I created a branch on github, you can access it at https://github.com/sherrysun1/u-boot-imx.git.
It includes some patches which I tested for cdns3 driver on imx8qm/qxp, maybe useful to you.
By the way, I also add device tree bindings in doc/device-tree-bindings/usb/ at my branch in github, in case you need.
Feel free to let me know if any problems.

Best regards
Sherry sun


> >
> > Thanks
> >
> > --
> > Best regards - Freundliche Grüsse - Meilleures salutations
> >
> > Igor Opaniuk
> >
> > mailto: igor.opaniuk@gmail.com
> > skype: igor.opanyuk
> > +380 (93) 836 40 67
> >
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fua.
> li
> > nke
> >
> din.com%2Fin%2Fiopaniuk&amp;data=02%7C01%7Cpeng.fan%40nxp.co
> m%7
> >
> Cfbf069e4184b49805ff608d716792228%7C686ea1d3bc2b4c6fa92cd99
> c5c30
> >
> 1635%7C0%7C0%7C637002581830489188&amp;sdata=xgOmj3btCYHz8
> akdK
> > 6oK7rLSGD9AhLnQmd6Ob2aq%2Bzc%3D&amp;reserved=0