linux-mediatek.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
To: Nicolas Boichat <drinkcat@chromium.org>,
	Hsin-Yi Wang <hsinyi@chromium.org>
Cc: Devicetree List <devicetree@vger.kernel.org>,
	Weiyi Lu <weiyi.lu@mediatek.com>,
	lkml <linux-kernel@vger.kernel.org>,
	Rob Herring <robh+dt@kernel.org>, Mark Brown <broonie@kernel.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 2/3] soc: mediatek: pm-domains: Add domain regulator supply
Date: Wed, 13 Jan 2021 22:16:43 +0100	[thread overview]
Message-ID: <a6cea5be-f7ee-a09c-8300-69792cfa02bb@collabora.com> (raw)
In-Reply-To: <CANMq1KAWCbtpJWMG2nE6k1hOzA=hCWYJxzC7RXb_voEri0v2=g@mail.gmail.com>

Hi Hsin-Yi,

Thank you for the patch.

On 10/1/21 2:49, Nicolas Boichat wrote:
> On Thu, Jan 7, 2021 at 6:49 PM Hsin-Yi Wang <hsinyi@chromium.org> wrote:
>>
>> Some power domains (eg. mfg) needs to turn on power supply before power
>> on.
>>
>> Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
> 
> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
> 

Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>


>> ---
>>  drivers/soc/mediatek/mt8183-pm-domains.h |  1 +
>>  drivers/soc/mediatek/mtk-pm-domains.c    | 36 +++++++++++++++++++++++-
>>  drivers/soc/mediatek/mtk-pm-domains.h    |  1 +
>>  3 files changed, 37 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/soc/mediatek/mt8183-pm-domains.h b/drivers/soc/mediatek/mt8183-pm-domains.h
>> index 8d996c5d2682d..aa5230e6c12f8 100644
>> --- a/drivers/soc/mediatek/mt8183-pm-domains.h
>> +++ b/drivers/soc/mediatek/mt8183-pm-domains.h
>> @@ -38,6 +38,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8183[] = {
>>                 .ctl_offs = 0x0338,
>>                 .sram_pdn_bits = GENMASK(8, 8),
>>                 .sram_pdn_ack_bits = GENMASK(12, 12),
>> +               .caps = MTK_SCPD_DOMAIN_SUPPLY,
>>         },
>>         [MT8183_POWER_DOMAIN_MFG_CORE0] = {
>>                 .sta_mask = BIT(7),
>> diff --git a/drivers/soc/mediatek/mtk-pm-domains.c b/drivers/soc/mediatek/mtk-pm-domains.c
>> index fb70cb3b07b36..ae255aa7b1a97 100644
>> --- a/drivers/soc/mediatek/mtk-pm-domains.c
>> +++ b/drivers/soc/mediatek/mtk-pm-domains.c
> [snip]
>> @@ -275,6 +295,7 @@ generic_pm_domain *scpsys_add_one_domain(struct scpsys *scpsys, struct device_no
>>  {
>>         const struct scpsys_domain_data *domain_data;
>>         struct scpsys_domain *pd;
>> +       struct device_node *np = scpsys->dev->of_node;
>>         struct property *prop;
>>         const char *clk_name;
>>         int i, ret, num_clks;
>> @@ -307,6 +328,19 @@ generic_pm_domain *scpsys_add_one_domain(struct scpsys *scpsys, struct device_no
>>         pd->data = domain_data;
>>         pd->scpsys = scpsys;
>>
>> +       if (MTK_SCPD_CAPS(pd, MTK_SCPD_DOMAIN_SUPPLY)) {
>> +               /* Find regulator in current power domain node */
>> +               scpsys->dev->of_node = node;
>> +               pd->supply = devm_regulator_get(scpsys->dev, "domain");
>> +               scpsys->dev->of_node = np;
> 
> This pattern is a bit strange to me. But Hsin-Yi pointed out that
> there are precedents:
> https://elixir.bootlin.com/linux/v5.11-rc2/source/drivers/iio/adc/rcar-gyroadc.c#L397
> .

nit: Strange to me too. Maybe it needs a better comment/explanation and/or use
child/parent as a temporal of_node names to make a bit more readable. Looks like
[devm_]regulator_get only accepts a device as argument and will look into child
nodes.


> 
>> +               if (IS_ERR(pd->supply)) {
>> +                       dev_err_probe(scpsys->dev, PTR_ERR(pd->supply),
>> +                                     "%pOF: failed to get power supply.\n",
>> +                                     node);
>> +                       return ERR_CAST(pd->supply);
>> +               }
>> +       }
>> +
>>         pd->infracfg = syscon_regmap_lookup_by_phandle_optional(node, "mediatek,infracfg");
>>         if (IS_ERR(pd->infracfg))
>>                 return ERR_CAST(pd->infracfg);
>> diff --git a/drivers/soc/mediatek/mtk-pm-domains.h b/drivers/soc/mediatek/mtk-pm-domains.h
>> index a2f4d8f97e058..b2770b5266dba 100644
>> --- a/drivers/soc/mediatek/mtk-pm-domains.h
>> +++ b/drivers/soc/mediatek/mtk-pm-domains.h
>> @@ -7,6 +7,7 @@
>>  #define MTK_SCPD_FWAIT_SRAM            BIT(1)
>>  #define MTK_SCPD_SRAM_ISO              BIT(2)
>>  #define MTK_SCPD_KEEP_DEFAULT_OFF      BIT(3)
>> +#define MTK_SCPD_DOMAIN_SUPPLY         BIT(4)
>>  #define MTK_SCPD_CAPS(_scpd, _x)       ((_scpd)->data->caps & (_x))
>>
>>  #define SPM_VDE_PWR_CON                        0x0210
>> --
>> 2.29.2.729.g45daf8777d-goog
>>
>>
>> _______________________________________________
>> Linux-mediatek mailing list
>> Linux-mediatek@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-mediatek

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

  reply	other threads:[~2021-01-13 21:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-07 10:49 [PATCH 0/3] Add domain supply for mtk power domains Hsin-Yi Wang
2021-01-07 10:49 ` [PATCH 1/3] dt-bindings: power: Add domain regulator supply Hsin-Yi Wang
2021-01-13  3:21   ` Rob Herring
2021-01-13 20:01   ` Enric Balletbo i Serra
2021-01-07 10:49 ` [PATCH 2/3] soc: mediatek: pm-domains: " Hsin-Yi Wang
2021-01-10  1:49   ` Nicolas Boichat
2021-01-13 21:16     ` Enric Balletbo i Serra [this message]
2021-01-07 10:49 ` [PATCH 3/3] arm64: dts: mediatek: mt8183: Add domain supply for mfg Hsin-Yi Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a6cea5be-f7ee-a09c-8300-69792cfa02bb@collabora.com \
    --to=enric.balletbo@collabora.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=drinkcat@chromium.org \
    --cc=hsinyi@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=weiyi.lu@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).