w1_ds2760.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * 1-Wire implementation for the ds2760 chip
  3. *
  4. * Copyright © 2004-2005, Szabolcs Gyurko <szabolcs.gyurko@tlt.hu>
  5. *
  6. * Use consistent with the GNU GPL is permitted,
  7. * provided that this copyright notice is
  8. * preserved in its entirety in all copies and derived works.
  9. *
  10. */
  11. #ifndef __w1_ds2760_h__
  12. #define __w1_ds2760_h__
  13. /* Known commands to the DS2760 chip */
  14. #define W1_DS2760_SWAP 0xAA
  15. #define W1_DS2760_READ_DATA 0x69
  16. #define W1_DS2760_WRITE_DATA 0x6C
  17. #define W1_DS2760_COPY_DATA 0x48
  18. #define W1_DS2760_RECALL_DATA 0xB8
  19. #define W1_DS2760_LOCK 0x6A
  20. /* Number of valid register addresses */
  21. #define DS2760_DATA_SIZE 0x40
  22. #define DS2760_PROTECTION_REG 0x00
  23. #define DS2760_STATUS_REG 0x01
  24. #define DS2760_STATUS_IE (1 << 2)
  25. #define DS2760_STATUS_SWEN (1 << 3)
  26. #define DS2760_STATUS_RNAOP (1 << 4)
  27. #define DS2760_STATUS_PMOD (1 << 5)
  28. #define DS2760_EEPROM_REG 0x07
  29. #define DS2760_SPECIAL_FEATURE_REG 0x08
  30. #define DS2760_VOLTAGE_MSB 0x0c
  31. #define DS2760_VOLTAGE_LSB 0x0d
  32. #define DS2760_CURRENT_MSB 0x0e
  33. #define DS2760_CURRENT_LSB 0x0f
  34. #define DS2760_CURRENT_ACCUM_MSB 0x10
  35. #define DS2760_CURRENT_ACCUM_LSB 0x11
  36. #define DS2760_TEMP_MSB 0x18
  37. #define DS2760_TEMP_LSB 0x19
  38. #define DS2760_EEPROM_BLOCK0 0x20
  39. #define DS2760_ACTIVE_FULL 0x20
  40. #define DS2760_EEPROM_BLOCK1 0x30
  41. #define DS2760_STATUS_WRITE_REG 0x31
  42. #define DS2760_RATED_CAPACITY 0x32
  43. #define DS2760_CURRENT_OFFSET_BIAS 0x33
  44. #define DS2760_ACTIVE_EMPTY 0x3b
  45. extern int w1_ds2760_read(struct device *dev, char *buf, int addr,
  46. size_t count);
  47. extern int w1_ds2760_write(struct device *dev, char *buf, int addr,
  48. size_t count);
  49. extern int w1_ds2760_store_eeprom(struct device *dev, int addr);
  50. extern int w1_ds2760_recall_eeprom(struct device *dev, int addr);
  51. #endif /* !__w1_ds2760_h__ */