mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 03:58:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* By Thomas.Lange@Corelatus.com 001025
 | |
|    $Revision: 1.6 $
 | |
| 
 | |
|    Definitions for EEPROM/VOLT METER  DS2438
 | |
|    Copyright (C) 2000-2001 Corelatus AB */
 | |
| 
 | |
| #ifndef INCeedevh
 | |
| #define INCeedevh
 | |
| 
 | |
| #define E_DEBUG(fmt,args...) if( Debug ) printk(KERN_DEBUG"EE: " fmt, ##args)
 | |
| 
 | |
| #define PORT_B_PAR ((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbpar
 | |
| #define PORT_B_ODR ((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbodr
 | |
| #define PORT_B_DIR ((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbdir
 | |
| #define PORT_B_DAT ((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbdat
 | |
| 
 | |
| #define SET_PORT_B_INPUT(Mask)  PORT_B_DIR &= ~(Mask)
 | |
| #define SET_PORT_B_OUTPUT(Mask) PORT_B_DIR |= Mask
 | |
| 
 | |
| #define WRITE_PORT_B(Mask,Value) { \
 | |
| 			if (Value) PORT_B_DAT |= Mask; \
 | |
| 			else PORT_B_DAT &= ~(Mask); \
 | |
| 		}
 | |
| #define WRITE_PORT(Value) WRITE_PORT_B(PB_EEPROM,Value)
 | |
| 
 | |
| #define READ_PORT (PORT_B_DAT&PB_EEPROM)
 | |
| 
 | |
| /* 64 bytes chip */
 | |
| #define EE_CHIP_SIZE 64
 | |
| 
 | |
| /* We use this resistor for measuring the current drain on 3.3V */
 | |
| #define CURRENT_RESISTOR 0.022
 | |
| 
 | |
| /* microsecs
 | |
|    Pull line down at least this long for reset pulse */
 | |
| #define RESET_LOW_TIME    490
 | |
| 
 | |
| /* Read presence pulse after we release reset pulse */
 | |
| #define PRESENCE_TIMEOUT  100
 | |
| #define PRESENCE_LOW_TIME 200
 | |
| 
 | |
| #define WRITE_0_LOW 80
 | |
| #define WRITE_1_LOW 2
 | |
| #define TOTAL_WRITE_LOW 80
 | |
| 
 | |
| #define READ_LOW        2
 | |
| #define READ_TIMEOUT   10
 | |
| #define TOTAL_READ_LOW 80
 | |
| 
 | |
| /*** Rom function commands ***/
 | |
| #define READ_ROM   0x33
 | |
| #define MATCH_ROM  0x55
 | |
| #define SKIP_ROM   0xCC
 | |
| #define SEARCH_ROM 0xF0
 | |
| 
 | |
| 
 | |
| /*** Memory_command_function ***/
 | |
| #define WRITE_SCRATCHPAD 0x4E
 | |
| #define READ_SCRATCHPAD  0xBE
 | |
| #define COPY_SCRATCHPAD  0x48
 | |
| #define RECALL_MEMORY    0xB8
 | |
| #define CONVERT_TEMP     0x44
 | |
| #define CONVERT_VOLTAGE  0xB4
 | |
| 
 | |
| /* Chip is divided in 8 pages, 8 bytes each */
 | |
| 
 | |
| #define EE_PAGE_SIZE 8
 | |
| 
 | |
| /* All chip data we want are in page 0 */
 | |
| 
 | |
| /* Bytes in page 0 */
 | |
| #define EE_P0_STATUS   0
 | |
| #define EE_P0_TEMP_LSB 1
 | |
| #define EE_P0_TEMP_MSB 2
 | |
| #define EE_P0_VOLT_LSB 3
 | |
| #define EE_P0_VOLT_MSB 4
 | |
| #define EE_P0_CURRENT_LSB 5
 | |
| #define EE_P0_CURRENT_MSB 6
 | |
| 
 | |
| 
 | |
| /* 40 byte user data is located at page 3-7 */
 | |
| #define EE_USER_PAGE_0 3
 | |
| #define USER_PAGES 5
 | |
| 
 | |
| #endif /* INCeedevh */
 |