imx9: soc: Reuse and export low_drive_freq_update()

Reuse and export low_drive_freq_update() function. This way global imx9
board_fix_fdt() doesn't duplicate code. While low_drive_freq_update()
can be reused on boards such as phyCORE-i.MX93 (TARGET_PHYCORE_IMX93)
which is not using the global imx9 board_fix_fdt() implementation.

While at it, make printout logic less verbose by only outputting on the
error condition and not on each successful clock fixup. Also drop now
invalid comment (low_drive_freq_update() now does fixup for internal and
kernel device-tree).

Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
This commit is contained in:
Primoz Fiser 2025-08-07 15:13:53 +02:00 committed by Fabio Estevam
parent b57ed14793
commit 442e752854
2 changed files with 7 additions and 23 deletions

View File

@ -18,6 +18,7 @@ enum imx9_soc_voltage_mode {
void soc_power_init(void);
bool m33_is_rom_kicked(void);
int m33_prepare(void);
int low_drive_freq_update(void *blob);
enum imx9_soc_voltage_mode soc_target_voltage_mode(void);

View File

@ -641,12 +641,10 @@ static int low_drive_fdt_fix_clock(void *fdt, int node_off, u32 clk_index, u32 n
return -ENOENT;
}
static int low_drive_freq_update(void *blob)
int low_drive_freq_update(void *blob)
{
int nodeoff, ret;
int i;
int nodeoff, ret, i;
/* Update kernel dtb clocks for low drive mode */
struct low_drive_freq_entry table[] = {
{"/soc@0/bus@42800000/mmc@42850000", 0, 266666667},
{"/soc@0/bus@42800000/mmc@42860000", 0, 266666667},
@ -658,8 +656,8 @@ static int low_drive_freq_update(void *blob)
if (nodeoff >= 0) {
ret = low_drive_fdt_fix_clock(blob, nodeoff, table[i].clk,
table[i].new_rate);
if (!ret)
printf("%s freq updated\n", table[i].node_path);
if (ret)
printf("freq update failed for %s\n", table[i].node_path);
}
}
@ -671,23 +669,8 @@ static int low_drive_freq_update(void *blob)
int board_fix_fdt(void *fdt)
{
/* Update dtb clocks for low drive mode */
if (is_voltage_mode(VOLT_LOW_DRIVE)) {
int nodeoff;
int i;
struct low_drive_freq_entry table[] = {
{"/soc@0/bus@42800000/mmc@42850000", 0, 266666667},
{"/soc@0/bus@42800000/mmc@42860000", 0, 266666667},
{"/soc@0/bus@42800000/mmc@428b0000", 0, 266666667},
};
for (i = 0; i < ARRAY_SIZE(table); i++) {
nodeoff = fdt_path_offset(fdt, table[i].node_path);
if (nodeoff >= 0)
low_drive_fdt_fix_clock(fdt, nodeoff, table[i].clk,
table[i].new_rate);
}
}
if (is_voltage_mode(VOLT_LOW_DRIVE))
low_drive_freq_update(fdt);
return 0;
}