[U-Boot] [PATCH] usb: dwc2_udc_otg: support 8-bit interface
Marek Vasut
marex at denx.de
Mon Jun 6 23:05:26 CEST 2016
On 06/06/2016 09:10 PM, Steve Rae wrote:
> 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
>
Or USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8
Or pick this option from DT, which would be the best.
>>
>>>
>>>
>>>> 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
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list