[PATCH v2 3/4] arm64: dts: amlogic: t7: add the pipeline clock to the MMC controllers
Neil Armstrong
neil.armstrong at linaro.org
Thu Sep 10 00:13:26 PDT 2026
On 9/5/26 17:32, Lucas Tanure wrote:
> The SD/eMMC controllers reach the DRAM through a pipeline stage that
> the hardware design inserts in the bus path to the NIC_MATRIX fabric,
> clocked by CLKID_SYS_AMPIPE_NAND. When that clock is disabled, a
> controller that starts a DMA transfer can never complete it.
>
> Reference the clock from the three MMC controller nodes so the driver
> keeps it running, instead of relying on the clock being marked critical
> in the clock controller.
>
> Assisted-by: Claude:claude-fable-5
> Signed-off-by: Lucas Tanure <tanure at linux.com>
> ---
> arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> index c3dc479b137d..dbb4a95652c6 100644
> --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> @@ -730,8 +730,9 @@ sd_emmc_a: mmc at 88000 {
> interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
> clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_A>,
> <&clkc_periphs CLKID_SD_EMMC_A>,
> - <&scmi_clk CLKID_FCLK_DIV2>;
> - clock-names = "core", "clkin0", "clkin1";
> + <&scmi_clk CLKID_FCLK_DIV2>,
> + <&clkc_periphs CLKID_SYS_AMPIPE_NAND>;
> + clock-names = "core", "clkin0", "clkin1", "pipeline";
> resets = <&reset RESET_SD_EMMC_A>;
> assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_A_SEL>;
> assigned-clock-parents = <&xtal>;
> @@ -744,8 +745,9 @@ sd_emmc_b: mmc at 8a000 {
> interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>;
> clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_B>,
> <&clkc_periphs CLKID_SD_EMMC_B>,
> - <&scmi_clk CLKID_FCLK_DIV2>;
> - clock-names = "core", "clkin0", "clkin1";
> + <&scmi_clk CLKID_FCLK_DIV2>,
> + <&clkc_periphs CLKID_SYS_AMPIPE_NAND>;
> + clock-names = "core", "clkin0", "clkin1", "pipeline";
> resets = <&reset RESET_SD_EMMC_B>;
> assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_B_SEL>;
> assigned-clock-parents = <&xtal>;
> @@ -758,8 +760,9 @@ sd_emmc_c: mmc at 8c000 {
> interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
> clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_C>,
> <&clkc_periphs CLKID_SD_EMMC_C>,
> - <&scmi_clk CLKID_FCLK_DIV2>;
> - clock-names = "core", "clkin0", "clkin1";
> + <&scmi_clk CLKID_FCLK_DIV2>,
> + <&clkc_periphs CLKID_SYS_AMPIPE_NAND>;
> + clock-names = "core", "clkin0", "clkin1", "pipeline";
> resets = <&reset RESET_SD_EMMC_C>;
> assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_C_SEL>;
> assigned-clock-parents = <&xtal>;
Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>
Thanks,
Neil
More information about the linux-arm-kernel
mailing list