xref: /rk3399_rockchip-uboot/drivers/input/twl6030.c (revision 461484c27e1d72980eae4826eb9788a156cdf00e)
1*461484c2SPaul Kocialkowski /*
2*461484c2SPaul Kocialkowski  * TWL6030 input
3*461484c2SPaul Kocialkowski  *
4*461484c2SPaul Kocialkowski  * Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr>
5*461484c2SPaul Kocialkowski  *
6*461484c2SPaul Kocialkowski  * SPDX-License-Identifier:	GPL-2.0+
7*461484c2SPaul Kocialkowski  */
8*461484c2SPaul Kocialkowski 
9*461484c2SPaul Kocialkowski #include <twl6030.h>
10*461484c2SPaul Kocialkowski 
twl6030_input_power_button(void)11*461484c2SPaul Kocialkowski int twl6030_input_power_button(void)
12*461484c2SPaul Kocialkowski {
13*461484c2SPaul Kocialkowski 	u8 value;
14*461484c2SPaul Kocialkowski 
15*461484c2SPaul Kocialkowski 	twl6030_i2c_read_u8(TWL6030_CHIP_PM, TWL6030_STS_HW_CONDITIONS, &value);
16*461484c2SPaul Kocialkowski 
17*461484c2SPaul Kocialkowski 	/* Power button is active low. */
18*461484c2SPaul Kocialkowski 	if (value & TWL6030_STS_HW_CONDITIONS_PWRON)
19*461484c2SPaul Kocialkowski 		return 0;
20*461484c2SPaul Kocialkowski 
21*461484c2SPaul Kocialkowski 	return 1;
22*461484c2SPaul Kocialkowski }
23*461484c2SPaul Kocialkowski 
twl6030_input_charger(void)24*461484c2SPaul Kocialkowski int twl6030_input_charger(void)
25*461484c2SPaul Kocialkowski {
26*461484c2SPaul Kocialkowski 	u8 value;
27*461484c2SPaul Kocialkowski 
28*461484c2SPaul Kocialkowski 	twl6030_i2c_read_u8(TWL6030_CHIP_CHARGER, TWL6030_CONTROLLER_STAT1,
29*461484c2SPaul Kocialkowski 		&value);
30*461484c2SPaul Kocialkowski 
31*461484c2SPaul Kocialkowski 	if (value & TWL6030_CONTROLLER_STAT1_VAC_DET)
32*461484c2SPaul Kocialkowski 		return 1;
33*461484c2SPaul Kocialkowski 
34*461484c2SPaul Kocialkowski 	return 0;
35*461484c2SPaul Kocialkowski }
36*461484c2SPaul Kocialkowski 
twl6030_input_usb(void)37*461484c2SPaul Kocialkowski int twl6030_input_usb(void)
38*461484c2SPaul Kocialkowski {
39*461484c2SPaul Kocialkowski 	u8 value;
40*461484c2SPaul Kocialkowski 
41*461484c2SPaul Kocialkowski 	twl6030_i2c_read_u8(TWL6030_CHIP_CHARGER, TWL6030_CONTROLLER_STAT1,
42*461484c2SPaul Kocialkowski 		&value);
43*461484c2SPaul Kocialkowski 
44*461484c2SPaul Kocialkowski 	if (value & TWL6030_CONTROLLER_STAT1_VBUS_DET)
45*461484c2SPaul Kocialkowski 		return 1;
46*461484c2SPaul Kocialkowski 
47*461484c2SPaul Kocialkowski 	return 0;
48*461484c2SPaul Kocialkowski }
49