]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: imx95: Use GPU_CGC as core clock for GPU
authorMarek Vasut <marek.vasut@mailbox.org>
Sat, 29 Nov 2025 14:31:30 +0000 (15:31 +0100)
committerShawn Guo <shawnguo@kernel.org>
Sat, 17 Jan 2026 05:34:41 +0000 (13:34 +0800)
The i.MX95 imx-sm introduced new GPU_CGC clock since imx-sm commit
ca5e078833fa ("SM-128: Add clock management via CCM LPCG direct control")
which are downstream clock of GPU clock. These new GPU_CGC clock
gate the existing GPU clock. Currently, without clk_ignore_unused
on kernel command line, those new GPU_CGC clock are unused and the
kernel will disable them. This has no impact on i.MX95 A0/A1, but
does prevent GPU register access from working at all on i.MX95 B0.
The GPU_CGC clock are present on both i.MX95 A0/A1/B0, therefore
update the DT such, that the GPU core clock are the GPU_CGC clock.
When the panthor driver enables the GPU core clock, it enables both
the GPU_CGC as well as its parent GPU clock.

Fixes: 67934f248e64 ("arm64: dts: imx95: Describe Mali G310 GPU")
Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx95-clock.h
arch/arm64/boot/dts/freescale/imx95.dtsi

index e1f91203e7947071b8b0973d7141be2c39476d49..22311612e440338b22e8d80ceffaf2387becf105 100644 (file)
 #define IMX95_CLK_SEL_A55P                 (IMX95_CCM_NUM_CLK_SRC + 123 + 7)
 #define IMX95_CLK_SEL_DRAM                 (IMX95_CCM_NUM_CLK_SRC + 123 + 8)
 #define IMX95_CLK_SEL_TEMPSENSE            (IMX95_CCM_NUM_CLK_SRC + 123 + 9)
+#define IMX95_CLK_GPU_CGC                  (IMX95_CCM_NUM_CLK_SRC + 123 + 10)
 
 #endif /* __CLOCK_IMX95_H */
index e45014d50abef1d6dc7403a865e795c906d2c3fd..93d53c3f9eab3363c8eb7aecbbe0cfe87c39dde1 100644 (file)
                gpu: gpu@4d900000 {
                        compatible = "nxp,imx95-mali", "arm,mali-valhall-csf";
                        reg = <0 0x4d900000 0 0x480000>;
-                       clocks = <&scmi_clk IMX95_CLK_GPU>, <&scmi_clk IMX95_CLK_GPUAPB>;
+                       clocks = <&scmi_clk IMX95_CLK_GPU_CGC>, <&scmi_clk IMX95_CLK_GPUAPB>;
                        clock-names = "core", "coregroup";
                        interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,