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 <primoz.fi...@norik.com>
---
 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 a55795e06034..b64138053935 100644
--- a/board/phytec/phycore_imx93/phycore-imx93.c
+++ b/board/phytec/phycore_imx93/phycore-imx93.c
@@ -82,6 +82,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;
 }
 
@@ -89,5 +93,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.34.1

Reply via email to