[PATCH] arm64: dts: imx95: remove CLK_GPUAPB

Rain Yang jiyu.yang at oss.nxp.com
Sun Jan 4 18:19:16 PST 2026


On Fri, Jan 02, 2026 at 02:53:31PM +0100, Marek Vasut wrote:
>On 1/2/26 11:37 AM, Rain Yang wrote:
>> On Thu, Jan 01, 2026 at 05:51:12PM +0100, Marek Vasut wrote:
>> > On 1/1/26 1:37 AM, Rain Yang wrote:
>> > > On Wed, Dec 31, 2025 at 03:11:21PM +0100, Marek Vasut wrote:
>> > > > On 12/31/25 4:19 AM, Rain Yang wrote:
>> > > > > From: Rain Yang <jiyu.yang at nxp.com>
>> > > > > 
>> > > > > Dropping CLK_GPUAPB simplifies OPP handling and avoids unnecessary
>> > > > > complexity.
>> > > > > 
>> > > > > Fixes: 67934f248e64 ("arm64: dts: imx95: Describe Mali G310 GPU")
>> > > > > Signed-off-by: Rain Yang <jiyu.yang at nxp.com>
>> > > > > ---
>> > > > >     arch/arm64/boot/dts/freescale/imx95.dtsi | 4 ++--
>> > > > >     1 file changed, 2 insertions(+), 2 deletions(-)
>> > > > > 
>> > > > > diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
>> > > > > index 88bde59e61b2..ab446aa6f73c 100644
>> > > > > --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
>> > > > > +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
>> > > > > @@ -2164,8 +2164,8 @@ netc_emdio: mdio at 0,0 {
>> > > > >     		gpu: gpu at 4d900000 {
>> > > > >     			compatible = "nxp,imx95-mali", "arm,mali-valhall-csf";
>> > > > >     			reg = <0 0x4d900000 0 0x480000>;
>> > > > > -			clocks = <&scmi_clk IMX95_CLK_GPU_CGC>, <&scmi_clk IMX95_CLK_GPUAPB>;
>> > > > > -			clock-names = "core", "coregroup";
>> > > > > +			clocks = <&scmi_clk IMX95_CLK_GPU_CGC>;
>> > > > > +			clock-names = "core";
>> > > > 
>> > > > I don't think this is correct, SM can disable the GPUAPB clock from the SM
>> > > > monitor:
>> > > > 
>> > > > > $ clock.w gpuapb off
>> > > > 
>> > > > Linux has to make sure the GPUAPB clock are enabled to access the GPU
>> > > > register, hence the clock have to be described in DT.
>> > > Hi Marek,
>> > 
>> > Hello Jiyu,
>> > 
>> > > CLK_GPU and CLK_GPUAPB can only be controlled internally by the SM, not by Linux.
>> > > CLK_GPUAPB always runs at a fixed frequency, does not require dynamic adjustment,
>> > > and is practically always on.
>> > > Additionally, CLK_GPUAPB's frequency is absent from all OPP entries. Removing it
>> > > could simplify OPP handling logic and reduce unnecessary complexity.
>> > 
>> > But the SM can turn the GPUAPB clock off, correct ?
>> > 
>> > Linux has to be able to turn GPUAPB clock on, therefore the GPUAPB clock have
>> > to be described in DT, correct ?
>> 
>> Yes, CLK_GPUAPB can be turned off by the SM, but by default it remains on, just like
>> CLK_GPU. AFAIK, there is no scenario where either of these clocks could or would be
>> disabled in both SM and Linux.
>> 
>> If enabling or disabling CLK_GPUAPB in Linux was wanted, the same shall apply to CLK_GPU
>> to make this approach reasonable.
>> Also, OPP framework shall be adjusted to meet these changes too.
>
>You can not depend on the state in which bootloader or any other prior stage
>left the platform. If the clock can be turned off, you must make sure they
>are turned on for correct hardware operation.
>
>CLK_GPU is enabled as parent clock of CLK_GPUCGC already.
Hi Marek,
I'm afraid it's not what you expected, the CLK_GPUCGC patch already based on the CLK_GPU is
always-on, you can disable the CLK_GPU in SM, then run any gles application, the board will reboot.
>
>I don't understand your concerns about the OPP framework, this keeps coming
>up in the discussion one way or the other, but it is not clear to me what
>this is about. Can you elaborate on the OPP framework concern ?



More information about the linux-arm-kernel mailing list