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