Re: [PATCH v3 1/1] USB: core: let USB device know device node

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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?

You still list 11 hubs here, I'm completely puzzled what the meaning
of those should be.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux