[U-Boot] [PATCH v3 08/11] usb: ehci: add Faraday USB 2.0 EHCI support

Marek Vasut marex at denx.de
Wed May 1 21:34:29 CEST 2013


Dear Kuo-Jung Su,

> 2013/4/30 Marek Vasut <marex at denx.de>:
> > Dear Kuo-Jung Su,
> > 
> >> 2013/4/26 Marek Vasut <marex at denx.de>:
> >> > Dear Kuo-Jung Su,
> >> > 
> >> >> From: Kuo-Jung Su <dantesu at faraday-tech.com>
> >> >> 
> >> >> This patch add supports to both Faraday FUSBH200 and FOTG210,
> >> >> these controllers slightly differ from standard EHCI specification.
> >> > 
> >> > How do they differ?
> >> 
> >> 1. The reserved registers (0x1C - 0x3F) and CONFIGFLAG (0x40) register
> >> 
> >>     are not only un-implemented, but also removed from its register
> >>     address space, which means we have to update the 'struct ehci_hcor'
> >>     of ehci.h
> >> 
> >> 2. FUSBH200/FOTG210 doesn't properly follow the ECHI for ISOC
> >> implementations. (It should be a hardware bug, but no one wants to fix
> >> it.)
> >> 
> >> I'll add these description to commit log at next patch.
> > 
> > Mhmmm ... maybe you can add some hooks into ehci-hcd driver instead of
> > poluting it with ifdefs ? Weak-aliased functions would probably work
> > best to contain your weird stuff in your driver only.
> 
> Did you mean 'Not poluting ehci.h with ifdefs' ?
> 
> It looks to me that the best way is to leave ehci.h untouched, and
> update the ehci_submit_root() as following:
> ----------------------------
> ehci_submit_root()
> {
> ......
> #ifdef CONFIG_USB_EHCI_FARADAY
>     status_reg = (uint32_t *)((uint8_t *)&ctrl->hcor + 0x30);
> #else
>     status_reg = (uint32_t *)&ctrl->hcor->or_portsc[
>                  le16_to_cpu(req->index) - 1];
> #endif
> ......
> }
> ------------------------------
> 
> Would it be acceptable in this way?
> 
> If it's not, I'll make this patch as a separate patch with some hooks
> into ehci-hcd.

What about defining a

__weak uint32_t get_status_register()
{
...
}

function and override it's implementation in your driver?

Best regards,
Marek Vasut


More information about the U-Boot mailing list