]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
arm64: dts: imx8mp: Fix SDMA2/3 clocks
authorAdam Ford <aford173@gmail.com>
Sat, 19 Aug 2023 10:50:01 +0000 (05:50 -0500)
committerShawn Guo <shawnguo@kernel.org>
Sun, 24 Sep 2023 12:41:47 +0000 (20:41 +0800)
Commit 16c984524862 ("arm64: dts: imx8mp: don't initialize audio clocks
from CCM node") removed the Audio clocks from the main clock node, because
the intent is to force people to setup the audio PLL clocks per board
instead of having a common set of rates, since not all boards may use
the various audio PLL clocks in the same way.

Unfortunately, with this parenting removed, the SDMA2 and SDMA3
clocks were slowed to 24MHz because the SDMA2/3 clocks are controlled
via the audio_blk_ctrl which is clocked from IMX8MP_CLK_AUDIO_ROOT,
and that clock is enabled by pgc_audio.

Per the TRM, "The SDMA2/3 target frequency is 400MHz IPG and 400MHz
AHB, always 1:1 mode, to make sure there is enough throughput for all
the audio use cases."

Instead of cluttering the clock node, place the clock rate and parent
information into the pgc_audio node.

With the parenting and clock rates restored for  IMX8MP_CLK_AUDIO_AHB,
and IMX8MP_CLK_AUDIO_AXI_SRC, it appears the SDMA2 and SDMA3 run at
400MHz again.

Fixes: 16c984524862 ("arm64: dts: imx8mp: don't initialize audio clocks from CCM node")
Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mp.dtsi

index 6f2f50e1639c372e2355b41611b54a703355e380..83d907294fbc73ede28c54672ed05d96c9a8ff2d 100644 (file)
                                                reg = <IMX8MP_POWER_DOMAIN_AUDIOMIX>;
                                                clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
                                                         <&clk IMX8MP_CLK_AUDIO_AXI>;
+                                               assigned-clocks = <&clk IMX8MP_CLK_AUDIO_AHB>,
+                                                                 <&clk IMX8MP_CLK_AUDIO_AXI_SRC>;
+                                               assigned-clock-parents =  <&clk IMX8MP_SYS_PLL1_800M>,
+                                                                         <&clk IMX8MP_SYS_PLL1_800M>;
+                                               assigned-clock-rates = <400000000>,
+                                                                      <600000000>;
                                        };
 
                                        pgc_gpu2d: power-domain@6 {