1*7d5ac918SPaul Kocialkowski /* 2*7d5ac918SPaul Kocialkowski * TWL4030 input 3*7d5ac918SPaul Kocialkowski * 4*7d5ac918SPaul Kocialkowski * Copyright (C) 2015 Paul Kocialkowski <contact@paulk.fr> 5*7d5ac918SPaul Kocialkowski * 6*7d5ac918SPaul Kocialkowski * SPDX-License-Identifier: GPL-2.0+ 7*7d5ac918SPaul Kocialkowski */ 8*7d5ac918SPaul Kocialkowski 9*7d5ac918SPaul Kocialkowski #include <twl4030.h> 10*7d5ac918SPaul Kocialkowski 11*7d5ac918SPaul Kocialkowski int twl4030_input_power_button(void) 12*7d5ac918SPaul Kocialkowski { 13*7d5ac918SPaul Kocialkowski u8 data; 14*7d5ac918SPaul Kocialkowski 15*7d5ac918SPaul Kocialkowski twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, 16*7d5ac918SPaul Kocialkowski TWL4030_PM_MASTER_STS_HW_CONDITIONS, &data); 17*7d5ac918SPaul Kocialkowski 18*7d5ac918SPaul Kocialkowski if (data & TWL4030_PM_MASTER_STS_HW_CONDITIONS_PWON) 19*7d5ac918SPaul Kocialkowski return 1; 20*7d5ac918SPaul Kocialkowski 21*7d5ac918SPaul Kocialkowski return 0; 22*7d5ac918SPaul Kocialkowski } 23*7d5ac918SPaul Kocialkowski 24*7d5ac918SPaul Kocialkowski int twl4030_input_charger(void) 25*7d5ac918SPaul Kocialkowski { 26*7d5ac918SPaul Kocialkowski u8 data; 27*7d5ac918SPaul Kocialkowski 28*7d5ac918SPaul Kocialkowski twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, 29*7d5ac918SPaul Kocialkowski TWL4030_PM_MASTER_STS_HW_CONDITIONS, &data); 30*7d5ac918SPaul Kocialkowski 31*7d5ac918SPaul Kocialkowski if (data & TWL4030_PM_MASTER_STS_HW_CONDITIONS_CHG) 32*7d5ac918SPaul Kocialkowski return 1; 33*7d5ac918SPaul Kocialkowski 34*7d5ac918SPaul Kocialkowski return 0; 35*7d5ac918SPaul Kocialkowski } 36*7d5ac918SPaul Kocialkowski 37*7d5ac918SPaul Kocialkowski int twl4030_input_usb(void) 38*7d5ac918SPaul Kocialkowski { 39*7d5ac918SPaul Kocialkowski u8 data; 40*7d5ac918SPaul Kocialkowski 41*7d5ac918SPaul Kocialkowski twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, 42*7d5ac918SPaul Kocialkowski TWL4030_PM_MASTER_STS_HW_CONDITIONS, &data); 43*7d5ac918SPaul Kocialkowski 44*7d5ac918SPaul Kocialkowski if (data & TWL4030_PM_MASTER_STS_HW_CONDITIONS_USB || 45*7d5ac918SPaul Kocialkowski data & TWL4030_PM_MASTER_STS_HW_CONDITIONS_VBUS) 46*7d5ac918SPaul Kocialkowski return 1; 47*7d5ac918SPaul Kocialkowski 48*7d5ac918SPaul Kocialkowski return 0; 49*7d5ac918SPaul Kocialkowski } 50