usb: ehci-omap: don't hard-code TLL channel count
Make the TLL channel count a parameter instead of a hardcoded value. This allows us to be flexible with future OMAP revisions which could have a different number of channels. Signed-off-by: Keshava Munegowda <keshava_mgowda@ti.com> Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
This commit is contained in:
parent
6dba39e278
commit
c072604115
|
@ -191,13 +191,14 @@ struct ehci_hcd_omap {
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
static void omap_usb_utmi_init(struct ehci_hcd_omap *omap, u8 tll_channel_mask)
|
static void omap_usb_utmi_init(struct ehci_hcd_omap *omap, u8 tll_channel_mask,
|
||||||
|
u8 tll_channel_count)
|
||||||
{
|
{
|
||||||
unsigned reg;
|
unsigned reg;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Program the 3 TLL channels upfront */
|
/* Program the 3 TLL channels upfront */
|
||||||
for (i = 0; i < OMAP_TLL_CHANNEL_COUNT; i++) {
|
for (i = 0; i < tll_channel_count; i++) {
|
||||||
reg = ehci_omap_readl(omap->tll_base, OMAP_TLL_CHANNEL_CONF(i));
|
reg = ehci_omap_readl(omap->tll_base, OMAP_TLL_CHANNEL_CONF(i));
|
||||||
|
|
||||||
/* Disable AutoIdle, BitStuffing and use SDR Mode */
|
/* Disable AutoIdle, BitStuffing and use SDR Mode */
|
||||||
|
@ -217,7 +218,7 @@ static void omap_usb_utmi_init(struct ehci_hcd_omap *omap, u8 tll_channel_mask)
|
||||||
ehci_omap_writel(omap->tll_base, OMAP_TLL_SHARED_CONF, reg);
|
ehci_omap_writel(omap->tll_base, OMAP_TLL_SHARED_CONF, reg);
|
||||||
|
|
||||||
/* Enable channels now */
|
/* Enable channels now */
|
||||||
for (i = 0; i < OMAP_TLL_CHANNEL_COUNT; i++) {
|
for (i = 0; i < tll_channel_count; i++) {
|
||||||
reg = ehci_omap_readl(omap->tll_base, OMAP_TLL_CHANNEL_CONF(i));
|
reg = ehci_omap_readl(omap->tll_base, OMAP_TLL_CHANNEL_CONF(i));
|
||||||
|
|
||||||
/* Enable only the reg that is needed */
|
/* Enable only the reg that is needed */
|
||||||
|
@ -438,7 +439,7 @@ static int omap_start_ehc(struct ehci_hcd_omap *omap, struct usb_hcd *hcd)
|
||||||
tll_ch_mask |= OMAP_TLL_CHANNEL_3_EN_MASK;
|
tll_ch_mask |= OMAP_TLL_CHANNEL_3_EN_MASK;
|
||||||
|
|
||||||
/* Enable UTMI mode for required TLL channels */
|
/* Enable UTMI mode for required TLL channels */
|
||||||
omap_usb_utmi_init(omap, tll_ch_mask);
|
omap_usb_utmi_init(omap, tll_ch_mask, OMAP_TLL_CHANNEL_COUNT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (omap->phy_reset) {
|
if (omap->phy_reset) {
|
||||||
|
|
Loading…
Reference in New Issue