X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fasm-avr32%2Fsdram.h;h=762acfa078f78092d0fb2527563348c7d126aef0;hb=bc0d3296f1780b50e6b9630aee5eb368f2afb6cb;hp=5057eefa8ad66e9c651f1dd690fceff7f0ad7197;hpb=0ab292cbc1add30abb8767ae64ebfaac7504d1f6;p=oweals%2Fu-boot.git diff --git a/include/asm-avr32/sdram.h b/include/asm-avr32/sdram.h index 5057eefa8a..762acfa078 100644 --- a/include/asm-avr32/sdram.h +++ b/include/asm-avr32/sdram.h @@ -22,12 +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 = 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 */