Re: [PATCH] dt-bindings: usb: dwc3: Add interrupt-names to include hibernation interrupt

From: Krzysztof Kozlowski
Date: Fri Sep 16 2022 - 06:14:36 EST


On 15/09/2022 10:04, Michal Simek wrote:
>
>
> On 9/15/22 10:44, Krzysztof Kozlowski wrote:
>> On 14/09/2022 14:15, Mehta, Piyush wrote:
>>>
>>>> Where is the user (DTS) and implementation of this change? If this is specific
>>>> to Xilinx, why you do not have device specific compatible?
>>> [Piyush]:
>>> We have dedicated irq line for hibernation feature, "hiber" irq line triggers hibernation interrupt.
>>> DWC3 core supports the hibernation feature, we have a dedicated code which is yet to be upstreamed.
>>> As the hibernation feature provided by dwc3-core, so this will be supported by other SOC/vendors.
>>
>> But is hiber irq line present in other vendors? What confuses me is
>> adding not only "hiber" irq but also otg in completely new enum.
>
> I will let Piyush to comment hiber IRQ. But I expect we don't have visibility
> what others are doing but this is line is not Xilinx invention that's why I
> expect IP from Synopsys have it by default but it is up to soc vendor if
> hibernation feature is enabled or not.
>
> otg is already listed in
> Documentation/devicetree/bindings/usb/snps,dwc3.yaml
>
> It is only about order.
> Driver is already using
> platform_get_irq_byname..() functions

Linux driver yes, but other platforms (bootloaders, operating systems)
might be doing things differently. Therefore the order and items are
usually strict. If they cannot be strict, it is nice to know why or it
is nice to restrict it to some specific variant (if it is applicable).

This is why I asked whether the line is specific to Xilinx or to others.

>
> I think any combination should be fine. Do we need to record used order or there
> is way in yaml to support any combination with dwc_usb3, host, peripheral, otg
> should be working (ignoring that hiber which should be likely there too).

What confuses me here more, is having otg. I understand that dwc_usb3 is
the single interrupt for all the modes, so my naive approach would be:
oneOf:
- dwc_usb3
- enum [dwc_usb3, hiber]
- enum [host, peripheral, otg]
- enum [host, peripheral, otg, hiber]

However here Piyush adds not only hiber but also otg...

Best regards,
Krzysztof