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

POPESCU Catalin
2025-01-23T14:01:02Z

On 23/01/2025 12:15, Johan Hovold wrote:
> This email is not from Hexagon’s Office 365 instance. Please be careful while clicking links, opening attachments, or replying to this email.
>
>
> 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 ?
I don't really understand the reason behind, for me it looks completely
arbitrary.

>
>> 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