[U-Boot] [PATCH] usb: dwc2_udc_otg: support 8-bit interface

Steve Rae steve.rae at broadcom.com
Mon Jun 6 20:58:45 CEST 2016


On Mon, Jun 6, 2016 at 10:03 AM, Marek Vasut <marex at denx.de> wrote:
>
> On 06/06/2016 06:50 PM, Steve Rae wrote:
> >
> >
> > On Mon, Jun 6, 2016 at 9:30 AM, Marek Vasut <marex at denx.de
> > <mailto:marex at denx.de>> wrote:
> >
> >     On 06/06/2016 06:15 PM, Steve Rae wrote:
> >     > On Mon, Jun 6, 2016 at 8:59 AM, Marek Vasut <marex at denx.de <mailto:marex at denx.de>> wrote:
> >     >>
> >     >> On 06/06/2016 05:57 PM, Steve Rae wrote:
> >     >>> Define CONFIG_USB_GADGET_DWC2_PHY_8_BIT to allow the
> >     >>> physical interface to be 8-bit (rather than 16-bit).
> >     >>>
> >     >>> Signed-off-by: Steve Rae <srae at broadcom.com <mailto:srae at broadcom.com>>
> >     >>
> >     >> Can this config option be picked from DT rather than hard-coded by some
> >     >> new ad-hoc config option ? Also, new options should be Kconfig'd .
> >     >>
> >     >> Thanks
> >     >>
> >     >
> >     > Marek,
> >
> >     Hi,
> >
> >     > would this be the correct place to add this Kconfig???
> >     > is the wording sufficient?
> >     > Thanks, Steve
> >     >
> >     > diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> >     > index a35a1c7..e957df4 100644
> >     > --- a/drivers/usb/gadget/Kconfig
> >     > +++ b/drivers/usb/gadget/Kconfig
> >     > @@ -45,20 +45,26 @@ config USB_GADGET_ATMEL_USBA
> >     >
> >     >  config USB_GADGET_DWC2_OTG
> >     >         bool "DesignWare USB2.0 HS OTG controller (gadget mode)"
> >     >         select USB_GADGET_DUALSPEED
> >     >         help
> >     >           The Designware USB2.0 high-speed gadget controller
> >     >           integrated into many SoCs. Select this option if you want the
> >     >           driver to operate in Peripheral mode. This option requires
> >     >           USB_GADGET to be enabled.
> >     >
> >     > +config USB_GADGET_DWC2_PHY_8_BIT
> >     > +       bool "DesignWare USB2.0 controller (gadget mode)"
> >
> >     This is wrong, right ?
> >
> > (see below)
> >
> >
> >     > +       help
> >     > +         Set the Designware USB2.0 high-speed gadget controller
> >     > +         to 8-bit mode, rather than the default 16-bit mode.
> >
> >     You mean 8bit mode ULPI, don't you ?
> >
> > (see below)
> >
> >
> >     >  config CI_UDC
> >     >         bool "ChipIdea device controller"
> >     >         select USB_GADGET_DUALSPEED
> >     >         help
> >     >           Say Y here to enable device controller functionality of the
> >     >           ChipIdea driver.
> >     >
> >     >  config USB_GADGET_VBUS_DRAW
> >     >         int "Maximum VBUS Power usage (2-500 mA)"
> >     >         range 2 500
> >     >
> >     >>
> >     >>> ---
> >     >>>
> >     >>>  drivers/usb/gadget/dwc2_udc_otg.c | 4 ++++
> >     >>>  include/configs/bcm28155_ap.h     | 1 +
> >     >>>  2 files changed, 5 insertions(+)
> >     >>>
> >     >>> diff --git a/drivers/usb/gadget/dwc2_udc_otg.c
> >     b/drivers/usb/gadget/dwc2_udc_otg.c
> >     >>> index cb20b00..a95c8d5 100644
> >     >>> --- a/drivers/usb/gadget/dwc2_udc_otg.c
> >     >>> +++ b/drivers/usb/gadget/dwc2_udc_otg.c
> >     >>> @@ -415,7 +415,11 @@ static void reconfig_usbd(struct dwc2_udc *dev)
> >     >>>               |0<<7           /* Ulpi DDR sel*/
> >     >>>               |0<<6           /* 0: high speed utmi+, 1: full
> >     speed serial*/
> >     >>>               |0<<4           /* 0: utmi+, 1:ulpi*/
> >     >>> +#ifdef CONFIG_USB_GADGET_DWC2_PHY_8_BIT
> >     >>> +             |0<<3           /* phy i/f  0:8bit, 1:16bit*/
> >     >>> +#else
> >     >>>               |1<<3           /* phy i/f  0:8bit, 1:16bit*/
> >     >>> +#endif
> >     >>>               |0x7<<0;        /* HS/FS Timeout**/
> >
> >
> > Marek,
> > The _only_ thing that I know is that this structure contains settings to
> > make the USB-OTG interface work on Broadcom boards. Broadcom "hardcoded"
> > these values to "utmi+" and "8bit" ("years ago"...), and I am attempting
> > to upstream this change (which I think requires a CONFIG option -- so
> > that I don't break the current usage; unless there is a better method???)
>
> The best method is to pull such configuration from device tree. I don't
> know if DT is used on the BCM28155 chip yet. The acceptable option is to
> add the Kconfig option.
>
> > So what this CONFIG is "called" and what is its "explanation" is
> > completely unknown to me -- hence, I am asking for help in determining
> > what the Kconfig option should actually be....
>
> Something like "DesignWare USB2.0 HS OTG controller PHY interface width"
> ? The bit which this alters has to be described in the controller
> manual, so just call it the same.

( I don't have access to a manual )
In the kernel, it seems to be defined as:
GUSBCFG_PHYIF8
GUSBCFG_PHYIF16
>
>
> btw the Kconfig option should be moved under the DWC2 controller entry,
> something like this will do:

OK
>
>
> if USB_GADGET_DWC2
> config USB_GADGET_DWC2_PHY_8_BIT
>     .......
> endif

I assume you mean USB_GADGET_DWC2_OTG (USB_GADGET_DWC2 does not exist)???

+if USB_GADGET_DWC2_OTG
+
+config USB_GADGET_DWC2_OTG_PHY_8_BIT
+       bool "DesignWare USB2.0 HS OTG controller PHY interface width"
+       help
+         Set the Designware USB2.0 high-speed OTG controller
+         PHY interface width to 8 bits, rather that the default (16 bits).
+
+endif # USB_GADGET_DWC2_OTG

or    USB_GADGET_DWC2_OTG_PHYIF8

or    ????

>
>
> > Thanks in advance, Steve
> >
> >     >>>
> >     >>>       if (dev->pdata->usb_gusbcfg)
> >     >>> diff --git a/include/configs/bcm28155_ap.h
> >     b/include/configs/bcm28155_ap.h
> >     >>> index 889e5db..e04cfbe 100644
> >     >>> --- a/include/configs/bcm28155_ap.h
> >     >>> +++ b/include/configs/bcm28155_ap.h
> >     >>> @@ -134,6 +134,7 @@
> >     >>>  #define CONFIG_SYS_CACHELINE_SIZE    64
> >     >>>  #define CONFIG_FASTBOOT_BUF_SIZE     (CONFIG_SYS_SDRAM_SIZE -
> >     SZ_1M)
> >     >>>  #define CONFIG_FASTBOOT_BUF_ADDR     CONFIG_SYS_SDRAM_BASE
> >     >>> +#define CONFIG_USB_GADGET_DWC2_PHY_8_BIT
> >     >>>  #define CONFIG_USB_GADGET_BCM_UDC_OTG_PHY
> >     >>>  #define CONFIG_USBID_ADDR            0x34052c46
> >     >>>
> >     >>>
> >     >>
> >     >>
> >     >> --
> >     >> Best regards,
> >     >> Marek Vasut
> >
> >
> >     --
> >     Best regards,
> >     Marek Vasut
> >
> >
>
>
> --
> Best regards,
> Marek Vasut


More information about the U-Boot mailing list