From: Fabien Parent <fparent@baylibre.com>
To: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Alexandre Bailon <abailon@baylibre.com>,
Fabien Parent <fparent@baylibre.com>,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [PATCH 3/4] soc: mediatek: add support of MTK_SCPD_STRICT_BUSP cap
Date: Mon, 30 May 2022 22:42:13 +0200 [thread overview]
Message-ID: <20220530204214.913251-3-fparent@baylibre.com> (raw)
In-Reply-To: <20220530204214.913251-1-fparent@baylibre.com>
From: Alexandre Bailon <abailon@baylibre.com>
This adds support of MTK_SCPD_STRICT_BUSP cap.
This is required by the mt8365, for the MM power domain.
Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Fabien Parent <fparent@baylibre.com>
---
drivers/soc/mediatek/mtk-pm-domains.c | 37 ++++++++++++++++++++-------
drivers/soc/mediatek/mtk-pm-domains.h | 1 +
2 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/drivers/soc/mediatek/mtk-pm-domains.c b/drivers/soc/mediatek/mtk-pm-domains.c
index 90b91b3b19a8..beaa5785fda2 100644
--- a/drivers/soc/mediatek/mtk-pm-domains.c
+++ b/drivers/soc/mediatek/mtk-pm-domains.c
@@ -263,17 +263,36 @@ static int scpsys_power_on(struct generic_pm_domain *genpd)
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ISO_BIT);
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT);
- ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
- if (ret)
- goto err_pwr_ack;
+ if (MTK_SCPD_CAPS(pd, MTK_SCPD_STRICT_BUSP)) {
+ /*
+ * In few Mediatek platforms(e.g. MT6779), the bus protect
+ * policy is stricter, which leads to bus protect release must
+ * be prior to bus access.
+ */
+ ret = scpsys_sram_enable(pd);
+ if (ret < 0)
+ goto err_pwr_ack;
- ret = scpsys_sram_enable(pd);
- if (ret < 0)
- goto err_disable_subsys_clks;
+ ret = scpsys_bus_protect_disable(pd);
+ if (ret < 0)
+ goto err_pwr_ack;
- ret = scpsys_bus_protect_disable(pd);
- if (ret < 0)
- goto err_disable_sram;
+ ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
+ if (ret < 0)
+ goto err_pwr_ack;
+ } else {
+ ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
+ if (ret)
+ goto err_pwr_ack;
+
+ ret = scpsys_sram_enable(pd);
+ if (ret < 0)
+ goto err_disable_subsys_clks;
+
+ ret = scpsys_bus_protect_disable(pd);
+ if (ret < 0)
+ goto err_disable_sram;
+ }
return 0;
diff --git a/drivers/soc/mediatek/mtk-pm-domains.h b/drivers/soc/mediatek/mtk-pm-domains.h
index a3955d960233..5347471bc3c4 100644
--- a/drivers/soc/mediatek/mtk-pm-domains.h
+++ b/drivers/soc/mediatek/mtk-pm-domains.h
@@ -8,6 +8,7 @@
#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_STRICT_BUSP BIT(5)
#define MTK_SCPD_CAPS(_scpd, _x) ((_scpd)->data->caps & (_x))
#define SPM_VDE_PWR_CON 0x0210
--
2.36.1
WARNING: multiple messages have this Message-ID (diff)
From: Fabien Parent <fparent@baylibre.com>
To: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Alexandre Bailon <abailon@baylibre.com>,
Fabien Parent <fparent@baylibre.com>,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [PATCH 3/4] soc: mediatek: add support of MTK_SCPD_STRICT_BUSP cap
Date: Mon, 30 May 2022 22:42:13 +0200 [thread overview]
Message-ID: <20220530204214.913251-3-fparent@baylibre.com> (raw)
In-Reply-To: <20220530204214.913251-1-fparent@baylibre.com>
From: Alexandre Bailon <abailon@baylibre.com>
This adds support of MTK_SCPD_STRICT_BUSP cap.
This is required by the mt8365, for the MM power domain.
Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Fabien Parent <fparent@baylibre.com>
---
drivers/soc/mediatek/mtk-pm-domains.c | 37 ++++++++++++++++++++-------
drivers/soc/mediatek/mtk-pm-domains.h | 1 +
2 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/drivers/soc/mediatek/mtk-pm-domains.c b/drivers/soc/mediatek/mtk-pm-domains.c
index 90b91b3b19a8..beaa5785fda2 100644
--- a/drivers/soc/mediatek/mtk-pm-domains.c
+++ b/drivers/soc/mediatek/mtk-pm-domains.c
@@ -263,17 +263,36 @@ static int scpsys_power_on(struct generic_pm_domain *genpd)
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ISO_BIT);
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT);
- ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
- if (ret)
- goto err_pwr_ack;
+ if (MTK_SCPD_CAPS(pd, MTK_SCPD_STRICT_BUSP)) {
+ /*
+ * In few Mediatek platforms(e.g. MT6779), the bus protect
+ * policy is stricter, which leads to bus protect release must
+ * be prior to bus access.
+ */
+ ret = scpsys_sram_enable(pd);
+ if (ret < 0)
+ goto err_pwr_ack;
- ret = scpsys_sram_enable(pd);
- if (ret < 0)
- goto err_disable_subsys_clks;
+ ret = scpsys_bus_protect_disable(pd);
+ if (ret < 0)
+ goto err_pwr_ack;
- ret = scpsys_bus_protect_disable(pd);
- if (ret < 0)
- goto err_disable_sram;
+ ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
+ if (ret < 0)
+ goto err_pwr_ack;
+ } else {
+ ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
+ if (ret)
+ goto err_pwr_ack;
+
+ ret = scpsys_sram_enable(pd);
+ if (ret < 0)
+ goto err_disable_subsys_clks;
+
+ ret = scpsys_bus_protect_disable(pd);
+ if (ret < 0)
+ goto err_disable_sram;
+ }
return 0;
diff --git a/drivers/soc/mediatek/mtk-pm-domains.h b/drivers/soc/mediatek/mtk-pm-domains.h
index a3955d960233..5347471bc3c4 100644
--- a/drivers/soc/mediatek/mtk-pm-domains.h
+++ b/drivers/soc/mediatek/mtk-pm-domains.h
@@ -8,6 +8,7 @@
#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_STRICT_BUSP BIT(5)
#define MTK_SCPD_CAPS(_scpd, _x) ((_scpd)->data->caps & (_x))
#define SPM_VDE_PWR_CON 0x0210
--
2.36.1
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: Fabien Parent <fparent@baylibre.com>
To: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Alexandre Bailon <abailon@baylibre.com>,
Fabien Parent <fparent@baylibre.com>,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [PATCH 3/4] soc: mediatek: add support of MTK_SCPD_STRICT_BUSP cap
Date: Mon, 30 May 2022 22:42:13 +0200 [thread overview]
Message-ID: <20220530204214.913251-3-fparent@baylibre.com> (raw)
In-Reply-To: <20220530204214.913251-1-fparent@baylibre.com>
From: Alexandre Bailon <abailon@baylibre.com>
This adds support of MTK_SCPD_STRICT_BUSP cap.
This is required by the mt8365, for the MM power domain.
Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Fabien Parent <fparent@baylibre.com>
---
drivers/soc/mediatek/mtk-pm-domains.c | 37 ++++++++++++++++++++-------
drivers/soc/mediatek/mtk-pm-domains.h | 1 +
2 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/drivers/soc/mediatek/mtk-pm-domains.c b/drivers/soc/mediatek/mtk-pm-domains.c
index 90b91b3b19a8..beaa5785fda2 100644
--- a/drivers/soc/mediatek/mtk-pm-domains.c
+++ b/drivers/soc/mediatek/mtk-pm-domains.c
@@ -263,17 +263,36 @@ static int scpsys_power_on(struct generic_pm_domain *genpd)
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ISO_BIT);
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT);
- ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
- if (ret)
- goto err_pwr_ack;
+ if (MTK_SCPD_CAPS(pd, MTK_SCPD_STRICT_BUSP)) {
+ /*
+ * In few Mediatek platforms(e.g. MT6779), the bus protect
+ * policy is stricter, which leads to bus protect release must
+ * be prior to bus access.
+ */
+ ret = scpsys_sram_enable(pd);
+ if (ret < 0)
+ goto err_pwr_ack;
- ret = scpsys_sram_enable(pd);
- if (ret < 0)
- goto err_disable_subsys_clks;
+ ret = scpsys_bus_protect_disable(pd);
+ if (ret < 0)
+ goto err_pwr_ack;
- ret = scpsys_bus_protect_disable(pd);
- if (ret < 0)
- goto err_disable_sram;
+ ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
+ if (ret < 0)
+ goto err_pwr_ack;
+ } else {
+ ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks);
+ if (ret)
+ goto err_pwr_ack;
+
+ ret = scpsys_sram_enable(pd);
+ if (ret < 0)
+ goto err_disable_subsys_clks;
+
+ ret = scpsys_bus_protect_disable(pd);
+ if (ret < 0)
+ goto err_disable_sram;
+ }
return 0;
diff --git a/drivers/soc/mediatek/mtk-pm-domains.h b/drivers/soc/mediatek/mtk-pm-domains.h
index a3955d960233..5347471bc3c4 100644
--- a/drivers/soc/mediatek/mtk-pm-domains.h
+++ b/drivers/soc/mediatek/mtk-pm-domains.h
@@ -8,6 +8,7 @@
#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_STRICT_BUSP BIT(5)
#define MTK_SCPD_CAPS(_scpd, _x) ((_scpd)->data->caps & (_x))
#define SPM_VDE_PWR_CON 0x0210
--
2.36.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-05-30 20:42 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-30 20:42 [PATCH 1/4] dt-bindings: power: Add MT8365 power domains Fabien Parent
2022-05-30 20:42 ` Fabien Parent
2022-05-30 20:42 ` Fabien Parent
2022-05-30 20:42 ` [PATCH 2/4] soc: mediatek: Add support of WAYEN operations Fabien Parent
2022-05-30 20:42 ` Fabien Parent
2022-05-30 20:42 ` Fabien Parent
2022-06-17 14:20 ` Matthias Brugger
2022-06-17 14:20 ` Matthias Brugger
2022-07-22 9:13 ` Markus Schneider-Pargmann
2022-07-22 9:13 ` Markus Schneider-Pargmann
2022-05-30 20:42 ` Fabien Parent [this message]
2022-05-30 20:42 ` [PATCH 3/4] soc: mediatek: add support of MTK_SCPD_STRICT_BUSP cap Fabien Parent
2022-05-30 20:42 ` Fabien Parent
2022-05-31 17:17 ` Christophe JAILLET
2022-05-31 17:17 ` Christophe JAILLET
2022-05-31 17:17 ` Christophe JAILLET
2022-06-09 16:12 ` Markus Schneider-Pargmann
2022-06-09 16:12 ` Markus Schneider-Pargmann
2022-06-09 16:12 ` Markus Schneider-Pargmann
2022-06-17 14:20 ` Matthias Brugger
2022-06-17 14:20 ` Matthias Brugger
2022-07-21 8:55 ` Markus Schneider-Pargmann
2022-07-21 8:55 ` Markus Schneider-Pargmann
2022-05-30 20:42 ` [PATCH 4/4] soc: mediatek: pm-domains: Add support for MT8365 Fabien Parent
2022-05-30 20:42 ` Fabien Parent
2022-05-30 20:42 ` Fabien Parent
2022-06-05 21:22 ` [PATCH 1/4] dt-bindings: power: Add MT8365 power domains Rob Herring
2022-06-05 21:22 ` Rob Herring
2022-06-05 21:22 ` Rob Herring
2022-06-09 16:12 ` Markus Schneider-Pargmann
2022-06-09 16:12 ` Markus Schneider-Pargmann
2022-06-09 16:12 ` Markus Schneider-Pargmann
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=20220530204214.913251-3-fparent@baylibre.com \
--to=fparent@baylibre.com \
--cc=abailon@baylibre.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.