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