[U-Boot] Doubt in USB driver for Vybrid vf610

maitysanchayan at gmail.com maitysanchayan at gmail.com
Sat Oct 24 17:23:05 CEST 2015


Hello,

On 15-10-24 12:09:43, Fabio Estevam wrote:
> Hi Marek,
> 
> On Fri, Oct 23, 2015 at 4:23 PM, Marek Vasut <marex at denx.de> wrote:
> 
> >> Any inputs on the below?
> >
> > I don't have a Vybrid device, CCing Fabio.
> 
> I don't have access to a Vybrid board either.
> 
> Sanchayan,
> 
> Does drivers/usb/host/ehci-mx6.c behave the same way?

No.

I included the particular piece of code below


	if (init == USB_INIT_DEVICE && index == 1)
		return -ENODEV;
	if (init == USB_INIT_HOST && index == 0)
		return -ENODEV;

in the ehci-vf driver because our requirement was to have one port
as client and other as host. Since on USB start both ports get configured
as host as it iterates depending on USB EHCI controller count, the above
was meant to stop the port required as client to be configured as host and
vice versa while using client functionality such as DFU.

I made the mistake of not thinking that this is not a generic use case,
someone might want it the other way around or such.

So coming to the main question, what would be the correct way to fix this?
I tested that even if the above four lines are removed and USB start configures
both ports as host, calling dfu later will still result in correct functioning.
So is this ok and the four lines should be nuked or a more appropriate way would
be to add something like board_ehci_hcd_init_with_type(int index, enum usb_init
_type init) which would be a weak function and have the board specific code call
this to do the above which is currently done in ehci-vf.

I wasn't sure about the right approach to take so I asked.

Thanks & Regards,
Sanchayan.


More information about the U-Boot mailing list