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