| /* drivers/w1/slaves/w1_ds2784.h |
| * |
| * Copyright (C) 2009 HTC Corporation |
| * Author: Justin Lin <Justin_Lin@htc.com> |
| * |
| * This software is licensed under the terms of the GNU General Public |
| * License version 2, as published by the Free Software Foundation, and |
| * may be copied, distributed, and modified under those terms. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| */ |
| |
| #ifndef __w1_ds2784_h__ |
| #define __w1_ds2784_h__ |
| |
| |
| /* Known commands to the DS2784 chip */ |
| #define W1_DS2784_SWAP 0xAA |
| #define W1_DS2784_READ_DATA 0x69 |
| #define W1_DS2784_WRITE_DATA 0x6C |
| #define W1_DS2784_COPY_DATA 0x48 |
| #define W1_DS2784_RECALL_DATA 0xB8 |
| #define W1_DS2784_LOCK 0x6A |
| |
| /* Number of valid register addresses */ |
| #define DS2784_DATA_SIZE 0x80 |
| |
| #define DS2784_EEPROM_BLOCK0 0x20 |
| #define DS2784_ACTIVE_FULL 0x20 |
| #define DS2784_EEPROM_BLOCK1 0x30 |
| #define DS2784_RATED_CAPACITY 0x32 |
| #define DS2784_CURRENT_OFFSET_BIAS 0x33 |
| #define DS2784_ACTIVE_EMPTY 0x3b |
| |
| /** |
| * The DS2482 registers - there are 3 registers that are addressed by a read |
| * pointer. The read pointer is set by the last command executed. |
| * |
| * To read the data, issue a register read for any address |
| */ |
| #define DS2482_CMD_RESET 0xF0 /* No param */ |
| #define DS2482_CMD_SET_READ_PTR 0xE1 /* Param: DS2482_PTR_CODE_xxx */ |
| #define DS2482_CMD_CHANNEL_SELECT 0xC3 |
| #define DS2482_CMD_WRITE_CONFIG 0xD2 /* Param: Config byte */ |
| #define DS2482_CMD_1WIRE_RESET 0xB4 /* Param: None */ |
| #define DS2482_CMD_1WIRE_SINGLE_BIT 0x87 /* Param: Bit byte (bit7) */ |
| #define DS2482_CMD_1WIRE_WRITE_BYTE 0xA5 /* Param: Data byte */ |
| #define DS2482_CMD_1WIRE_READ_BYTE 0x96 /* Param: None */ |
| /* Note to read the byte, Set the ReadPtr to Data then read (any addr) */ |
| #define DS2482_CMD_1WIRE_TRIPLET 0x78 /* Param: Dir byte (bit7) */ |
| |
| /* Values for DS2482_CMD_SET_READ_PTR */ |
| #define DS2482_PTR_CODE_STATUS 0xF0 |
| #define DS2482_PTR_CODE_DATA 0xE1 |
| #define DS2482_PTR_CODE_CHANNEL 0xD2 /* DS2482-800 only */ |
| #define DS2482_PTR_CODE_CONFIG 0xC3 |
| |
| /* |
| DS2784 1-wire slave memory map definitions |
| */ |
| #define DS2784_REG_PORT 0x00 |
| #define DS2784_REG_STS 0x01 |
| #define DS2784_REG_RAAC_MSB 0x02 |
| #define DS2784_REG_RAAC_LSB 0x03 |
| #define DS2784_REG_RSAC_MSB 0x04 |
| #define DS2784_REG_RSAC_LSB 0x05 |
| #define DS2784_REG_RARC 0x06 |
| #define DS2784_REG_RSRC 0x07 |
| #define DS2784_REG_AVG_CURR_MSB 0x08 |
| #define DS2784_REG_AVG_CURR_LSB 0x09 |
| #define DS2784_REG_TEMP_MSB 0x0A |
| #define DS2784_REG_TEMP_LSB 0x0B |
| #define DS2784_REG_VOLT_MSB 0x0C |
| #define DS2784_REG_VOLT_LSB 0x0D |
| #define DS2784_REG_CURR_MSB 0x0E |
| #define DS2784_REG_CURR_LSB 0x0F |
| #define DS2784_REG_ACCUMULATE_CURR_MSB 0x10 |
| #define DS2784_REG_ACCUMULATE_CURR_LSB 0x11 |
| #define DS2784_REG_ACCUMULATE_CURR_LSB1 0x12 |
| #define DS2784_REG_ACCUMULATE_CURR_LSB2 0x13 |
| #define DS2784_REG_AGE_SCALAR 0x14 |
| #define DS2784_REG_SPECIALL_FEATURE 0x15 |
| #define DS2784_REG_FULL_MSB 0x16 |
| #define DS2784_REG_FULL_LSB 0x17 |
| #define DS2784_REG_ACTIVE_EMPTY_MSB 0x18 |
| #define DS2784_REG_ACTIVE_EMPTY_LSB 0x19 |
| #define DS2784_REG_STBY_EMPTY_MSB 0x1A |
| #define DS2784_REG_STBY_EMPTY_LSB 0x1B |
| #define DS2784_REG_EEPROM 0x1F |
| #define DS2784_REG_MFG_GAIN_RSGAIN_MSB 0xB0 |
| #define DS2784_REG_MFG_GAIN_RSGAIN_LSB 0xB1 |
| |
| #define DS2784_REG_CTRL 0x60 |
| #define DS2784_REG_ACCUMULATE_BIAS 0x61 |
| #define DS2784_REG_AGE_CAPA_MSB 0x62 |
| #define DS2784_REG_AGE_CAPA_LSB 0x63 |
| #define DS2784_REG_CHARGE_VOLT 0x64 |
| #define DS2784_REG_MIN_CHARGE_CURR 0x65 |
| #define DS2784_REG_ACTIVE_EMPTY_VOLT 0x66 |
| #define DS2784_REG_ACTIVE_EMPTY_CURR 0x67 |
| #define DS2784_REG_ACTIVE_EMPTY_40 0x68 |
| #define DS2784_REG_RSNSP 0x69 |
| #define DS2784_REG_FULL_40_MSB 0x6A |
| #define DS2784_REG_FULL_40_LSB 0x6B |
| #define DS2784_REG_FULL_SEG_4_SLOPE 0x6C |
| #define DS2784_REG_FULL_SEG_3_SLOPE 0x6D |
| #define DS2784_REG_FULL_SEG_2_SLOPE 0x6E |
| #define DS2784_REG_FULL_SEG_1_SLOPE 0x6F |
| #define DS2784_REG_AE_SEG_4_SLOPE 0x70 |
| #define DS2784_REG_AE_SEG_3_SLOPE 0x71 |
| #define DS2784_REG_AE_SEG_2_SLOPE 0x72 |
| #define DS2784_REG_AE_SEG_1_SLOPE 0x73 |
| #define DS2784_REG_SE_SEG_4_SLOPE 0x74 |
| #define DS2784_REG_SE_SEG_3_SLOPE 0x75 |
| #define DS2784_REG_SE_SEG_2_SLOPE 0x76 |
| #define DS2784_REG_SE_SEG_1_SLOPE 0x77 |
| #define DS2784_REG_RSGAIN_MSB 0x78 |
| #define DS2784_REG_RSGAIN_LSB 0x79 |
| #define DS2784_REG_RSTC 0x7A |
| #define DS2784_REG_CURR_OFFSET_BIAS 0x7B |
| #define DS2784_REG_TBP34 0x7C |
| #define DS2784_REG_TBP23 0x7D |
| #define DS2784_REG_TBP12 0x7E |
| #define DS2784_REG_PROTECTOR_THRESHOLD 0x7F |
| |
| #define DS2784_REG_USER_EEPROM_20 0x20 |
| |
| #endif /* !__w1_ds2784__ */ |