summaryrefslogtreecommitdiff
path: root/include/asm-avr32/sdram.h
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2008-06-03 00:19:57 +0200
committerWolfgang Denk <wd@denx.de>2008-06-03 00:19:57 +0200
commit7a68389a231ac061ba2ffd628f86e15ed0545a7b (patch)
tree723fd35290b988810be6d417c21fa1949f25aae8 /include/asm-avr32/sdram.h
parent7feb4d38ff1fdf8877f39447001ff9f6e93fa6bc (diff)
parenta8092c021d27f27f4b323b7d49979ca01b3fc19d (diff)
downloadu-boot-imx-7a68389a231ac061ba2ffd628f86e15ed0545a7b.zip
u-boot-imx-7a68389a231ac061ba2ffd628f86e15ed0545a7b.tar.gz
u-boot-imx-7a68389a231ac061ba2ffd628f86e15ed0545a7b.tar.bz2
Merge remote branch 'u-boot-avr32/master'
Diffstat (limited to 'include/asm-avr32/sdram.h')
-rw-r--r--include/asm-avr32/sdram.h27
1 files changed, 22 insertions, 5 deletions
diff --git a/include/asm-avr32/sdram.h b/include/asm-avr32/sdram.h
index 833af6e..7bdefc1 100644
--- a/include/asm-avr32/sdram.h
+++ b/include/asm-avr32/sdram.h
@@ -22,15 +22,32 @@
#ifndef __ASM_AVR32_SDRAM_H
#define __ASM_AVR32_SDRAM_H
-struct sdram_info {
- unsigned long phys_addr;
- unsigned int row_bits, col_bits, bank_bits;
- unsigned int cas, twr, trc, trp, trcd, tras, txsr;
+struct sdram_config {
+ /* Number of data bits. */
+ enum {
+ SDRAM_DATA_16BIT,
+ SDRAM_DATA_32BIT,
+ } data_bits;
+
+ /* Number of address bits */
+ uint8_t row_bits, col_bits, bank_bits;
+
+ /* SDRAM timings in cycles */
+ uint8_t cas, twr, trc, trp, trcd, tras, txsr;
/* SDRAM refresh period in cycles */
unsigned long refresh_period;
};
-extern unsigned long sdram_init(const struct sdram_info *info);
+/*
+ * Attempt to initialize the SDRAM controller using the specified
+ * parameters. Return the expected size of the memory area based on
+ * the number of address and data bits.
+ *
+ * The caller should verify that the configuration is correct by
+ * running a memory test, e.g. get_ram_size().
+ */
+extern unsigned long sdram_init(void *sdram_base,
+ const struct sdram_config *config);
#endif /* __ASM_AVR32_SDRAM_H */