]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/asm-avr32/sdram.h
imported Ka-Ro specific additions to U-Boot 2009.08 for TX28
[karo-tx-uboot.git] / include / asm-avr32 / sdram.h
index 5057eefa8ad66e9c651f1dd690fceff7f0ad7197..762acfa078f78092d0fb2527563348c7d126aef0 100755 (executable)
 #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 = 16,
+               SDRAM_DATA_32BIT = 32,
+       } 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 */