All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] usb: ehci: Take advantage of the new multi-controller feature for MXC
Date: Tue, 6 Nov 2012 00:52:26 +0100 (CET)	[thread overview]
Message-ID: <1204803970.595037.1352159546113.JavaMail.root@advansee.com> (raw)
In-Reply-To: <201211052354.13036.marex@denx.de>

Dear Marek Vasut,

On Monday, November 5, 2012 11:54:12 PM, Marek Vasut wrote:
> Dear Beno?t Th?baudeau,
> 
> > 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?
> 
> What about passing port private / platform data instead of ID ?

The ID is already passed to ehci_hcd_init(), so we have to live with it if we
don't want to change the newly introduced multi-controller infrastructure.

Or, perhaps this is what you meant, we could have some:
int ehci_mxc_register(int index, const struct mxc_ehci_cfg *cfg);
This function would simply fill an entry in the cfg array in ehci-mx{c|5|6}.c,
this array becoming an array of pointers to struct mxc_ehci_cfg. This looks
nicer, but it needs more code to do just the same thing as the CONFIG_MXC_USB
would do, without adding any feature. The only benefit would be if index were
actually the same as port here, but ehci_hcd_init() would still be called for
all indexes, so it would have to fail e.g. if port 0 is unused but port 1 is
used, which would probably generate some error noise for the user.

Or did you mean something else?

Best regards,
Beno?t

  reply	other threads:[~2012-11-05 23:52 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1242814866.587541.1352146777830.JavaMail.root@advansee.com>
2012-11-05 20:50 ` [U-Boot] usb: ehci: Take advantage of the new multi-controller feature for MXC Benoît Thébaudeau
2012-11-05 22:54   ` Marek Vasut
2012-11-05 23:52     ` Benoît Thébaudeau [this message]
2012-11-05 23:56       ` Marek Vasut
2012-11-06  7:43         ` Lucas Stach
2012-11-06 19:59           ` Benoît Thébaudeau
2012-11-06 22:38             ` Marek Vasut
2012-11-06 22:35           ` Marek Vasut
2012-11-06 23:03             ` Lucas Stach
2012-11-07 13:25               ` Marek Vasut
2012-11-07 13:57                 ` Lucas Stach
2012-11-07 14:13                   ` Marek Vasut
2012-11-18 16:19                     ` Benoît Thébaudeau
2012-11-18 16:21                       ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1204803970.595037.1352159546113.JavaMail.root@advansee.com \
    --to=benoit.thebaudeau@advansee.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.