123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /*
- * Register definitions for SDRAM Controller
- */
- #ifndef __ASM_AVR32_HSDRAMC1_H__
- #define __ASM_AVR32_HSDRAMC1_H__
- /* HSDRAMC1 register offsets */
- #define HSDRAMC1_MR 0x0000
- #define HSDRAMC1_TR 0x0004
- #define HSDRAMC1_CR 0x0008
- #define HSDRAMC1_HSR 0x000c
- #define HSDRAMC1_LPR 0x0010
- #define HSDRAMC1_IER 0x0014
- #define HSDRAMC1_IDR 0x0018
- #define HSDRAMC1_IMR 0x001c
- #define HSDRAMC1_ISR 0x0020
- #define HSDRAMC1_MDR 0x0024
- #define HSDRAMC1_VERSION 0x00fc
- /* Bitfields in MR */
- #define HSDRAMC1_MODE_OFFSET 0
- #define HSDRAMC1_MODE_SIZE 3
- /* Bitfields in TR */
- #define HSDRAMC1_COUNT_OFFSET 0
- #define HSDRAMC1_COUNT_SIZE 12
- /* Bitfields in CR */
- #define HSDRAMC1_NC_OFFSET 0
- #define HSDRAMC1_NC_SIZE 2
- #define HSDRAMC1_NR_OFFSET 2
- #define HSDRAMC1_NR_SIZE 2
- #define HSDRAMC1_NB_OFFSET 4
- #define HSDRAMC1_NB_SIZE 1
- #define HSDRAMC1_CAS_OFFSET 5
- #define HSDRAMC1_CAS_SIZE 2
- #define HSDRAMC1_DBW_OFFSET 7
- #define HSDRAMC1_DBW_SIZE 1
- #define HSDRAMC1_TWR_OFFSET 8
- #define HSDRAMC1_TWR_SIZE 4
- #define HSDRAMC1_TRC_OFFSET 12
- #define HSDRAMC1_TRC_SIZE 4
- #define HSDRAMC1_TRP_OFFSET 16
- #define HSDRAMC1_TRP_SIZE 4
- #define HSDRAMC1_TRCD_OFFSET 20
- #define HSDRAMC1_TRCD_SIZE 4
- #define HSDRAMC1_TRAS_OFFSET 24
- #define HSDRAMC1_TRAS_SIZE 4
- #define HSDRAMC1_TXSR_OFFSET 28
- #define HSDRAMC1_TXSR_SIZE 4
- /* Bitfields in HSR */
- #define HSDRAMC1_DA_OFFSET 0
- #define HSDRAMC1_DA_SIZE 1
- /* Bitfields in LPR */
- #define HSDRAMC1_LPCB_OFFSET 0
- #define HSDRAMC1_LPCB_SIZE 2
- #define HSDRAMC1_PASR_OFFSET 4
- #define HSDRAMC1_PASR_SIZE 3
- #define HSDRAMC1_TCSR_OFFSET 8
- #define HSDRAMC1_TCSR_SIZE 2
- #define HSDRAMC1_DS_OFFSET 10
- #define HSDRAMC1_DS_SIZE 2
- #define HSDRAMC1_TIMEOUT_OFFSET 12
- #define HSDRAMC1_TIMEOUT_SIZE 2
- /* Bitfields in IDR */
- #define HSDRAMC1_RES_OFFSET 0
- #define HSDRAMC1_RES_SIZE 1
- /* Bitfields in MDR */
- #define HSDRAMC1_MD_OFFSET 0
- #define HSDRAMC1_MD_SIZE 2
- /* Bitfields in VERSION */
- #define HSDRAMC1_VERSION_OFFSET 0
- #define HSDRAMC1_VERSION_SIZE 12
- #define HSDRAMC1_MFN_OFFSET 16
- #define HSDRAMC1_MFN_SIZE 3
- /* Constants for MODE */
- #define HSDRAMC1_MODE_NORMAL 0
- #define HSDRAMC1_MODE_NOP 1
- #define HSDRAMC1_MODE_BANKS_PRECHARGE 2
- #define HSDRAMC1_MODE_LOAD_MODE 3
- #define HSDRAMC1_MODE_AUTO_REFRESH 4
- #define HSDRAMC1_MODE_EXT_LOAD_MODE 5
- #define HSDRAMC1_MODE_POWER_DOWN 6
- /* Constants for NC */
- #define HSDRAMC1_NC_8_COLUMN_BITS 0
- #define HSDRAMC1_NC_9_COLUMN_BITS 1
- #define HSDRAMC1_NC_10_COLUMN_BITS 2
- #define HSDRAMC1_NC_11_COLUMN_BITS 3
- /* Constants for NR */
- #define HSDRAMC1_NR_11_ROW_BITS 0
- #define HSDRAMC1_NR_12_ROW_BITS 1
- #define HSDRAMC1_NR_13_ROW_BITS 2
- /* Constants for NB */
- #define HSDRAMC1_NB_TWO_BANKS 0
- #define HSDRAMC1_NB_FOUR_BANKS 1
- /* Constants for CAS */
- #define HSDRAMC1_CAS_ONE_CYCLE 1
- #define HSDRAMC1_CAS_TWO_CYCLES 2
- /* Constants for DBW */
- #define HSDRAMC1_DBW_32_BITS 0
- #define HSDRAMC1_DBW_16_BITS 1
- /* Constants for TIMEOUT */
- #define HSDRAMC1_TIMEOUT_AFTER_END 0
- #define HSDRAMC1_TIMEOUT_64_CYC_AFTER_END 1
- #define HSDRAMC1_TIMEOUT_128_CYC_AFTER_END 2
- /* Constants for MD */
- #define HSDRAMC1_MD_SDRAM 0
- #define HSDRAMC1_MD_LOW_POWER_SDRAM 1
- /* Bit manipulation macros */
- #define HSDRAMC1_BIT(name) \
- (1 << HSDRAMC1_##name##_OFFSET)
- #define HSDRAMC1_BF(name,value) \
- (((value) & ((1 << HSDRAMC1_##name##_SIZE) - 1)) \
- << HSDRAMC1_##name##_OFFSET)
- #define HSDRAMC1_BFEXT(name,value) \
- (((value) >> HSDRAMC1_##name##_OFFSET) \
- & ((1 << HSDRAMC1_##name##_SIZE) - 1))
- #define HSDRAMC1_BFINS(name,value,old) \
- (((old) & ~(((1 << HSDRAMC1_##name##_SIZE) - 1) \
- << HSDRAMC1_##name##_OFFSET)) \
- | HSDRAMC1_BF(name,value))
- /* Register access macros */
- #define hsdramc1_readl(reg) \
- readl((void *)HSDRAMC_BASE + HSDRAMC1_##reg)
- #define hsdramc1_writel(reg,value) \
- writel((value), (void *)HSDRAMC_BASE + HSDRAMC1_##reg)
- #endif /* __ASM_AVR32_HSDRAMC1_H__ */
|