|  | /* | 
|  | * 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__ */ |