From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Peter Chen <hzpeterchen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
stillcompiling-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
pawel.moll-5wv7dgnIgG8@public.gmane.org,
valentin.longchamp-SkAbAL50j+5BDgjK7y7TUQ@public.gmane.org,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
balbi-l0cyMroinI0@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
Peter Chen <peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org
Subject: Re: [PATCH v3 1/1] USB: core: let USB device know device node
Date: Fri, 22 Jan 2016 17:23:33 +0100 [thread overview]
Message-ID: <2649144.tYaWDcKkag@wuerfel> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1601221023350.1626-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
On Friday 22 January 2016 10:55:01 Alan Stern wrote:
> On Fri, 22 Jan 2016, Arnd Bergmann wrote:
>
> > > > hub@3 { /* same external hub, highspeed mode */
> > > > compatible = "usb2109,0812.591",
> > > > "usb2109,0812",
> > > > "usb2109,class9.0.1",
> > > > "usb2109,class9.0",
> > > > "usb2109,class9";
> > > >
> > > > #address-cells = <1>;
> > > > #size-cells = <0>;
> > > > reg = <3>;
> > > >
> > >
> > > Why "reg" is 3 here?
> >
> > My mistake. It should be hub@1 and reg=<1>;
> >
> > I accidentally confused the port number and the device number.
>
> I thought you did it this way because you were numbering the SS
> root-hub ports 1-2 and the HS root-hub ports 3-4.
Right, I was confusing myself after the question. It was intentional
after all.
> There's something I should have made clear earlier. This scheme for
> putting SS and HS USB-3 root-hub ports in the same number space is part
> of the xHCI spec. It's not AFAIK required (or even mentioned) by the
> USB-3 spec, which means other types of USB-3 host controllers might do
> it differently.
>
> The scheme which numbers SS and HS ports separately, both starting from
> 1, is mandated by the USB-3 spec for non-root hubs. But since that
> spec doesn't say much about root hubs, the OS is free to treat them
> however it likes. We have chosen to make root hubs appear as similar
> as possible to non-root hubs; however I believe that Windows (for
> example) may do things differently.
>
> At any rate, since DT strives to reflect the actual hardware
> properties, you probably should use the xHCI numbering scheme when
> describing the ports of an xHCI root hub.
Yes, indeed that is what I was trying to say here.
> > > > Is it possible to have a hub in an interface of a multifunction device
> > > > or are they always single-configuration single-interface devices?
> > > >
> > >
> > > I have not seen such kinds of devices, but it is possible in theory.
> >
> > Ok, so if the USB spec allows it, we should probably try to handle it too.
>
> No, the spec does not allow it. In fact, the spec divides all USB
> devices into two classes: hubs and functions. A function is anything
> that isn't a hub. And a hub is never allowed to contain more than one
> configuration and interface.
Ok, that helps.
> The spec does allow for multiple functions to be packaged in the same
> physical device. In this case, the physical device contains a hub
> along with various functions permanently connected to it.
>
> For example, the old Apple USB keyboards are compound devices. They
> contain an internal 3-port hub; one of the ports is permanently wired
> to the keyboard controller and the other two are exposed to the user,
> allowing a mouse and something else to be attached.
Good, that is straightforward to represent in a way that matches both
the DT binding and the Linux-internal representation.
We just have to decide what to do for non-hub devices that the OF
specification calls "combined nodes" (device class 0, one configuration,
one interface) and that, like hubs do not have one of_node per interface
plus one per device, but only one node.
Should we bind the of_node to the usb_device, the usb_interface or both
in this case? Doing both might be problematic and would need more
testing to be sure it works.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-01-22 16:23 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-15 9:17 [PATCH v3 1/1] USB: core: let USB device know device node Peter Chen
[not found] ` <1452849447-25025-1-git-send-email-peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2016-01-15 11:11 ` Arnd Bergmann
2016-01-15 15:11 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1601151006330.1533-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-01-15 23:03 ` Arnd Bergmann
2016-01-16 16:40 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1601161115050.11338-100000-pYrvlCTfrz9XsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-01-18 8:15 ` Peter Chen
2016-01-18 16:46 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1601181139150.25155-100000-pYrvlCTfrz9XsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-01-19 3:08 ` Peter Chen
2016-01-19 11:33 ` Arnd Bergmann
2016-01-19 15:12 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1601191009190.1727-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-01-20 3:48 ` Peter Chen
2016-01-20 9:07 ` Arnd Bergmann
2016-01-20 12:50 ` Peter Chen
2016-01-20 14:19 ` Arnd Bergmann
2016-01-21 3:15 ` Peter Chen
2016-01-21 8:41 ` Arnd Bergmann
2016-01-21 9:48 ` Peter Chen
2016-01-21 10:10 ` Arnd Bergmann
2016-01-21 15:21 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1601211015010.2275-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-01-21 22:24 ` Arnd Bergmann
2016-01-22 6:59 ` Peter Chen
2016-01-22 10:18 ` Arnd Bergmann
2016-01-22 15:55 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1601221023350.1626-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-01-22 16:23 ` Arnd Bergmann [this message]
2016-01-22 19:29 ` Alan Stern
2016-01-25 1:55 ` Peter Chen
2016-01-25 3:57 ` Peter Chen
[not found] ` <CAL411-qfzcynzc=YrepzcA6EmFuxy-Ri4xRQ+R-QVBDEPZXtZQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-01-25 8:50 ` Arnd Bergmann
2016-01-25 9:31 ` Peter Chen
2016-01-25 15:23 ` Alan Stern
2016-01-18 10:24 ` Arnd Bergmann
2016-01-18 7:44 ` Peter Chen
2016-01-18 7:42 ` Peter Chen
2016-01-15 17:07 ` Philipp Zabel
[not found] ` <1452877630.6067.97.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2016-01-15 17:30 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1601151220020.1533-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-01-18 7:13 ` Peter Chen
2016-01-18 16:39 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1601181129340.25155-100000-pYrvlCTfrz9XsRXLowluHWD2FQJk+8+b@public.gmane.org>
2016-01-19 2:52 ` Peter Chen
2016-01-18 7:10 ` Peter Chen
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=2649144.tYaWDcKkag@wuerfel \
--to=arnd-r2ngtmty4d4@public.gmane.org \
--cc=balbi-l0cyMroinI0@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=hzpeterchen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
--cc=stillcompiling-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=valentin.longchamp-SkAbAL50j+5BDgjK7y7TUQ@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).