Messages in this thread | | | From | "Mehta, Piyush" <> | Subject | RE: [PATCH] dt-bindings: usb: dwc3: Add interrupt-names to include hibernation interrupt | Date | Fri, 23 Sep 2022 04:38:05 +0000 |
| |
> -----Original Message----- > From: Simek, Michal <michal.simek@amd.com> > Sent: Thursday, September 22, 2022 5:05 PM > To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>; Mehta, Piyush > <piyush.mehta@amd.com>; gregkh@linuxfoundation.org; > robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org; balbi@kernel.org > Cc: linux-usb@vger.kernel.org; devicetree@vger.kernel.org; linux- > kernel@vger.kernel.org; Paladugu, Siva Durga Prasad > <siva.durga.prasad.paladugu@amd.com>; Manish Narani > <manish.narani@xilinx.com> > Subject: Re: [PATCH] dt-bindings: usb: dwc3: Add interrupt-names to include > hibernation interrupt > > > > On 9/16/22 12:10, Krzysztof Kozlowski wrote: > > 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... > > I was looking at code and I think we should be able to use this order > - enum [host, peripheral, otg, hiber] > which should ensure compatibility in other SW projects. > > We can completely ignore dwc_usb3. It means above dwc_usb3, hiber > shouldn't be also listed to make sure that the second entry is all the time irq > for peripheral. > > Thanks, > Michal
Enabling wakeup in zynqMp we need to put the core into hibernation, as versal don't have hibernation concept, but we require interrupt for wakeup. We have a versal platform where we are not using hibernation, but system wake up we need the interrupt. For this interrupt-name enum would be: - enum [host, peripheral, otg, usb-wakeup]
zynqMp : - enum [host, peripheral, otg, hiber]
Versal: - enum [host, peripheral, otg, usb-wakeup]
Regards, Piyush Mehta
| |