[U-Boot] usb: ehci: Take advantage of the new multi-controller feature for MXC
Benoît Thébaudeau
benoit.thebaudeau at advansee.com
Mon Nov 5 21:50:56 CET 2012
Hi Marek,
Thanks to Lucas' series coming with commits c7e3b2b and 676ae06, I'd like to use
the multi-controller feature on MXC since most of these SoCs come with a USB IP
supporting an OTG controller and multiple host-only controllers.
Currently the MXC code in ehci-mx{c|5|6}.c just ignores the index passed to
ehci_hcd_init() and the like, and there are 3 port-specific configs
(CONFIG_MXC_USB_PORT, CONFIG_MXC_USB_FLAGS and CONFIG_MXC_USB_PORTSC).
Not all USB ports from the USB IP will be available on each board for a given
SoC, so we need a logical to physical USB port mapping.
I would suggest something like the following.
board.h:
#define CONFIG_MXC_USB { \
{ \
0, \
MXC_EHCI_INTERNAL_PHY, \
MXC_EHCI_UTMI_16BIT | MXC_EHCI_MODE_UTMI \
}, { \
1, \
MXC_EHCI_POWER_PINS_ENABLED | MXC_EHCI_PWR_PIN_ACTIVE_HIGH | \
MXC_EHCI_OC_PIN_ACTIVE_LOW, \
MXC_EHCI_MODE_ULPI \
}, \
}
ehci-fsl.h:
struct mxc_ehci_cfg {
int port;
u32 flags;
u32 portsc;
};
ehci-mx{c|5|6}.c:
static const struct mxc_ehci_cfg cfg[CONFIG_USB_MAX_CONTROLLER_COUNT] =
CONFIG_MXC_USB;
Then, in ehci_hcd_init(), there would be the following replacements:
- CONFIG_MXC_USB_PORT -> cfg[index].port,
- CONFIG_MXC_USB_FLAGS -> cfg[index].flags,
- CONFIG_MXC_USB_PORTSC -> cfg[index].portsc.
What do you think?
Best regards,
Benoît
More information about the U-Boot
mailing list