powerpc/8xxx: Move fsl_is_spd() into generic 8xxx ddr code
authorKumar Gala <galak@kernel.crashing.org>
Sun, 9 Jan 2011 20:06:28 +0000 (14:06 -0600)
committerKumar Gala <galak@kernel.crashing.org>
Fri, 14 Jan 2011 07:32:22 +0000 (01:32 -0600)
Move the parsing of hwconfig to determine if to use spd into common code
so we can share it across all boards instead of duplicating it
everywhere.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/cpu/mpc8xxx/ddr/options.c
arch/powerpc/include/asm/fsl_ddr_sdram.h
board/freescale/corenet_ds/ddr.c

index 774c0e4b42f249f6aa02ff14002bccd388513eb0..c641e850684937de40cd3572b191c6a8b7153bd2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008, 2010 Freescale Semiconductor, Inc.
+ * Copyright 2008, 2010-2011 Freescale Semiconductor, Inc.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -387,3 +387,23 @@ void check_interleaving_options(fsl_ddr_info_t *pinfo)
                                "Memory controller interleaving disabled.\n");
        }
 }
+
+int fsl_use_spd(void)
+{
+       int use_spd = 0;
+
+#ifdef CONFIG_DDR_SPD
+       /* if hwconfig is not enabled, or "sdram" is not defined, use spd */
+       if (hwconfig_sub("fsl_ddr", "sdram")) {
+               if (hwconfig_subarg_cmp("fsl_ddr", "sdram", "spd"))
+                       use_spd = 1;
+               else if (hwconfig_subarg_cmp("fsl_ddr", "sdram", "fixed"))
+                       use_spd = 0;
+               else
+                       use_spd = 1;
+       } else
+               use_spd = 1;
+#endif
+
+       return use_spd;
+}
index 8ceae18457259f412586263d0f5b7a8cc2c908ef..3de2113bdad449d5f4ef0f87b1835e02cc7a3c26 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008-2010 Freescale Semiconductor, Inc.
+ * Copyright 2008-2011 Freescale Semiconductor, Inc.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -213,6 +213,7 @@ typedef struct memctl_options_s {
 } memctl_options_t;
 
 extern phys_size_t fsl_ddr_sdram(void);
+extern int fsl_use_spd(void);
 
 /*
  * The 85xx boards have a common prototype for fixed_sdram so put the
index 2ee018868bd60e989cecbbf3c233f0243ff39dd0..85b6c78efb167de1eb634dcebd903c453f2f53fe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2009-2010 Freescale Semiconductor, Inc.
+ * Copyright 2009-2011 Freescale Semiconductor, Inc.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -288,24 +288,10 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 phys_size_t initdram(int board_type)
 {
        phys_size_t dram_size;
-       int use_spd = 0;
 
        puts("Initializing....");
 
-#ifdef CONFIG_DDR_SPD
-       /* if hwconfig is not enabled, or "sdram" is not defined, use spd */
-       if (hwconfig_sub("fsl_ddr", "sdram")) {
-               if (hwconfig_subarg_cmp("fsl_ddr", "sdram", "spd"))
-                       use_spd = 1;
-               else if (hwconfig_subarg_cmp("fsl_ddr", "sdram", "fixed"))
-                       use_spd = 0;
-               else
-                       use_spd = 1;
-       } else
-               use_spd = 1;
-#endif
-
-       if (use_spd) {
+       if (fsl_use_spd()) {
                puts("using SPD\n");
                dram_size = fsl_ddr_sdram();
        } else {