Messages in this thread | | | Date | Thu, 16 Nov 2017 17:12:49 +0100 | From | Johan Hovold <> | Subject | Re: [PATCH 0/8] USB: add device-tree support for interfaces |
| |
On Thu, Nov 16, 2017 at 08:43:21AM -0600, Rob Herring wrote: > On Thu, Nov 09, 2017 at 06:07:15PM +0100, Johan Hovold wrote: > > This series adds support for representing USB interfaces in device tree > > by implementing support for "interface nodes" and "combined nodes" from > > the OF specification. > > > > This is needed to be able to describe non-discoverable properties of > > permanently attached USB devices and their interfaces such as any > > i2c-clients connected to a USB-i2c bridge (e.g. the dln2 mfd) or, > > eventually, devices connected to usb-serial converters (to be used with > > serdev). > > In the original OF binding, the firmware dynamically generated the tree > for the active configuration AIUI. That doesn't really fit for the > (mostly) static FDT usage and why we stopped at the device level. So how > do we handle multiple configs? Or can we assume that if say the I2C bus > is used, then there's only one config and interface that can use it?
Multiple configuration can be used to implement different sets of functionality. A hypothetical device could have one i2c controller in one configuration and two in another. Most devices will only have one configuration though.
A USB interface implements some functionality of the device (and this is what Linux USB drivers bind to). So even for single-configuration devices, you need to be able to say which i2c controller (bus) you are describing.
[ And as a simplification, the combined nodes can be used for most cases were we only have one configuration with a single interface. ]
Note that a new set of interfaces (in the kernel device model) is created when a new USB device configuration is selected. These new interfaces will be associated with any matching device-tree interface nodes and that these would be distinct from any nodes that matches another configuration.
So I don't think there's any problem with dealing with the rare cases of multi-configuration devices.
Johan
| |