diff options
Diffstat (limited to 'drivers/input/twl4030.c')
-rw-r--r-- | drivers/input/twl4030.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/drivers/input/twl4030.c b/drivers/input/twl4030.c new file mode 100644 index 0000000000..a5ded35d92 --- /dev/null +++ b/drivers/input/twl4030.c @@ -0,0 +1,49 @@ +/* + * TWL4030 input + * + * Copyright (C) 2015 Paul Kocialkowski <contact@paulk.fr> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <twl4030.h> + +int twl4030_input_power_button(void) +{ + u8 data; + + twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, + TWL4030_PM_MASTER_STS_HW_CONDITIONS, &data); + + if (data & TWL4030_PM_MASTER_STS_HW_CONDITIONS_PWON) + return 1; + + return 0; +} + +int twl4030_input_charger(void) +{ + u8 data; + + twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, + TWL4030_PM_MASTER_STS_HW_CONDITIONS, &data); + + if (data & TWL4030_PM_MASTER_STS_HW_CONDITIONS_CHG) + return 1; + + return 0; +} + +int twl4030_input_usb(void) +{ + u8 data; + + twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, + TWL4030_PM_MASTER_STS_HW_CONDITIONS, &data); + + if (data & TWL4030_PM_MASTER_STS_HW_CONDITIONS_USB || + data & TWL4030_PM_MASTER_STS_HW_CONDITIONS_VBUS) + return 1; + + return 0; +} |