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

Johan Hovold
2025-01-23T11:15:31Z

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.

> reg = <0 1>;
>
> bluetooth {
> compatible = "nxp,88w8987-bt";
> };
> };
> };

And as Greg said, serdev is not enabled for USB serial as serdev does
not currently handle hotplugging (hangups).

The hotplug issue would need to be addressed first, and then we'd also
need a DT binding for usb serial devices which can have multiple ports
(per interface).

Johan