From mboxrd@z Thu Jan 1 00:00:00 1970 From: Johan Hovold Subject: Re: [PATCH 0/8] USB: add device-tree support for interfaces Date: Thu, 16 Nov 2017 17:12:49 +0100 Message-ID: <20171116161249.GJ11226@localhost> References: <20171109170723.10960-1-johan@kernel.org> <20171116144321.hlp6em77t56e5nly@rob-hp-laptop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20171116144321.hlp6em77t56e5nly@rob-hp-laptop> Sender: linux-usb-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Rob Herring Cc: Johan Hovold , Greg Kroah-Hartman , Mark Rutland , Arnd Bergmann , Alan Stern , Peter Chen , linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= , Florian Fainelli List-Id: devicetree@vger.kernel.org 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 -- 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