Re: [PATCH] usb: core: support interface node for simple USB devices

Johan Hovold
2025-01-23T15:20:53Z

On Thu, Jan 23, 2025 at 02:01:00PM +0000, POPESCU Catalin wrote:
> On 23/01/2025 12:15, Johan Hovold wrote:
> >
> > On Wed, Jan 22, 2025 at 02:47:32PM +0100, Catalin Popescu wrote:
> >> A simple usb device has a single configuration and a single interface
> >> and is considered as a "combined node" when defined in the devicetree.
> >> If available, its interface node is simply ignored which is a problem
> >> whenever the interface node has subnodes. To prevent that from happening
> >> first check for any subnode and ignore the interface node only if no
> >> subnode was found.
> >>
> >> Example: FTDI chip FT234XD that has only one UART interface which is
> >> being used as a serdev by other driver.
> >>
> >> device@1 {
> >> compatible = "usb403,6015";
> >> reg = <1>;
> >>
> >> #address-cells = <2>;
> >> #size-cells = <0>;
> >>
> >> interface@0 {
> >> compatible = "usbif403,6015.config1.0";
> > Your example makes no sense since if this is the only interface then the
> > interface node should not be here.
>
> That's the problem my patch is trying to address ...
> Why is it OK to describe multiple interfaces and it is not OK to
> describe the interface of a simple USB device ?

It's part of the spec. See commit 1a7e3948cb9f ("USB: add device-tree
support for interfaces") and its reference to "Open Firmware Recommended
Practice: Universal Serial Bus Version 1".

Johan