From: Peter Chen <hzpeterchen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@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,
Alan Stern
<stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@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: Thu, 21 Jan 2016 11:15:24 +0800 [thread overview]
Message-ID: <20160121031524.GA29893@shlinux2> (raw)
In-Reply-To: <5639398.uJHXq6DsMC@wuerfel>
On Wed, Jan 20, 2016 at 03:19:36PM +0100, Arnd Bergmann wrote:
> On Wednesday 20 January 2016 20:50:26 Peter Chen wrote:
> > On Wed, Jan 20, 2016 at 10:07:13AM +0100, Arnd Bergmann wrote:
> > > On Wednesday 20 January 2016 11:48:39 Peter Chen wrote:
> > > > >
> > > > > > Alternatively, you could use one of the high bits of the 'reg' value
> > > > > > to indicate which root hub is used. I'm sure that would work as
> > > > > > well, but be less obvious.
> > > > >
> > > > > It's probably best to stick with the same numbering that the hardware
> > > > > uses.
> > > >
> > > > Seems we are talking about root hub, not the device in the
> > > > root hub. So for multiple ports controller, we have to own node for
> > > > root hub. Assume your example, there is a genesys HUB at physical
> > > > port 1, I suggest a dts node description like below, please correct
> > > > me if anything wrong.
> > > >
> > > > &usb1 {
> > > > roothub_1: nxp@1 {
> > > > compatible = "usb15a2,007d";
> > > > reg = <0x01>;
> > > >
> > > > hub: genesys@1 {
> > > > compatible = "usb05e3,0608";
> > > > reg = <0x01>;
> > > > };
> > > > };
> > > >
> > > > roothub_2: nxp@2 {
> > > > compatible = "usb15a2,007d";
> > > > reg = <0x02>;
> > > > };
> > > >
> > > > ...
> > > >
> > > > roothub_7: nxp@7 {
> > > > compatible = "usb15a2,007d";
> > > > reg = <0x07>;
> > > >
> > > > hub: genesys@1 {
> > > > compatible = "usb05e3,0608";
> > > > reg = <0x01>;
> > > > };
> > > > };
> > > >
> > > > ...
> > > >
> > > > roothub_9: nxp@9 {
> > > > compatible = "usb15a2,007d";
> > > > reg = <0x09>;
> > > > };
> > > > };
> > >
> > > This looks wrong to me: if I understand it right, you are now modeling
> > > each port of the root hub as a separate hub, so you end up with
> > > a total of 11 hub nodes when there should only be one or two.
> > >
> >
> > How about below from both driver and device tree view:
> >
> > 1. From the USB driver view
> >
> > USB Controller
> > |
> > |
> > ---------------------|----------------
> > | |
> > root hub(HS) root hub(SS, optional)
> > | |
> > --------------------- -------------------------
> > | | ... | | | |
> > port 1 port 2 port 6 port 1 port 2 port 3
> > | |
> > genesys hub (if HS) genesys hub (if SS)
> >
> > 2. dts node:
> >
> > &usb1 {
> > port_1: nxp@1 {
> > compatible = "usb15a2,007d";
> > reg = <0x01>;
> >
> > hub: genesys@1 {
> > compatible = "usb05e3,0608";
> > reg = <0x01>;
> > };
> > };
> >
> > port_2: nxp@2 {
> > compatible = "usb15a2,007d";
> > reg = <0x02>;
> > };
> >
> > ...
> >
> > port_7: nxp@7 {
> > compatible = "usb15a2,007d";
> > reg = <0x07>;
> >
> > hub: genesys@1 {
> > compatible = "usb05e3,0608";
> > reg = <0x01>;
> > };
> > };
> >
> > ...
> >
> > port_9: nxp@9 {
> > compatible = "usb15a2,007d";
> > reg = <0x09>;
> > };
> > };
> >
> > - If the above are ok, is it ok we add two nodes for the same device
> > in case the speed negotiation is different at some situations?
> > - Usually, it should be ok we only add nodes at device tree which
> > the hard wired device on it, like port_1 and port 7 at above, right?
>
> This looks identical to the version before, what is the difference?
>
Just adding from device driver view and change the name from "roohub" to
"port".
It is the port number (1-9), but not the root hub number.
At the most of embedded platforms, we have only one port per controller.
For example, at the non-hub boards, if there are two Standard-A ports,
there are from two different USB controllers.
But for Alan's case, it has six ports, and all from the one USB controller,
port 1 to port 6 are from the HS root hub, port 7 to port 9 are from the SS
root hub.
For the single port controller platform, the dts will be like below, port_1 is
under the HS root hub, port_2 is under the SS root hub.
&usb1 {
port_1: nxp@1 {
compatible = "usb15a2,007d";
reg = <0x01>;
hub: genesys@1 {
compatible = "usb05e3,0608";
reg = <0x01>;
};
};
port_2: nxp@2 {
compatible = "usb15a2,007d";
reg = <0x02>;
hub: genesys@1 {
compatible = "usb05e3,0608";
reg = <0x01>;
};
};
};
--
Best Regards,
Peter Chen
--
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-21 3:15 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 [this message]
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
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=20160121031524.GA29893@shlinux2 \
--to=hzpeterchen-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=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=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).