|
@@ -297,6 +297,40 @@ void fdt_add_enet_stashing(void *fdt)
|
|
|
do_fixup_by_compat_u32(fdt, "gianfar", "rx-stash-idx", 0, 1);
|
|
|
}
|
|
|
|
|
|
+#if defined(CONFIG_SYS_DPAA_FMAN) || defined(CONFIG_SYS_DPAA_PME)
|
|
|
+static void ft_fixup_clks(void *blob, const char *alias, unsigned long freq)
|
|
|
+{
|
|
|
+ const char *path = fdt_get_alias(blob, alias);
|
|
|
+
|
|
|
+ int off = fdt_path_offset(blob, path);
|
|
|
+
|
|
|
+ if (off >= 0) {
|
|
|
+ off = fdt_setprop_cell(blob, off, "clock-frequency", freq);
|
|
|
+ if (off > 0)
|
|
|
+ printf("WARNING enable to set clock-frequency "
|
|
|
+ "for %s: %s\n", alias, fdt_strerror(off));
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+static void ft_fixup_dpaa_clks(void *blob)
|
|
|
+{
|
|
|
+ sys_info_t sysinfo;
|
|
|
+
|
|
|
+ get_sys_info(&sysinfo);
|
|
|
+ ft_fixup_clks(blob, "fman0", sysinfo.freqFMan[0]);
|
|
|
+
|
|
|
+#if (CONFIG_SYS_NUM_FMAN == 2)
|
|
|
+ ft_fixup_clks(blob, "fman1", sysinfo.freqFMan[1]);
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_SYS_DPAA_PME
|
|
|
+ ft_fixup_clks(blob, "pme", sysinfo.freqPME);
|
|
|
+#endif
|
|
|
+}
|
|
|
+#else
|
|
|
+#define ft_fixup_dpaa_clks(x)
|
|
|
+#endif
|
|
|
+
|
|
|
void ft_cpu_setup(void *blob, bd_t *bd)
|
|
|
{
|
|
|
int off;
|
|
@@ -360,4 +394,6 @@ void ft_cpu_setup(void *blob, bd_t *bd)
|
|
|
#if defined(CONFIG_FSL_ESDHC)
|
|
|
fdt_fixup_esdhc(blob, bd);
|
|
|
#endif
|
|
|
+
|
|
|
+ ft_fixup_dpaa_clks(blob);
|
|
|
}
|