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