[U-Boot] [PATCH] usb: dwc2_udc_otg: support 8-bit interface
Steve Rae
srae at broadcom.com
Mon Jun 6 21:10:45 CEST 2016
On Mon, Jun 6, 2016 at 11:58 AM, Steve Rae <steve.rae at broadcom.com> wrote:
> 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 ????
found more defines in the kernel:
GHWCFG4_UTMI_PHY_DATA_WIDTH_8
GHWCFG4_UTMI_PHY_DATA_WIDTH_16
so maybe:
USB_GADGET_DWC2_OTG_PHY_DATA_WIDTH_8
>
>>
>>
>> > 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