Hello Stefano / Marek, Can you pick this up?
- Sanchayan. On 15-10-26 18:28:50, Sanchayan Maity wrote: > Add board_usb_phy_mode weak function on similar lines to ehci-mx6. > However since Vybrid USB does not have a true OTG, make this weak > functon just return 0. The function is supposed to be implemented > by the individual boards using a GPIO for providing the OTG pin > functionality. > > Signed-off-by: Sanchayan Maity <maitysancha...@gmail.com> > --- > There seems to be a problem here. As per DFU's help note, > the first argument to dfu is the USB controller. > > So if dfu 1 nand 2 is run, I would expect the ehci_hcd_init > function's first index argument to recieve 1. However this > does not seem to be the case. Not sure if I am understanding > something wrongly here. Is this expected? > > Currently because of this even though I did like dfu 1 nand 2 > to bail out, it does not. I tried tracing the code from do_dfu > but I have yet to get from where ehci_hcd_init is getting called > in the call chain. > > All seems to be well when using usb start. > > --- > drivers/usb/host/ehci-vf.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/usb/host/ehci-vf.c b/drivers/usb/host/ehci-vf.c > index 351e0fb..335e303 100644 > --- a/drivers/usb/host/ehci-vf.c > +++ b/drivers/usb/host/ehci-vf.c > @@ -121,6 +121,11 @@ static void usb_oc_config(int index) > setbits_le32(ctrl, UCTRL_OVER_CUR_DIS); > } > > +int __weak board_usb_phy_mode(int port) > +{ > + return 0; > +} > + > int __weak board_ehci_hcd_init(int port) > { > return 0; > @@ -130,6 +135,7 @@ int ehci_hcd_init(int index, enum usb_init_type init, > struct ehci_hccr **hccr, struct ehci_hcor **hcor) > { > struct usb_ehci *ehci; > + enum usb_init_type type; > > if (index >= ARRAY_SIZE(nc_reg_bases)) > return -EINVAL; > @@ -148,6 +154,10 @@ int ehci_hcd_init(int index, enum usb_init_type init, > *hcor = (struct ehci_hcor *)((uint32_t)*hccr + > HC_LENGTH(ehci_readl(&(*hccr)->cr_capbase))); > > + type = board_usb_phy_mode(index); > + if (type != init) > + return -ENODEV; > + > if (init == USB_INIT_DEVICE) { > setbits_le32(&ehci->usbmode, CM_DEVICE); > writel((PORT_PTS_UTMI | PORT_PTS_PTW), &ehci->portsc); > -- > 2.6.2 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot