qg-sdam.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
  4. * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  5. */
  6. #ifndef __QG_SDAM_H__
  7. #define __QG_SDAM_H__
  8. #define SDAM_TYPE 0x2E
  9. #define SDAM_MIN_OFFSET 0x45
  10. #define SDAM_MAX_OFFSET 0xB3
  11. enum qg_sdam_param {
  12. SDAM_VALID,
  13. SDAM_SOC,
  14. SDAM_TEMP,
  15. SDAM_RBAT_MOHM,
  16. SDAM_OCV_UV,
  17. SDAM_IBAT_UA,
  18. SDAM_TIME_SEC,
  19. SDAM_PON_OCV_UV,
  20. SDAM_ESR_CHARGE_DELTA,
  21. SDAM_ESR_DISCHARGE_DELTA,
  22. SDAM_ESR_CHARGE_SF,
  23. SDAM_ESR_DISCHARGE_SF,
  24. SDAM_MAGIC,
  25. SDAM_BATT_AGE_LEVEL,
  26. SDAM_FLASH_OCV,
  27. SDAM_MAX,
  28. };
  29. struct qg_sdam {
  30. struct regmap *regmap;
  31. u16 sdam_base;
  32. };
  33. int qg_sdam_init(struct device *dev);
  34. int qg_sdam_write(u8 param, u32 data);
  35. int qg_sdam_read(u8 param, u32 *data);
  36. int qg_sdam_write_all(u32 *sdam_data);
  37. int qg_sdam_read_all(u32 *sdam_data);
  38. int qg_sdam_multibyte_write(u32 offset, u8 *sdam_data, u32 length);
  39. int qg_sdam_multibyte_read(u32 offset, u8 *sdam_data, u32 length);
  40. int qg_sdam_clear(void);
  41. #endif