From: Heiko Stuebner <heiko@sntech.de>
To: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Ulf Hansson <ulf.hansson@linaro.org>,
Sebastian Reichel <sebastian.reichel@collabora.com>
Cc: "Elaine Zhang" <zhangqing@rock-chips.com>,
"Adrián Martínez Larumbe" <adrian.larumbe@collabora.com>,
"Boris Brezillon" <boris.brezillon@collabora.com>,
devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
"Sebastian Reichel" <sebastian.reichel@collabora.com>,
kernel@collabora.com
Subject: Re: [PATCH v1 5/6] pmdomain: rockchip: add regulator support
Date: Mon, 16 Sep 2024 14:37:31 +0200 [thread overview]
Message-ID: <2197494.irdbgypaU6@phil> (raw)
In-Reply-To: <20240910180530.47194-6-sebastian.reichel@collabora.com>
Am Dienstag, 10. September 2024, 19:57:14 CEST schrieb Sebastian Reichel:
> Some power domains require extra voltages to be applied. For example
> trying to enable the GPU domain on RK3588 fails when the SoC does not
> have VDD GPU enabled.
>
> The solution to temporarily change the device's device tree node has
> been taken over from the Mediatek power domain driver.
>
> The regulator is not acquired at probe time, since that creates circular
> dependencies. The power domain driver must be probed early, since SoC
> peripherals need it. Regulators on the other hand depend on SoC
> peripherals like SPI, I2C or GPIO.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> drivers/pmdomain/rockchip/pm-domains.c | 57 +++++++++++++++++++++++++-
> 1 file changed, 55 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pmdomain/rockchip/pm-domains.c b/drivers/pmdomain/rockchip/pm-domains.c
> index 663d390faaeb..ae6990897928 100644
> --- a/drivers/pmdomain/rockchip/pm-domains.c
> +++ b/drivers/pmdomain/rockchip/pm-domains.c
> @@ -18,6 +18,7 @@
> #include <linux/of_clk.h>
> #include <linux/clk.h>
> #include <linux/regmap.h>
> +#include <linux/regulator/consumer.h>
> #include <linux/mfd/syscon.h>
> #include <soc/rockchip/pm_domains.h>
> #include <dt-bindings/power/px30-power.h>
> @@ -89,6 +90,8 @@ struct rockchip_pm_domain {
> u32 *qos_save_regs[MAX_QOS_REGS_NUM];
> int num_clks;
> struct clk_bulk_data *clks;
> + struct device_node *node;
> + struct regulator *supply;
> };
>
> struct rockchip_pmu {
> @@ -571,18 +574,67 @@ static int rockchip_pd_power(struct rockchip_pm_domain *pd, bool power_on)
> return 0;
> }
>
> +static int rockchip_pd_regulator_disable(struct rockchip_pm_domain *pd)
> +{
> + return pd->supply ? regulator_disable(pd->supply) : 0;
> +}
> +
> +
nit: double-empty line
other than that, this looks ok for the time being and as Sebastian
mentioned in Vienna, this also blocks actually testing
the Panthor-GPU driver right now.
So while we will likely convert to the hopefully soon existing
regulator stuff, this change is helpful for right now
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
WARNING: multiple messages have this Message-ID (diff)
From: Heiko Stuebner <heiko@sntech.de>
To: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Ulf Hansson <ulf.hansson@linaro.org>,
Sebastian Reichel <sebastian.reichel@collabora.com>
Cc: "Elaine Zhang" <zhangqing@rock-chips.com>,
"Adrián Martínez Larumbe" <adrian.larumbe@collabora.com>,
"Boris Brezillon" <boris.brezillon@collabora.com>,
devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
"Sebastian Reichel" <sebastian.reichel@collabora.com>,
kernel@collabora.com
Subject: Re: [PATCH v1 5/6] pmdomain: rockchip: add regulator support
Date: Mon, 16 Sep 2024 14:37:31 +0200 [thread overview]
Message-ID: <2197494.irdbgypaU6@phil> (raw)
In-Reply-To: <20240910180530.47194-6-sebastian.reichel@collabora.com>
Am Dienstag, 10. September 2024, 19:57:14 CEST schrieb Sebastian Reichel:
> Some power domains require extra voltages to be applied. For example
> trying to enable the GPU domain on RK3588 fails when the SoC does not
> have VDD GPU enabled.
>
> The solution to temporarily change the device's device tree node has
> been taken over from the Mediatek power domain driver.
>
> The regulator is not acquired at probe time, since that creates circular
> dependencies. The power domain driver must be probed early, since SoC
> peripherals need it. Regulators on the other hand depend on SoC
> peripherals like SPI, I2C or GPIO.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> drivers/pmdomain/rockchip/pm-domains.c | 57 +++++++++++++++++++++++++-
> 1 file changed, 55 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pmdomain/rockchip/pm-domains.c b/drivers/pmdomain/rockchip/pm-domains.c
> index 663d390faaeb..ae6990897928 100644
> --- a/drivers/pmdomain/rockchip/pm-domains.c
> +++ b/drivers/pmdomain/rockchip/pm-domains.c
> @@ -18,6 +18,7 @@
> #include <linux/of_clk.h>
> #include <linux/clk.h>
> #include <linux/regmap.h>
> +#include <linux/regulator/consumer.h>
> #include <linux/mfd/syscon.h>
> #include <soc/rockchip/pm_domains.h>
> #include <dt-bindings/power/px30-power.h>
> @@ -89,6 +90,8 @@ struct rockchip_pm_domain {
> u32 *qos_save_regs[MAX_QOS_REGS_NUM];
> int num_clks;
> struct clk_bulk_data *clks;
> + struct device_node *node;
> + struct regulator *supply;
> };
>
> struct rockchip_pmu {
> @@ -571,18 +574,67 @@ static int rockchip_pd_power(struct rockchip_pm_domain *pd, bool power_on)
> return 0;
> }
>
> +static int rockchip_pd_regulator_disable(struct rockchip_pm_domain *pd)
> +{
> + return pd->supply ? regulator_disable(pd->supply) : 0;
> +}
> +
> +
nit: double-empty line
other than that, this looks ok for the time being and as Sebastian
mentioned in Vienna, this also blocks actually testing
the Panthor-GPU driver right now.
So while we will likely convert to the hopefully soon existing
regulator stuff, this change is helpful for right now
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2024-09-16 12:37 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-10 17:57 [PATCH v1 0/6] Fix RK3588 GPU domain Sebastian Reichel
2024-09-10 17:57 ` Sebastian Reichel
2024-09-10 17:57 ` [PATCH v1 1/6] pmdomain: rockchip: forward rockchip_do_pmu_set_power_domain errors Sebastian Reichel
2024-09-10 17:57 ` Sebastian Reichel
2024-09-10 18:21 ` Heiko Stübner
2024-09-10 18:21 ` Heiko Stübner
2024-09-10 17:57 ` [PATCH v1 2/6] pmdomain: rockchip: cleanup mutex handling in rockchip_pd_power Sebastian Reichel
2024-09-10 17:57 ` Sebastian Reichel
2024-09-10 18:23 ` Heiko Stübner
2024-09-10 18:23 ` Heiko Stübner
2024-09-10 17:57 ` [PATCH v1 3/6] pmdomain: rockchip: reduce indention " Sebastian Reichel
2024-09-10 17:57 ` Sebastian Reichel
2024-09-10 18:26 ` Heiko Stübner
2024-09-10 18:26 ` Heiko Stübner
2024-09-10 17:57 ` [PATCH v1 4/6] dt-bindings: power: rockchip: add regulator support Sebastian Reichel
2024-09-10 17:57 ` Sebastian Reichel
2024-09-10 18:52 ` Heiko Stübner
2024-09-10 18:52 ` Heiko Stübner
2024-09-11 17:38 ` Rob Herring (Arm)
2024-09-11 17:38 ` Rob Herring (Arm)
2024-09-10 17:57 ` [PATCH v1 5/6] pmdomain: " Sebastian Reichel
2024-09-10 17:57 ` Sebastian Reichel
2024-09-11 9:46 ` Heiko Stübner
2024-09-11 9:46 ` Heiko Stübner
2024-09-16 12:37 ` Heiko Stuebner [this message]
2024-09-16 12:37 ` Heiko Stuebner
2024-09-10 17:57 ` [PATCH v1 6/6] arm64: dts: rockchip: Add GPU power domain regulator dependency for RK3588 Sebastian Reichel
2024-09-10 17:57 ` Sebastian Reichel
2024-09-13 11:59 ` [PATCH v1 0/6] Fix RK3588 GPU domain Ulf Hansson
2024-09-13 11:59 ` Ulf Hansson
2024-09-19 9:05 ` Sebastian Reichel
2024-09-19 9:05 ` Sebastian Reichel
2024-09-16 15:45 ` Adrián Martínez Larumbe
2024-09-16 15:45 ` Adrián Martínez Larumbe
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=2197494.irdbgypaU6@phil \
--to=heiko@sntech.de \
--cc=adrian.larumbe@collabora.com \
--cc=boris.brezillon@collabora.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=kernel@collabora.com \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=robh@kernel.org \
--cc=sebastian.reichel@collabora.com \
--cc=ulf.hansson@linaro.org \
--cc=zhangqing@rock-chips.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.