aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2009-05-28 17:03:59 -0400
committerTony Lindgren <tony@atomide.com>2009-05-28 17:03:59 -0400
commit2e12bd7ef175c9dc55dc215823b62a2247865012 (patch)
treef38fa653e5b48e92e7f47e818976f5ece1234397 /arch/arm
parent2aa57be2d9e400f498cf0f0636069a81035e06b9 (diff)
ARM: OMAP3: SDRC: add timing data for Micron MT46H32M32LF-6, v2
Add timing data for the Micron MT46H32M32LF-6 SDRAM chip, used on the OMAP3 Beagle and EVM boards. Original timing data is from the Micron datasheet PDF downloaded from: http://download.micron.com/pdf/datasheets/dram/mobile/1gb_ddr_mobile_sdram_t48m.pdf Thanks to Rajendra Nayak <rnayak@ti.com> for his help identifying the chips used on Beagle & OMAP3EVM. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c4
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c3
-rw-r--r--arch/arm/mach-omap2/board-overo.c3
-rw-r--r--arch/arm/mach-omap2/sdram-micron-mt46h32m32lf-6.h55
4 files changed, 62 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 3a7a29d1f9a7..f25082c53c67 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -105,6 +105,8 @@ static struct platform_device omap3beagle_nand_device = {
105 .resource = &omap3beagle_nand_resource, 105 .resource = &omap3beagle_nand_resource,
106}; 106};
107 107
108#include "sdram-micron-mt46h32m32lf-6.h"
109
108static struct omap_uart_config omap3_beagle_uart_config __initdata = { 110static struct omap_uart_config omap3_beagle_uart_config __initdata = {
109 .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), 111 .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
110}; 112};
@@ -185,7 +187,7 @@ static int __init omap3_beagle_i2c_init(void)
185 187
186static void __init omap3_beagle_init_irq(void) 188static void __init omap3_beagle_init_irq(void)
187{ 189{
188 omap2_init_common_hw(NULL); 190 omap2_init_common_hw(mt46h32m32lf6_sdrc_params);
189 omap_init_irq(); 191 omap_init_irq();
190#ifdef CONFIG_OMAP_32K_TIMER 192#ifdef CONFIG_OMAP_32K_TIMER
191 omap2_gp_clockevent_set_gptimer(12); 193 omap2_gp_clockevent_set_gptimer(12);
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 402f09c6cf10..3571bb47ab86 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -36,6 +36,7 @@
36#include <mach/mcspi.h> 36#include <mach/mcspi.h>
37#include <mach/usb.h> 37#include <mach/usb.h>
38 38
39#include "sdram-micron-mt46h32m32lf-6.h"
39#include "mmc-twl4030.h" 40#include "mmc-twl4030.h"
40 41
41#define OMAP3_PANDORA_TS_GPIO 94 42#define OMAP3_PANDORA_TS_GPIO 94
@@ -118,7 +119,7 @@ static int __init omap3pandora_i2c_init(void)
118 119
119static void __init omap3pandora_init_irq(void) 120static void __init omap3pandora_init_irq(void)
120{ 121{
121 omap2_init_common_hw(NULL); 122 omap2_init_common_hw(mt46h32m32lf6_sdrc_params);
122 omap_init_irq(); 123 omap_init_irq();
123 omap_gpio_init(); 124 omap_gpio_init();
124} 125}
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index b1f23bea863f..c7443ff98ee2 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -45,6 +45,7 @@
45#include <mach/nand.h> 45#include <mach/nand.h>
46#include <mach/usb.h> 46#include <mach/usb.h>
47 47
48#include "sdram-micron-mt46h32m32lf-6.h"
48#include "mmc-twl4030.h" 49#include "mmc-twl4030.h"
49 50
50#define OVERO_GPIO_BT_XGATE 15 51#define OVERO_GPIO_BT_XGATE 15
@@ -303,7 +304,7 @@ static int __init overo_i2c_init(void)
303 304
304static void __init overo_init_irq(void) 305static void __init overo_init_irq(void)
305{ 306{
306 omap2_init_common_hw(NULL); 307 omap2_init_common_hw(mt46h32m32lf6_sdrc_params);
307 omap_init_irq(); 308 omap_init_irq();
308 omap_gpio_init(); 309 omap_gpio_init();
309} 310}
diff --git a/arch/arm/mach-omap2/sdram-micron-mt46h32m32lf-6.h b/arch/arm/mach-omap2/sdram-micron-mt46h32m32lf-6.h
new file mode 100644
index 000000000000..02e1c2d4705f
--- /dev/null
+++ b/arch/arm/mach-omap2/sdram-micron-mt46h32m32lf-6.h
@@ -0,0 +1,55 @@
1/*
2 * SDRC register values for the Micron MT46H32M32LF-6
3 *
4 * Copyright (C) 2008 Texas Instruments, Inc.
5 * Copyright (C) 2008-2009 Nokia Corporation
6 *
7 * Paul Walmsley
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12 */
13
14#ifndef ARCH_ARM_MACH_OMAP2_SDRAM_MICRON_MT46H32M32LF
15#define ARCH_ARM_MACH_OMAP2_SDRAM_MICRON_MT46H32M32LF
16
17#include <mach/sdrc.h>
18
19/* Micron MT46H32M32LF-6 */
20/* XXX Using ARE = 0x1 (no autorefresh burst) -- can this be changed? */
21static struct omap_sdrc_params mt46h32m32lf6_sdrc_params[] = {
22 [0] = {
23 .rate = 166000000,
24 .actim_ctrla = 0x9a9db4c6,
25 .actim_ctrlb = 0x00011217,
26 .rfr_ctrl = 0x0004dc01,
27 .mr = 0x00000032,
28 },
29 [1] = {
30 .rate = 165941176,
31 .actim_ctrla = 0x9a9db4c6,
32 .actim_ctrlb = 0x00011217,
33 .rfr_ctrl = 0x0004dc01,
34 .mr = 0x00000032,
35 },
36 [2] = {
37 .rate = 83000000,
38 .actim_ctrla = 0x51512283,
39 .actim_ctrlb = 0x0001120c,
40 .rfr_ctrl = 0x00025501,
41 .mr = 0x00000032,
42 },
43 [3] = {
44 .rate = 82970588,
45 .actim_ctrla = 0x51512283,
46 .actim_ctrlb = 0x0001120c,
47 .rfr_ctrl = 0x00025501,
48 .mr = 0x00000032,
49 },
50 [4] = {
51 .rate = 0
52 },
53};
54
55#endif