twl6030.c 778 B

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