| From 5568c7f229e2652a573c7942d503902e7f4051bf Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 19 Aug 2023 05:50:01 -0500 |
| Subject: arm64: dts: imx8mp: Fix SDMA2/3 clocks |
| |
| From: Adam Ford <aford173@gmail.com> |
| |
| [ Upstream commit b739681b3f8b2a7a684a71ddd048b9b6b5400011 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/arm64/boot/dts/freescale/imx8mp.dtsi | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi |
| index cc406bb338feb..587265395a9b4 100644 |
| --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi |
| +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi |
| @@ -794,6 +794,12 @@ |
| 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 { |
| -- |
| 2.40.1 |
| |