* [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed
@ 2023-11-28 20:02 Adam Ford
2023-11-28 20:02 ` [PATCH 2/3] arm64: dts: imx8mm: Add optional overdrive DTSI Adam Ford
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Adam Ford @ 2023-11-28 20:02 UTC (permalink / raw)
To: linux-arm-kernel
Cc: aford, Adam Ford, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
NXP Linux Team, Lucas Stach, Frieder Schrempf, devicetree,
linux-kernel
When the GPU nodes were added, the GPU_PLL_OUT was configured
for 1000MHz, but this requires the SoC to run in overdrive mode
which requires an elevated voltage operating point.
Since this may run some boards out of spec, the default clock
should be set to 800MHz for nominal operating mode. Boards
that run at the higher voltage can update their clocks
accordingly.
Fixes: 4523be8e46be ("arm64: dts: imx8mm: Add GPU nodes for 2D and 3D core")
Signed-off-by: Adam Ford <aford173@gmail.com>
diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
index 669fdd2c54e4..b33bc4855e5f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
@@ -1402,7 +1402,7 @@ gpu_3d: gpu@38000000 {
assigned-clocks = <&clk IMX8MM_CLK_GPU3D_CORE>,
<&clk IMX8MM_GPU_PLL_OUT>;
assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
- assigned-clock-rates = <0>, <1000000000>;
+ assigned-clock-rates = <0>, <800000000>;
power-domains = <&pgc_gpu>;
};
@@ -1417,7 +1417,7 @@ gpu_2d: gpu@38008000 {
assigned-clocks = <&clk IMX8MM_CLK_GPU2D_CORE>,
<&clk IMX8MM_GPU_PLL_OUT>;
assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
- assigned-clock-rates = <0>, <1000000000>;
+ assigned-clock-rates = <0>, <800000000>;
power-domains = <&pgc_gpu>;
};
--
2.40.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 2/3] arm64: dts: imx8mm: Add optional overdrive DTSI
2023-11-28 20:02 [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed Adam Ford
@ 2023-11-28 20:02 ` Adam Ford
2023-11-28 20:02 ` [PATCH 3/3] arm64: dts: imx8mm-beacon: Enable overdrive mode Adam Ford
2023-12-14 2:22 ` [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed Shawn Guo
2 siblings, 0 replies; 4+ messages in thread
From: Adam Ford @ 2023-11-28 20:02 UTC (permalink / raw)
To: linux-arm-kernel
Cc: aford, Adam Ford, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
NXP Linux Team, Frieder Schrempf, Lucas Stach, devicetree,
linux-kernel
For boards who run their SoC at a higher voltage than nominal,
the boards can run several clocks at an overdrive rate for
better performance. Add an optional DTSI file which can be
included by various boards to run in overdrive mode.
This raises the GPU PLL to 1000MHz, and the VPU PLL to
700MHz while moving VPU_G1 and VPU_H1 to the SYS_PLL3_OUT
which runs at 750MHz.
Signed-off-by: Adam Ford <aford173@gmail.com>
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-overdrive.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-overdrive.dtsi
new file mode 100644
index 000000000000..b31436b5e9b7
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mm-overdrive.dtsi
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+&gpu_2d {
+ assigned-clocks = <&clk IMX8MM_CLK_GPU2D_CORE>,
+ <&clk IMX8MM_GPU_PLL_OUT>;
+ assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
+ assigned-clock-rates = <0>, <1000000000>;
+};
+
+&gpu_3d {
+ assigned-clocks = <&clk IMX8MM_CLK_GPU3D_CORE>,
+ <&clk IMX8MM_GPU_PLL_OUT>;
+ assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
+ assigned-clock-rates = <0>, <1000000000>;
+};
+
+&vpu_blk_ctrl {
+ assigned-clocks = <&clk IMX8MM_CLK_VPU_G1>,
+ <&clk IMX8MM_CLK_VPU_G2>,
+ <&clk IMX8MM_CLK_VPU_H1>,
+ <&clk IMX8MM_VPU_PLL_OUT>;
+ assigned-clock-parents = <&clk IMX8MM_SYS_PLL3_OUT>,
+ <&clk IMX8MM_VPU_PLL_OUT>,
+ <&clk IMX8MM_SYS_PLL3_OUT>;
+ assigned-clock-rates = <750000000>,
+ <700000000>,
+ <750000000>,
+ <700000000>;
+};
--
2.40.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 3/3] arm64: dts: imx8mm-beacon: Enable overdrive mode
2023-11-28 20:02 [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed Adam Ford
2023-11-28 20:02 ` [PATCH 2/3] arm64: dts: imx8mm: Add optional overdrive DTSI Adam Ford
@ 2023-11-28 20:02 ` Adam Ford
2023-12-14 2:22 ` [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed Shawn Guo
2 siblings, 0 replies; 4+ messages in thread
From: Adam Ford @ 2023-11-28 20:02 UTC (permalink / raw)
To: linux-arm-kernel
Cc: aford, Adam Ford, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
NXP Linux Team, Frieder Schrempf, Lucas Stach, devicetree,
linux-kernel
The SoC runs at a high enough voltage to support overdrive
mode, so include the imx8mm-overdrive.dtsi file to increase
the VPU and GPU clocks to their overdrive speeds.
Signed-off-by: Adam Ford <aford173@gmail.com>
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
index f264102bdb27..62ed64663f49 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
@@ -3,6 +3,8 @@
* Copyright 2020 Compass Electronics Group, LLC
*/
+#include "imx8mm-overdrive.dtsi"
+
/ {
aliases {
rtc0 = &rtc;
--
2.40.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed
2023-11-28 20:02 [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed Adam Ford
2023-11-28 20:02 ` [PATCH 2/3] arm64: dts: imx8mm: Add optional overdrive DTSI Adam Ford
2023-11-28 20:02 ` [PATCH 3/3] arm64: dts: imx8mm-beacon: Enable overdrive mode Adam Ford
@ 2023-12-14 2:22 ` Shawn Guo
2 siblings, 0 replies; 4+ messages in thread
From: Shawn Guo @ 2023-12-14 2:22 UTC (permalink / raw)
To: Adam Ford
Cc: linux-arm-kernel, aford, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, Lucas Stach, Frieder Schrempf,
devicetree, linux-kernel
On Tue, Nov 28, 2023 at 02:02:16PM -0600, Adam Ford wrote:
> When the GPU nodes were added, the GPU_PLL_OUT was configured
> for 1000MHz, but this requires the SoC to run in overdrive mode
> which requires an elevated voltage operating point.
>
> Since this may run some boards out of spec, the default clock
> should be set to 800MHz for nominal operating mode. Boards
> that run at the higher voltage can update their clocks
> accordingly.
>
> Fixes: 4523be8e46be ("arm64: dts: imx8mm: Add GPU nodes for 2D and 3D core")
> Signed-off-by: Adam Ford <aford173@gmail.com>
Applied all, thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-12-14 2:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-28 20:02 [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed Adam Ford
2023-11-28 20:02 ` [PATCH 2/3] arm64: dts: imx8mm: Add optional overdrive DTSI Adam Ford
2023-11-28 20:02 ` [PATCH 3/3] arm64: dts: imx8mm-beacon: Enable overdrive mode Adam Ford
2023-12-14 2:22 ` [PATCH 1/3] arm64: dts: imx8mm: Reduce GPU to nominal speed Shawn Guo
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).