blob: 6822fc02fb8525e5e9127d7acd59f3abb714bd8a [file] [log] [blame]
/* 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__ */