xref: /openbmc/u-boot/drivers/input/twl6030.c (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
2461484c2SPaul Kocialkowski /*
3461484c2SPaul Kocialkowski  * TWL6030 input
4461484c2SPaul Kocialkowski  *
5461484c2SPaul Kocialkowski  * Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr>
6461484c2SPaul Kocialkowski  */
7461484c2SPaul Kocialkowski 
8461484c2SPaul Kocialkowski #include <twl6030.h>
9461484c2SPaul Kocialkowski 
twl6030_input_power_button(void)10461484c2SPaul Kocialkowski int twl6030_input_power_button(void)
11461484c2SPaul Kocialkowski {
12461484c2SPaul Kocialkowski 	u8 value;
13461484c2SPaul Kocialkowski 
14461484c2SPaul Kocialkowski 	twl6030_i2c_read_u8(TWL6030_CHIP_PM, TWL6030_STS_HW_CONDITIONS, &value);
15461484c2SPaul Kocialkowski 
16461484c2SPaul Kocialkowski 	/* Power button is active low. */
17461484c2SPaul Kocialkowski 	if (value & TWL6030_STS_HW_CONDITIONS_PWRON)
18461484c2SPaul Kocialkowski 		return 0;
19461484c2SPaul Kocialkowski 
20461484c2SPaul Kocialkowski 	return 1;
21461484c2SPaul Kocialkowski }
22461484c2SPaul Kocialkowski 
twl6030_input_charger(void)23461484c2SPaul Kocialkowski int twl6030_input_charger(void)
24461484c2SPaul Kocialkowski {
25461484c2SPaul Kocialkowski 	u8 value;
26461484c2SPaul Kocialkowski 
27461484c2SPaul Kocialkowski 	twl6030_i2c_read_u8(TWL6030_CHIP_CHARGER, TWL6030_CONTROLLER_STAT1,
28461484c2SPaul Kocialkowski 		&value);
29461484c2SPaul Kocialkowski 
30461484c2SPaul Kocialkowski 	if (value & TWL6030_CONTROLLER_STAT1_VAC_DET)
31461484c2SPaul Kocialkowski 		return 1;
32461484c2SPaul Kocialkowski 
33461484c2SPaul Kocialkowski 	return 0;
34461484c2SPaul Kocialkowski }
35461484c2SPaul Kocialkowski 
twl6030_input_usb(void)36461484c2SPaul Kocialkowski int twl6030_input_usb(void)
37461484c2SPaul Kocialkowski {
38461484c2SPaul Kocialkowski 	u8 value;
39461484c2SPaul Kocialkowski 
40461484c2SPaul Kocialkowski 	twl6030_i2c_read_u8(TWL6030_CHIP_CHARGER, TWL6030_CONTROLLER_STAT1,
41461484c2SPaul Kocialkowski 		&value);
42461484c2SPaul Kocialkowski 
43461484c2SPaul Kocialkowski 	if (value & TWL6030_CONTROLLER_STAT1_VBUS_DET)
44461484c2SPaul Kocialkowski 		return 1;
45461484c2SPaul Kocialkowski 
46461484c2SPaul Kocialkowski 	return 0;
47461484c2SPaul Kocialkowski }
48