]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
85xx: Add support to set DPAA (data path) devices clock frequencies
authorKumar Gala <galak@kernel.crashing.org>
Thu, 19 Mar 2009 07:46:28 +0000 (02:46 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Tue, 5 Jan 2010 19:49:04 +0000 (13:49 -0600)
Set clock-frequency for Frame Manager 0/1 and Patter Match Engine on p4080.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
cpu/mpc85xx/fdt.c

index 5f9aeb10b685f30ede615b7113a18a534747ceb5..af0e78e07f7e53af304ec36274721089cced2ac9 100644 (file)
@@ -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);
 }