[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <MN2PR12MB4333EBFADEDD7DB623F4634188519@MN2PR12MB4333.namprd12.prod.outlook.com>
Date: Fri, 23 Sep 2022 04:38:05 +0000
From: "Mehta, Piyush" <piyush.mehta@....com>
To: "Simek, Michal" <michal.simek@....com>,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"robh+dt@...nel.org" <robh+dt@...nel.org>,
"krzysztof.kozlowski+dt@...aro.org"
<krzysztof.kozlowski+dt@...aro.org>,
"balbi@...nel.org" <balbi@...nel.org>
CC: "linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Paladugu, Siva Durga Prasad" <siva.durga.prasad.paladugu@....com>,
Manish Narani <manish.narani@...inx.com>
Subject: RE: [PATCH] dt-bindings: usb: dwc3: Add interrupt-names to include
hibernation interrupt
> -----Original Message-----
> From: Simek, Michal <michal.simek@....com>
> Sent: Thursday, September 22, 2022 5:05 PM
> To: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>; Mehta, Piyush
> <piyush.mehta@....com>; gregkh@...uxfoundation.org;
> robh+dt@...nel.org; krzysztof.kozlowski+dt@...aro.org; balbi@...nel.org
> Cc: linux-usb@...r.kernel.org; devicetree@...r.kernel.org; linux-
> kernel@...r.kernel.org; Paladugu, Siva Durga Prasad
> <siva.durga.prasad.paladugu@....com>; Manish Narani
> <manish.narani@...inx.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
Powered by blists - more mailing lists