Message ID | 1630346073-7099-2-git-send-email-sanm@codeaurora.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | USB DWC3 QCOM Multi power domain support | expand |
Hi, On Mon, Aug 30, 2021 at 10:55 AM Sandeep Maheswaram <sanm@codeaurora.org> wrote: > > Add multi pd bindings to set performance state for cx domain > to maintain minimum corner voltage for USB clocks. > > Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> > --- > Documentation/devicetree/bindings/usb/qcom,dwc3.yaml | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > index e70afc4..838d9c4 100644 > --- a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > @@ -41,7 +41,18 @@ properties: > > power-domains: > description: specifies a phandle to PM domain provider node > - maxItems: 1 > + minItems: 1 > + items: > + - description: optional,cx power domain > + - description: USB gdsc power domain You need to re-order the above. The optional one needs to be second, not first. > + power-domain-names: > + items: > + - const: cx > + - const: usb_gdsc Why do you need the names at all? The ordering of power-domains is well defined and there are no holes in it and there are no legacy reasons for having the names (like there are for clocks), so you should drop. This is much like reg-names and I always point people to this message from Rob Herring about reg-names: https://lore.kernel.org/r/CAL_Jsq+MMunmVWqeW9v2RyzsMKP+=kMzeTHNMG4JDHM7Fy0HBg@mail.gmail.com/ You'll have to change your driver to use dev_pm_domain_attach_by_id() but that should be fine. -Doug
On 8/31/2021 1:37 AM, Doug Anderson wrote: > Hi, > > On Mon, Aug 30, 2021 at 10:55 AM Sandeep Maheswaram <sanm@codeaurora.org> wrote: >> Add multi pd bindings to set performance state for cx domain >> to maintain minimum corner voltage for USB clocks. >> >> Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> >> --- >> Documentation/devicetree/bindings/usb/qcom,dwc3.yaml | 13 ++++++++++++- >> 1 file changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >> index e70afc4..838d9c4 100644 >> --- a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >> +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >> @@ -41,7 +41,18 @@ properties: >> >> power-domains: >> description: specifies a phandle to PM domain provider node >> - maxItems: 1 >> + minItems: 1 >> + items: >> + - description: optional,cx power domain >> + - description: USB gdsc power domain > You need to re-order the above. The optional one needs to be second, not first. > I wanted to use required-opps for cx domain only. so I have put it first in order. >> + power-domain-names: >> + items: >> + - const: cx >> + - const: usb_gdsc > Why do you need the names at all? The ordering of power-domains is > well defined and there are no holes in it and there are no legacy > reasons for having the names (like there are for clocks), so you > should drop. This is much like reg-names and I always point people to > this message from Rob Herring about reg-names: > > https://lore.kernel.org/r/CAL_Jsq+MMunmVWqeW9v2RyzsMKP+=kMzeTHNMG4JDHM7Fy0HBg@mail.gmail.com/ > > You'll have to change your driver to use dev_pm_domain_attach_by_id() > but that should be fine. > > -Doug Ok..I will try using dev_pm_domain_attach_by_id()
On 9/6/2021 2:45 PM, Sandeep Maheswaram wrote: > > On 8/31/2021 1:37 AM, Doug Anderson wrote: >> Hi, >> >> On Mon, Aug 30, 2021 at 10:55 AM Sandeep Maheswaram <sanm@codeaurora.org> wrote: >>> Add multi pd bindings to set performance state for cx domain >>> to maintain minimum corner voltage for USB clocks. >>> >>> Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> >>> --- >>> Documentation/devicetree/bindings/usb/qcom,dwc3.yaml | 13 ++++++++++++- >>> 1 file changed, 12 insertions(+), 1 deletion(-) >>> >>> diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >>> index e70afc4..838d9c4 100644 >>> --- a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >>> +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >>> @@ -41,7 +41,18 @@ properties: >>> >>> power-domains: >>> description: specifies a phandle to PM domain provider node >>> - maxItems: 1 >>> + minItems: 1 >>> + items: >>> + - description: optional,cx power domain >>> + - description: USB gdsc power domain >> You need to re-order the above. The optional one needs to be second, not first. >> > I wanted to use required-opps for cx domain only. so I have put it first in order. You can always put a <> for the power-domains for which there are no required-opps + power-domain-names = "usb_gdsc", "cx"; + + required-opps = <>, <&rpmhpd_opp_nom>; >>> + power-domain-names: >>> + items: >>> + - const: cx >>> + - const: usb_gdsc >> Why do you need the names at all? The ordering of power-domains is >> well defined and there are no holes in it and there are no legacy >> reasons for having the names (like there are for clocks), so you >> should drop. This is much like reg-names and I always point people to >> this message from Rob Herring about reg-names: >> >> https://lore.kernel.org/r/CAL_Jsq+MMunmVWqeW9v2RyzsMKP+=kMzeTHNMG4JDHM7Fy0HBg@mail.gmail.com/ >> >> You'll have to change your driver to use dev_pm_domain_attach_by_id() >> but that should be fine. >> >> -Doug > > Ok..I will try using dev_pm_domain_attach_by_id() > >
On Mon 30 Aug 10:54 PDT 2021, Sandeep Maheswaram wrote: > Add multi pd bindings to set performance state for cx domain > to maintain minimum corner voltage for USB clocks. > > Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> > --- > Documentation/devicetree/bindings/usb/qcom,dwc3.yaml | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > index e70afc4..838d9c4 100644 > --- a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > @@ -41,7 +41,18 @@ properties: > > power-domains: > description: specifies a phandle to PM domain provider node > - maxItems: 1 > + minItems: 1 > + items: > + - description: optional,cx power domain > + - description: USB gdsc power domain > + > + power-domain-names: > + items: > + - const: cx > + - const: usb_gdsc But "usb_gdsc" is a subdomain of "cx", why can't we describe this fact in gcc? Regards, Bjorn > + > + required-opps: > + description: specifies the performance state to cx power domain > > clocks: > description: > -- > QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member > of Code Aurora Forum, hosted by The Linux Foundation >
On Thu 30 Sep 02:41 PDT 2021, Sandeep Maheswaram wrote: > > On 9/7/2021 7:20 PM, Bjorn Andersson wrote: > > On Mon 30 Aug 10:54 PDT 2021, Sandeep Maheswaram wrote: > > > > > Add multi pd bindings to set performance state for cx domain > > > to maintain minimum corner voltage for USB clocks. > > > > > > Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> > > > --- > > > Documentation/devicetree/bindings/usb/qcom,dwc3.yaml | 13 ++++++++++++- > > > 1 file changed, 12 insertions(+), 1 deletion(-) > > > > > > diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > > > index e70afc4..838d9c4 100644 > > > --- a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > > > +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > > > @@ -41,7 +41,18 @@ properties: > > > power-domains: > > > description: specifies a phandle to PM domain provider node > > > - maxItems: 1 > > > + minItems: 1 > > > + items: > > > + - description: optional,cx power domain > > > + - description: USB gdsc power domain > > > + > > > + power-domain-names: > > > + items: > > > + - const: cx > > > + - const: usb_gdsc > > But "usb_gdsc" is a subdomain of "cx", why can't we describe this fact > > in gcc? > > > > Regards, > > Bjorn > Thanks for your review. > Any idea on how can this be described in gcc ? Can you point any reference > for this . > There's a series from Dmitry that defines such a relationship between MDSS_GDSC and the MMCX domain on SM8250. This seems like a continuation of that support, given that we have multiple parent domains (cx, mx etc). You can find that discussion here: https://lore.kernel.org/all/20210727202004.712665-1-dmitry.baryshkov@linaro.org/ Regards, Bjorn > Regards > Sandeep > > > + > > > + required-opps: > > > + description: specifies the performance state to cx power domain > > > clocks: > > > description: > > > -- > > > QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member > > > of Code Aurora Forum, hosted by The Linux Foundation > > >
diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml index e70afc4..838d9c4 100644 --- a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml @@ -41,7 +41,18 @@ properties: power-domains: description: specifies a phandle to PM domain provider node - maxItems: 1 + minItems: 1 + items: + - description: optional,cx power domain + - description: USB gdsc power domain + + power-domain-names: + items: + - const: cx + - const: usb_gdsc + + required-opps: + description: specifies the performance state to cx power domain clocks: description:
Add multi pd bindings to set performance state for cx domain to maintain minimum corner voltage for USB clocks. Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> --- Documentation/devicetree/bindings/usb/qcom,dwc3.yaml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)