All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver
@ 2015-11-30 10:41 Sascha Hauer
       [not found] ` <1448880100-23396-1-git-send-email-s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Sascha Hauer @ 2015-11-30 10:41 UTC (permalink / raw)
  To: linux-arm-kernel

Some power domains on the MT8173 are supplied by controllable external
regulators that must be handled properly. This series adds support for
them.

Sascha

----------------------------------------------------------------
Sascha Hauer (2):
      dt-bindings: soc: Add supplies for Mediatek SCPSYS unit
      soc: mediatek: SCPSYS: Add regulator support

 .../devicetree/bindings/soc/mediatek/scpsys.txt    | 12 ++++++++++
 drivers/soc/mediatek/mtk-scpsys.c                  | 27 ++++++++++++++++++++++
 2 files changed, 39 insertions(+)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] dt-bindings: soc: Add supplies for Mediatek SCPSYS unit
  2015-11-30 10:41 [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver Sascha Hauer
@ 2015-11-30 10:41     ` Sascha Hauer
  2015-11-30 10:41 ` [PATCH 2/2] soc: mediatek: SCPSYS: Add regulator support Sascha Hauer
  2015-12-09 11:30 ` [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver Matthias Brugger
  2 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2015-11-30 10:41 UTC (permalink / raw)
  To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: Dawei.Chien-NuS5LvNUpcJWk0Htik3J/w,
	kernel-bIcnvbaLZ9MEGnE8C9+IrQ, Matthias Brugger, Daniel Kurtz,
	Sascha Hauer, devicetree-u79uwXL29TY76Z2rM5mHXA

The power domains in the SCPSYS unit are supplied by regulators. Add the
properties for them to the binding document.

Signed-off-by: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
---
 Documentation/devicetree/bindings/soc/mediatek/scpsys.txt | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
index a6c8afc..e8f15e3 100644
--- a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
+++ b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
@@ -21,6 +21,18 @@ Required properties:
 		      These are the clocks which hardware needs to be enabled
 		      before enabling certain power domains.
 
+Optional properties:
+- vdec-supply: Power supply for the vdec power domain
+- venc-supply: Power supply for the venc power domain
+- isp-supply: Power supply for the isp power domain
+- mm-supply: Power supply for the mm power domain
+- venc_lt-supply: Power supply for the venc_lt power domain
+- audio-supply: Power supply for the audio power domain
+- usb-supply: Power supply for the usb power domain
+- mfg_async-supply: Power supply for the mfg_async power domain
+- mfg_2d-supply: Power supply for the mfg_2d power domain
+- mfg-supply: Power supply for the mfg power domain
+
 Example:
 
 	scpsys: scpsys@10006000 {
-- 
2.6.2

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 1/2] dt-bindings: soc: Add supplies for Mediatek SCPSYS unit
@ 2015-11-30 10:41     ` Sascha Hauer
  0 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2015-11-30 10:41 UTC (permalink / raw)
  To: linux-arm-kernel

The power domains in the SCPSYS unit are supplied by regulators. Add the
properties for them to the binding document.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Cc: devicetree at vger.kernel.org
---
 Documentation/devicetree/bindings/soc/mediatek/scpsys.txt | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
index a6c8afc..e8f15e3 100644
--- a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
+++ b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
@@ -21,6 +21,18 @@ Required properties:
 		      These are the clocks which hardware needs to be enabled
 		      before enabling certain power domains.
 
+Optional properties:
+- vdec-supply: Power supply for the vdec power domain
+- venc-supply: Power supply for the venc power domain
+- isp-supply: Power supply for the isp power domain
+- mm-supply: Power supply for the mm power domain
+- venc_lt-supply: Power supply for the venc_lt power domain
+- audio-supply: Power supply for the audio power domain
+- usb-supply: Power supply for the usb power domain
+- mfg_async-supply: Power supply for the mfg_async power domain
+- mfg_2d-supply: Power supply for the mfg_2d power domain
+- mfg-supply: Power supply for the mfg power domain
+
 Example:
 
 	scpsys: scpsys at 10006000 {
-- 
2.6.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] soc: mediatek: SCPSYS: Add regulator support
  2015-11-30 10:41 [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver Sascha Hauer
       [not found] ` <1448880100-23396-1-git-send-email-s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
@ 2015-11-30 10:41 ` Sascha Hauer
  2015-12-09 11:30 ` [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver Matthias Brugger
  2 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2015-11-30 10:41 UTC (permalink / raw)
  To: linux-arm-kernel

The power domains are supplied by regulators. Add support for them so
that the regulators are properly turned on before a domain is powered up
and turned off when a domain is powered down.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/soc/mediatek/mtk-scpsys.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/soc/mediatek/mtk-scpsys.c b/drivers/soc/mediatek/mtk-scpsys.c
index 4d4203c..e425619 100644
--- a/drivers/soc/mediatek/mtk-scpsys.c
+++ b/drivers/soc/mediatek/mtk-scpsys.c
@@ -21,6 +21,7 @@
 #include <linux/pm_domain.h>
 #include <linux/regmap.h>
 #include <linux/soc/mediatek/infracfg.h>
+#include <linux/regulator/consumer.h>
 #include <dt-bindings/power/mt8173-power.h>
 
 #define SPM_VDE_PWR_CON			0x0210
@@ -179,6 +180,7 @@ struct scp_domain {
 	u32 sram_pdn_ack_bits;
 	u32 bus_prot_mask;
 	bool active_wakeup;
+	struct regulator *supply;
 };
 
 struct scp {
@@ -221,6 +223,12 @@ static int scpsys_power_on(struct generic_pm_domain *genpd)
 	int ret;
 	int i;
 
+	if (scpd->supply) {
+		ret = regulator_enable(scpd->supply);
+		if (ret)
+			return ret;
+	}
+
 	for (i = 0; i < MAX_CLKS && scpd->clk[i]; i++) {
 		ret = clk_prepare_enable(scpd->clk[i]);
 		if (ret) {
@@ -299,6 +307,9 @@ err_pwr_ack:
 			clk_disable_unprepare(scpd->clk[i]);
 	}
 err_clk:
+	if (scpd->supply)
+		regulator_disable(scpd->supply);
+
 	dev_err(scp->dev, "Failed to power on domain %s\n", genpd->name);
 
 	return ret;
@@ -379,6 +390,9 @@ static int scpsys_power_off(struct generic_pm_domain *genpd)
 	for (i = 0; i < MAX_CLKS && scpd->clk[i]; i++)
 		clk_disable_unprepare(scpd->clk[i]);
 
+	if (scpd->supply)
+		regulator_disable(scpd->supply);
+
 	return 0;
 
 out:
@@ -448,6 +462,19 @@ static int __init scpsys_probe(struct platform_device *pdev)
 		return PTR_ERR(scp->infracfg);
 	}
 
+	for (i = 0; i < NUM_DOMAINS; i++) {
+		struct scp_domain *scpd = &scp->domains[i];
+		const struct scp_domain_data *data = &scp_domain_data[i];
+
+		scpd->supply = devm_regulator_get_optional(&pdev->dev, data->name);
+		if (IS_ERR(scpd->supply)) {
+			if (PTR_ERR(scpd->supply) == -ENODEV)
+				scpd->supply = NULL;
+			else
+				return PTR_ERR(scpd->supply);
+		}
+	}
+
 	pd_data->num_domains = NUM_DOMAINS;
 
 	for (i = 0; i < NUM_DOMAINS; i++) {
-- 
2.6.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] dt-bindings: soc: Add supplies for Mediatek SCPSYS unit
  2015-11-30 10:41     ` Sascha Hauer
@ 2015-11-30 16:52         ` Rob Herring
  -1 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2015-11-30 16:52 UTC (permalink / raw)
  To: Sascha Hauer
  Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	Dawei.Chien-NuS5LvNUpcJWk0Htik3J/w,
	kernel-bIcnvbaLZ9MEGnE8C9+IrQ, Matthias Brugger, Daniel Kurtz,
	devicetree-u79uwXL29TY76Z2rM5mHXA

On Mon, Nov 30, 2015 at 11:41:39AM +0100, Sascha Hauer wrote:
> The power domains in the SCPSYS unit are supplied by regulators. Add the
> properties for them to the binding document.
> 
> Signed-off-by: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>

> ---
>  Documentation/devicetree/bindings/soc/mediatek/scpsys.txt | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
> index a6c8afc..e8f15e3 100644
> --- a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
> +++ b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
> @@ -21,6 +21,18 @@ Required properties:
>  		      These are the clocks which hardware needs to be enabled
>  		      before enabling certain power domains.
>  
> +Optional properties:
> +- vdec-supply: Power supply for the vdec power domain
> +- venc-supply: Power supply for the venc power domain
> +- isp-supply: Power supply for the isp power domain
> +- mm-supply: Power supply for the mm power domain
> +- venc_lt-supply: Power supply for the venc_lt power domain
> +- audio-supply: Power supply for the audio power domain
> +- usb-supply: Power supply for the usb power domain
> +- mfg_async-supply: Power supply for the mfg_async power domain
> +- mfg_2d-supply: Power supply for the mfg_2d power domain
> +- mfg-supply: Power supply for the mfg power domain
> +
>  Example:
>  
>  	scpsys: scpsys@10006000 {
> -- 
> 2.6.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] dt-bindings: soc: Add supplies for Mediatek SCPSYS unit
@ 2015-11-30 16:52         ` Rob Herring
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2015-11-30 16:52 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Nov 30, 2015 at 11:41:39AM +0100, Sascha Hauer wrote:
> The power domains in the SCPSYS unit are supplied by regulators. Add the
> properties for them to the binding document.
> 
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: devicetree at vger.kernel.org

Acked-by: Rob Herring <robh@kernel.org>

> ---
>  Documentation/devicetree/bindings/soc/mediatek/scpsys.txt | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
> index a6c8afc..e8f15e3 100644
> --- a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
> +++ b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
> @@ -21,6 +21,18 @@ Required properties:
>  		      These are the clocks which hardware needs to be enabled
>  		      before enabling certain power domains.
>  
> +Optional properties:
> +- vdec-supply: Power supply for the vdec power domain
> +- venc-supply: Power supply for the venc power domain
> +- isp-supply: Power supply for the isp power domain
> +- mm-supply: Power supply for the mm power domain
> +- venc_lt-supply: Power supply for the venc_lt power domain
> +- audio-supply: Power supply for the audio power domain
> +- usb-supply: Power supply for the usb power domain
> +- mfg_async-supply: Power supply for the mfg_async power domain
> +- mfg_2d-supply: Power supply for the mfg_2d power domain
> +- mfg-supply: Power supply for the mfg power domain
> +
>  Example:
>  
>  	scpsys: scpsys at 10006000 {
> -- 
> 2.6.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver
  2015-11-30 10:41 [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver Sascha Hauer
       [not found] ` <1448880100-23396-1-git-send-email-s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
  2015-11-30 10:41 ` [PATCH 2/2] soc: mediatek: SCPSYS: Add regulator support Sascha Hauer
@ 2015-12-09 11:30 ` Matthias Brugger
  2 siblings, 0 replies; 7+ messages in thread
From: Matthias Brugger @ 2015-12-09 11:30 UTC (permalink / raw)
  To: linux-arm-kernel



On 30/11/15 11:41, Sascha Hauer wrote:
> Some power domains on the MT8173 are supplied by controllable external
> regulators that must be handled properly. This series adds support for
> them.
>
> Sascha
>
> ----------------------------------------------------------------
> Sascha Hauer (2):
>        dt-bindings: soc: Add supplies for Mediatek SCPSYS unit
>        soc: mediatek: SCPSYS: Add regulator support
>
>   .../devicetree/bindings/soc/mediatek/scpsys.txt    | 12 ++++++++++
>   drivers/soc/mediatek/mtk-scpsys.c                  | 27 ++++++++++++++++++++++
>   2 files changed, 39 insertions(+)
>

Applied, thanks a lot.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-12-09 11:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-30 10:41 [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver Sascha Hauer
     [not found] ` <1448880100-23396-1-git-send-email-s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-11-30 10:41   ` [PATCH 1/2] dt-bindings: soc: Add supplies for Mediatek SCPSYS unit Sascha Hauer
2015-11-30 10:41     ` Sascha Hauer
     [not found]     ` <1448880100-23396-2-git-send-email-s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-11-30 16:52       ` Rob Herring
2015-11-30 16:52         ` Rob Herring
2015-11-30 10:41 ` [PATCH 2/2] soc: mediatek: SCPSYS: Add regulator support Sascha Hauer
2015-12-09 11:30 ` [PATCH) soc: mediatek: scpsys: Add regulator support to power domain driver Matthias Brugger

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.