From: Drew Fustini <drew@pdp7.com>
To: Michal Wilczynski <m.wilczynski@samsung.com>
Cc: Guo Ren <guoren@kernel.org>, Fu Wei <wefu@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Philipp Zabel <p.zabel@pengutronix.de>,
Frank Binns <frank.binns@imgtec.com>,
Matt Coster <matt.coster@imgtec.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
Ulf Hansson <ulf.hansson@linaro.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v5 1/8] power: sequencing: Add T-HEAD TH1520 GPU power sequencer driver
Date: Wed, 18 Jun 2025 15:54:57 -0700 [thread overview]
Message-ID: <aFNDwcK5+ZuHBdrw@x1> (raw)
In-Reply-To: <20250618-apr_14_for_sending-v5-1-27ed33ea5c6f@samsung.com>
On Wed, Jun 18, 2025 at 12:22:07PM +0200, Michal Wilczynski wrote:
> Introduce the pwrseq-thead-gpu driver, a power sequencer provider for
> the Imagination BXM-4-64 GPU on the T-HEAD TH1520 SoC. This driver
> controls an auxiliary device instantiated by the AON power domain.
>
> The TH1520 GPU requires a specific sequence to correctly initialize and
> power down its resources:
> - Enable GPU clocks (core and sys).
> - De-assert the GPU clock generator reset (clkgen_reset).
> - Introduce a short hardware-required delay.
> - De-assert the GPU core reset. The power-down sequence performs these
> steps in reverse.
>
> Implement this sequence via the pwrseq_power_on and pwrseq_power_off
> callbacks.
>
> Crucially, the driver's match function is called when a consumer (the
> Imagination GPU driver) requests the "gpu-power" target. During this
> match, the sequencer uses clk_bulk_get() and
> reset_control_get_exclusive() on the consumer's device to obtain handles
> to the GPU's "core" and "sys" clocks, and the GPU core reset. These,
> along with clkgen_reset obtained from parent aon node, allow it to
> perform the complete sequence.
>
> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
> Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com>
> ---
> MAINTAINERS | 1 +
> drivers/power/sequencing/Kconfig | 8 +
> drivers/power/sequencing/Makefile | 1 +
> drivers/power/sequencing/pwrseq-thead-gpu.c | 231 ++++++++++++++++++++++++++++
> 4 files changed, 241 insertions(+)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 0183c028fa18c397d30ec82fd419894f1f50a448..3283ff592215249bcf702dbb4ab710477243477e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -21395,6 +21395,7 @@ F: drivers/mailbox/mailbox-th1520.c
> F: drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c
> F: drivers/pinctrl/pinctrl-th1520.c
> F: drivers/pmdomain/thead/
> +F: drivers/power/sequencing/pwrseq-thead-gpu.c
> F: drivers/reset/reset-th1520.c
> F: include/dt-bindings/clock/thead,th1520-clk-ap.h
> F: include/dt-bindings/power/thead,th1520-power.h
> diff --git a/drivers/power/sequencing/Kconfig b/drivers/power/sequencing/Kconfig
> index ddcc42a984921c55667c46ac586d259625e1f1a7..7fa912c9af2479cdce909467c29fe335788f0bd7 100644
> --- a/drivers/power/sequencing/Kconfig
> +++ b/drivers/power/sequencing/Kconfig
> @@ -27,4 +27,12 @@ config POWER_SEQUENCING_QCOM_WCN
> this driver is needed for correct power control or else we'd risk not
> respecting the required delays between enabling Bluetooth and WLAN.
>
> +config POWER_SEQUENCING_THEAD_GPU
> + tristate "T-HEAD TH1520 GPU power sequencing driver"
> + depends on ARCH_THEAD && AUXILIARY_BUS
> + help
> + Say Y here to enable the power sequencing driver for the TH1520 SoC
> + GPU. This driver handles the complex clock and reset sequence
> + required to power on the Imagination BXM GPU on this platform.
This is a minor nit but maybe this should be POWER_SEQUENCING_TH1520_GPU?
I often grep for TH1520 to make sure I have all the options enabled and
it took me a second to realize it was 'THEAD' instead of 'TH1520'.
In retrospect, I probably should have have used CONFIG_DWMAC_TH1520 for
the ethernet driver instead of CONFIG_DWMAC_THEAD.
Thanks,
Drew
WARNING: multiple messages have this Message-ID (diff)
From: Drew Fustini <drew@pdp7.com>
To: Michal Wilczynski <m.wilczynski@samsung.com>
Cc: Guo Ren <guoren@kernel.org>, Fu Wei <wefu@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Philipp Zabel <p.zabel@pengutronix.de>,
Frank Binns <frank.binns@imgtec.com>,
Matt Coster <matt.coster@imgtec.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
Ulf Hansson <ulf.hansson@linaro.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v5 1/8] power: sequencing: Add T-HEAD TH1520 GPU power sequencer driver
Date: Wed, 18 Jun 2025 15:54:57 -0700 [thread overview]
Message-ID: <aFNDwcK5+ZuHBdrw@x1> (raw)
In-Reply-To: <20250618-apr_14_for_sending-v5-1-27ed33ea5c6f@samsung.com>
On Wed, Jun 18, 2025 at 12:22:07PM +0200, Michal Wilczynski wrote:
> Introduce the pwrseq-thead-gpu driver, a power sequencer provider for
> the Imagination BXM-4-64 GPU on the T-HEAD TH1520 SoC. This driver
> controls an auxiliary device instantiated by the AON power domain.
>
> The TH1520 GPU requires a specific sequence to correctly initialize and
> power down its resources:
> - Enable GPU clocks (core and sys).
> - De-assert the GPU clock generator reset (clkgen_reset).
> - Introduce a short hardware-required delay.
> - De-assert the GPU core reset. The power-down sequence performs these
> steps in reverse.
>
> Implement this sequence via the pwrseq_power_on and pwrseq_power_off
> callbacks.
>
> Crucially, the driver's match function is called when a consumer (the
> Imagination GPU driver) requests the "gpu-power" target. During this
> match, the sequencer uses clk_bulk_get() and
> reset_control_get_exclusive() on the consumer's device to obtain handles
> to the GPU's "core" and "sys" clocks, and the GPU core reset. These,
> along with clkgen_reset obtained from parent aon node, allow it to
> perform the complete sequence.
>
> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
> Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com>
> ---
> MAINTAINERS | 1 +
> drivers/power/sequencing/Kconfig | 8 +
> drivers/power/sequencing/Makefile | 1 +
> drivers/power/sequencing/pwrseq-thead-gpu.c | 231 ++++++++++++++++++++++++++++
> 4 files changed, 241 insertions(+)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 0183c028fa18c397d30ec82fd419894f1f50a448..3283ff592215249bcf702dbb4ab710477243477e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -21395,6 +21395,7 @@ F: drivers/mailbox/mailbox-th1520.c
> F: drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c
> F: drivers/pinctrl/pinctrl-th1520.c
> F: drivers/pmdomain/thead/
> +F: drivers/power/sequencing/pwrseq-thead-gpu.c
> F: drivers/reset/reset-th1520.c
> F: include/dt-bindings/clock/thead,th1520-clk-ap.h
> F: include/dt-bindings/power/thead,th1520-power.h
> diff --git a/drivers/power/sequencing/Kconfig b/drivers/power/sequencing/Kconfig
> index ddcc42a984921c55667c46ac586d259625e1f1a7..7fa912c9af2479cdce909467c29fe335788f0bd7 100644
> --- a/drivers/power/sequencing/Kconfig
> +++ b/drivers/power/sequencing/Kconfig
> @@ -27,4 +27,12 @@ config POWER_SEQUENCING_QCOM_WCN
> this driver is needed for correct power control or else we'd risk not
> respecting the required delays between enabling Bluetooth and WLAN.
>
> +config POWER_SEQUENCING_THEAD_GPU
> + tristate "T-HEAD TH1520 GPU power sequencing driver"
> + depends on ARCH_THEAD && AUXILIARY_BUS
> + help
> + Say Y here to enable the power sequencing driver for the TH1520 SoC
> + GPU. This driver handles the complex clock and reset sequence
> + required to power on the Imagination BXM GPU on this platform.
This is a minor nit but maybe this should be POWER_SEQUENCING_TH1520_GPU?
I often grep for TH1520 to make sure I have all the options enabled and
it took me a second to realize it was 'THEAD' instead of 'TH1520'.
In retrospect, I probably should have have used CONFIG_DWMAC_TH1520 for
the ethernet driver instead of CONFIG_DWMAC_THEAD.
Thanks,
Drew
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2025-06-18 22:55 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20250618102225eucas1p129b1172bf54521c1eb0f718cb31af468@eucas1p1.samsung.com>
2025-06-18 10:22 ` [PATCH v5 0/8] Add TH1520 GPU support with power sequencing Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 10:22 ` [PATCH v5 1/8] power: sequencing: Add T-HEAD TH1520 GPU power sequencer driver Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 13:40 ` Bartosz Golaszewski
2025-06-18 13:40 ` Bartosz Golaszewski
2025-06-18 22:54 ` Drew Fustini [this message]
2025-06-18 22:54 ` Drew Fustini
2025-06-18 10:22 ` [PATCH v5 2/8] dt-bindings: firmware: thead,th1520: Add resets for GPU clkgen Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 13:40 ` Bartosz Golaszewski
2025-06-18 13:40 ` Bartosz Golaszewski
2025-06-19 1:50 ` Drew Fustini
2025-06-19 1:50 ` Drew Fustini
2025-06-19 7:43 ` Krzysztof Kozlowski
2025-06-19 7:43 ` Krzysztof Kozlowski
2025-06-18 10:22 ` [PATCH v5 3/8] pmdomain: thead: Instantiate GPU power sequencer via auxiliary bus Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 13:41 ` Bartosz Golaszewski
2025-06-18 13:41 ` Bartosz Golaszewski
2025-06-19 10:24 ` Ulf Hansson
2025-06-19 10:24 ` Ulf Hansson
2025-06-19 12:31 ` Bartosz Golaszewski
2025-06-19 12:31 ` Bartosz Golaszewski
2025-06-19 14:05 ` Ulf Hansson
2025-06-19 14:05 ` Ulf Hansson
2025-06-18 10:22 ` [PATCH v5 4/8] drm/imagination: Use pwrseq for TH1520 GPU power management Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 13:42 ` Bartosz Golaszewski
2025-06-18 13:42 ` Bartosz Golaszewski
2025-06-18 10:22 ` [PATCH v5 5/8] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU compatible Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 13:42 ` Bartosz Golaszewski
2025-06-18 13:42 ` Bartosz Golaszewski
2025-06-18 10:22 ` [PATCH v5 6/8] riscv: dts: thead: th1520: Add GPU clkgen reset to AON node Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 13:43 ` Bartosz Golaszewski
2025-06-18 13:43 ` Bartosz Golaszewski
2025-06-19 2:20 ` Drew Fustini
2025-06-19 2:20 ` Drew Fustini
2025-06-18 10:22 ` [PATCH v5 7/8] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 13:43 ` Bartosz Golaszewski
2025-06-18 13:43 ` Bartosz Golaszewski
2025-06-19 2:50 ` Drew Fustini
2025-06-19 2:50 ` Drew Fustini
2025-06-18 10:22 ` [PATCH v5 8/8] drm/imagination: Enable PowerVR driver for RISC-V Michal Wilczynski
2025-06-18 10:22 ` Michal Wilczynski
2025-06-18 13:44 ` Bartosz Golaszewski
2025-06-18 13:44 ` Bartosz Golaszewski
2025-06-19 6:15 ` kernel test robot
2025-06-19 6:15 ` kernel test robot
2025-06-20 3:32 ` kernel test robot
2025-06-20 3:32 ` kernel test robot
2025-06-23 9:37 ` Michal Wilczynski
2025-06-23 9:37 ` Michal Wilczynski
2025-06-19 1:43 ` [PATCH v5 0/8] Add TH1520 GPU support with power sequencing Drew Fustini
2025-06-19 1:43 ` Drew Fustini
2025-06-23 8:17 ` Michal Wilczynski
2025-06-23 8:17 ` Michal Wilczynski
2025-06-25 15:26 ` Drew Fustini
2025-06-25 15:26 ` Drew Fustini
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=aFNDwcK5+ZuHBdrw@x1 \
--to=drew@pdp7.com \
--cc=airlied@gmail.com \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=brgl@bgdev.pl \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=frank.binns@imgtec.com \
--cc=guoren@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=m.szyprowski@samsung.com \
--cc=m.wilczynski@samsung.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=matt.coster@imgtec.com \
--cc=mripard@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=ulf.hansson@linaro.org \
--cc=wefu@redhat.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.