summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2/sdram-nokia.c
diff options
context:
space:
mode:
authorAaro Koskinen <aaro.koskinen@nokia.com>2010-12-18 02:13:45 +0300
committerTony Lindgren <tony@atomide.com>2010-12-18 02:13:45 +0300
commite5f5b5422d064b7a393e39332da31af68e975f91 (patch)
tree5f30a42732858cf8d6a4886e23adc275b411f993 /arch/arm/mach-omap2/sdram-nokia.c
parentfbd208e9772005c193459d1a0575c0787ad52f69 (diff)
downloadlinux-e5f5b5422d064b7a393e39332da31af68e975f91.tar.xz
arm: omap: sdram-nokia: use array to list timings
Use an array to make it easier to add new values. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/sdram-nokia.c')
-rw-r--r--arch/arm/mach-omap2/sdram-nokia.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/sdram-nokia.c b/arch/arm/mach-omap2/sdram-nokia.c
index 97d16732c54d..1171451ef7f2 100644
--- a/arch/arm/mach-omap2/sdram-nokia.c
+++ b/arch/arm/mach-omap2/sdram-nokia.c
@@ -44,8 +44,6 @@ struct sdram_timings {
u32 tWTR;
};
-static struct omap_sdrc_params nokia_sdrc_params[4];
-
static const struct sdram_timings nokia_166mhz_timings[] = {
{
.casl = 3,
@@ -67,6 +65,16 @@ static const struct sdram_timings nokia_166mhz_timings[] = {
},
};
+static const struct {
+ long rate;
+ struct sdram_timings const *data;
+} nokia_timings[] = {
+ { 41500000, nokia_166mhz_timings },
+ { 83000000, nokia_166mhz_timings },
+ { 166000000, nokia_166mhz_timings },
+};
+static struct omap_sdrc_params nokia_sdrc_params[ARRAY_SIZE(nokia_timings) + 1];
+
static unsigned long sdrc_get_fclk_period(long rate)
{
/* In picoseconds */
@@ -212,11 +220,12 @@ static int sdrc_timings(int id, long rate,
struct omap_sdrc_params *nokia_get_sdram_timings(void)
{
- int err;
+ int err = 0;
+ int i;
- err = sdrc_timings(0, 41500000, nokia_166mhz_timings);
- err |= sdrc_timings(1, 83000000, nokia_166mhz_timings);
- err |= sdrc_timings(2, 166000000, nokia_166mhz_timings);
+ for (i = 0; i < ARRAY_SIZE(nokia_timings); i++)
+ err |= sdrc_timings(i, nokia_timings[i].rate,
+ nokia_timings[i].data);
return &nokia_sdrc_params[0];
}