twl6030.c 781 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * TWL6030 input
  3. *
  4. * Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr>
  5. *
  6. * SPDX-License-Identifier: GPL-2.0+
  7. */
  8. #include <twl6030.h>
  9. int twl6030_input_power_button(void)
  10. {
  11. u8 value;
  12. twl6030_i2c_read_u8(TWL6030_CHIP_PM, TWL6030_STS_HW_CONDITIONS, &value);
  13. /* Power button is active low. */
  14. if (value & TWL6030_STS_HW_CONDITIONS_PWRON)
  15. return 0;
  16. return 1;
  17. }
  18. int twl6030_input_charger(void)
  19. {
  20. u8 value;
  21. twl6030_i2c_read_u8(TWL6030_CHIP_CHARGER, TWL6030_CONTROLLER_STAT1,
  22. &value);
  23. if (value & TWL6030_CONTROLLER_STAT1_VAC_DET)
  24. return 1;
  25. return 0;
  26. }
  27. int twl6030_input_usb(void)
  28. {
  29. u8 value;
  30. twl6030_i2c_read_u8(TWL6030_CHIP_CHARGER, TWL6030_CONTROLLER_STAT1,
  31. &value);
  32. if (value & TWL6030_CONTROLLER_STAT1_VBUS_DET)
  33. return 1;
  34. return 0;
  35. }