From b6e2cfca1a6fd10c8f12016a40d690d2ec61796c Mon Sep 17 00:00:00 2001 From: Primoz Fiser Date: Thu, 7 Aug 2025 15:13:54 +0200 Subject: [PATCH] board: phytec: phycore-imx93: Add VOLT_LOW_DRIVE frequency fixup For phyCORE-i.MX93 SoMs with i.MX93 parts running in VOLT_LOW_DRIVE mode (SoCs with speed grade fuse set to 900 MHz) reduce usdhc clocks from 400 MHz to 266 MHz. Do this in board code since global imx9 board_fix_fdt() is not used in case of phycore-imx93 board since commit d3b9b7996889 ("board: phytec: imx93: Add eeprom-based hardware introspection"). While at it, add a note to ft_board_setup() function to inform that fixup for Linux device-tree is taken care by ft_system_setup() in imx9 global arch/arm/mach-imx/imx9/soc.c implementation. Signed-off-by: Primoz Fiser --- board/phytec/phycore_imx93/phycore-imx93.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/board/phytec/phycore_imx93/phycore-imx93.c b/board/phytec/phycore_imx93/phycore-imx93.c index 8d2caf8bbef..fab66caf2a1 100644 --- a/board/phytec/phycore_imx93/phycore-imx93.c +++ b/board/phytec/phycore_imx93/phycore-imx93.c @@ -79,6 +79,10 @@ int board_fix_fdt(void *blob) emmc_fixup(blob, &data); + /* Update dtb clocks for low drive mode */ + if (is_voltage_mode(VOLT_LOW_DRIVE)) + low_drive_freq_update(blob); + return 0; } @@ -86,5 +90,10 @@ int ft_board_setup(void *blob, struct bd_info *bd) { emmc_fixup(blob, NULL); + /** + * NOTE: VOLT_LOW_DRIVE fixup is done by the ft_system_setup() + * in arch/arm/mach-imx/imx9/soc.c for Linux device-tree. + */ + return 0; } -- 2.47.2