From: s.hauer@pengutronix.de (Sascha Hauer)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/9] USB: add devicetree helpers for determining dr_mode and phy_type
Date: Thu, 14 Feb 2013 12:24:49 +0100 [thread overview]
Message-ID: <20130214112449.GL1906@pengutronix.de> (raw)
In-Reply-To: <20130214101510.GA15537@arwen.pp.htv.fi>
On Thu, Feb 14, 2013 at 12:15:10PM +0200, Felipe Balbi wrote:
> Hi,
>
> On Thu, Feb 14, 2013 at 11:07:22AM +0100, Sascha Hauer wrote:
> > > > >> @@ -32,4 +35,37 @@ const char *usb_speed_string(enum usb_device_speed speed)
> > > > >> }
> > > > >> EXPORT_SYMBOL_GPL(usb_speed_string);
> > > > >>
> > > > >> +#ifdef CONFIG_OF
> > > > >> +static const char *usb_dr_modes[] = {
> > > > >> + [USB_DR_MODE_UNKNOWN] = "",
> > > > >> + [USB_DR_MODE_HOST] = "host",
> > > > >> + [USB_DR_MODE_PERIPHERAL] = "peripheral",
> > > > >> + [USB_DR_MODE_OTG] = "otg",
> > > > >> +};
> > > > >
> > > > > It turns out this is a problem, especially since this is generic usb
> > > > > code: we have a chipidea controller (a patchset just arrived) that does
> > > > > both host and peripheral, but not otg. And I'm told now that dwc3
> > > > > controller can be synthesized like that too.
> > >
> > > I wonder if this part is really necessary. Usually you would read it
> > > from HW's registers. For dwc3, it's quite recently that we allowed the
> > > driver to be built with host-only, device-only or DRD functionality.
> >
> > We have quite some boards on which the ID pin is not wired up, so if a
> > core is both host and device capable there is no way to detect the
> > wanted mode if not given from the devicetree.
>
> right, that's fair. But that doesn't mean board can't work as both,
> right. The IP is still the same, just the board is wired differently ;-)
Yes, it is. Usually I run kernels with both host and device support enabled.
Consider the IP is OTG capable, the chipidea driver will initialize
both roles. Now if a board only supports one role and does not have an
ID pin, how do I make sure the driver is in the correct mode? I need to
specify it somehow. Otherwise I may end up on a host-only board with the
driver sitting in device mode, or with a device-only board with the
driver sitting in host mode.
>
> > > Maybe we can ignore dr_mode in host-only and device-only builds and only
> > > look at it for DRD builds ?
> >
> > If something is or is not compiled in the kernel this doesn't mean the kernel
> > is not started on boards with a different situation.
>
> who said kernel wouldn't start ? If you request a host-only build, you
> need to force your IP into working as host, since that's all you have,
> either that or you bail out on probe().
Let me clarify, I don't want to use Kconfig to specify my boards
capabilities. If a kernel is compiled for host mode only and the
devicetree specifies a port is device-only, then yes, the driver
should bail out on probe, maybe leaving a message that it found
a device for which the suitable role is not compiled in.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2013-02-14 11:24 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-04 13:24 [PATCH v4] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-04 13:24 ` [PATCH 1/9] usb: otg: use try_module_get in all usb_get_phy functions and add missing module_put Sascha Hauer
2013-02-04 13:59 ` Roger Quadros
2013-02-04 14:10 ` Marc Kleine-Budde
2013-02-04 14:39 ` Roger Quadros
2013-02-04 13:24 ` [PATCH 2/9] USB: move bulk of otg/otg.c to phy/phy.c Sascha Hauer
2013-02-19 9:30 ` Felipe Balbi
2013-02-19 19:06 ` Sascha Hauer
2013-02-19 19:48 ` Felipe Balbi
2013-02-04 13:24 ` [PATCH 3/9] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-14 9:36 ` Alexander Shishkin
2013-02-14 9:49 ` Marc Kleine-Budde
2013-02-14 9:58 ` Felipe Balbi
2013-02-14 10:07 ` Sascha Hauer
2013-02-14 10:15 ` Felipe Balbi
2013-02-14 11:24 ` Sascha Hauer [this message]
2013-02-14 13:10 ` Felipe Balbi
2013-02-14 16:06 ` Sascha Hauer
2013-02-14 18:04 ` Felipe Balbi
2013-02-14 18:30 ` Sascha Hauer
2013-02-14 19:36 ` Felipe Balbi
2013-02-15 10:54 ` Sascha Hauer
2013-02-17 9:00 ` Peter Chen
2013-02-14 10:11 ` Marc Kleine-Budde
2013-02-14 10:16 ` Felipe Balbi
2013-03-13 9:43 ` Peter Chen
2013-02-04 13:24 ` [PATCH 4/9] USB: chipidea: ci13xxx-imx: create dynamic platformdata Sascha Hauer
2013-02-04 13:24 ` [PATCH 5/9] USB: chipidea: add PTW and PTS handling Sascha Hauer
2013-02-14 13:07 ` Alexander Shishkin
2013-02-27 10:23 ` Marc Kleine-Budde
2013-02-04 13:24 ` [PATCH 6/9] USB chipidea: introduce dual role mode pdata flags Sascha Hauer
2013-02-22 2:09 ` Peter Chen
2013-02-27 10:42 ` Marc Kleine-Budde
2013-02-04 13:24 ` [PATCH 7/9] USB chipidea i.MX: introduce dr_mode property Sascha Hauer
2013-02-04 13:24 ` [PATCH 8/9] USB mxs-phy: Register phy with framework Sascha Hauer
2013-02-04 13:24 ` [PATCH 9/9] USB chipidea i.MX: use devm_usb_get_phy_by_phandle to get phy Sascha Hauer
2013-02-05 11:45 ` Sergei Shtylyov
2013-02-05 11:58 ` Sascha Hauer
2013-02-05 5:54 ` [PATCH v4] USB: add devicetree helpers for determining dr_mode and phy_type Peter Chen
2013-02-07 10:56 ` Sascha Hauer
2013-02-12 13:59 ` Sascha Hauer
2013-02-14 13:22 ` Alexander Shishkin
-- strict thread matches above, loose matches on Subject: below --
2013-02-27 12:27 [PATCH v5 0/9] " Marc Kleine-Budde
2013-02-27 12:27 ` [PATCH 3/9] " Marc Kleine-Budde
2013-02-27 12:31 ` Marc Kleine-Budde
2013-02-27 12:32 ` Felipe Balbi
2013-02-27 12:32 ` Felipe Balbi
2013-02-27 12:38 ` Marc Kleine-Budde
2013-02-27 12:41 ` Felipe Balbi
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=20130214112449.GL1906@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
/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.