1
0
Fork 0

input: TWL4030 input support for power button, USB and charger

This adds support for detecting a few inputs exported by the TWL4030.
Currently-supported inputs are the power button, USB and charger presence.
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
utp
Paul Kocialkowski 2015-07-20 15:17:08 +02:00 committed by Tom Rini
parent 6dc443e6d7
commit 7d5ac91832
3 changed files with 64 additions and 0 deletions

View File

@ -7,6 +7,7 @@
obj-$(CONFIG_I8042_KBD) += i8042.o
obj-$(CONFIG_TEGRA_KEYBOARD) += tegra-kbc.o
obj-$(CONFIG_TWL4030_INPUT) += twl4030.o
obj-$(CONFIG_CROS_EC_KEYB) += cros_ec_keyb.o
ifdef CONFIG_PS2KBD
obj-y += keyboard.o pc_keyb.o

View File

@ -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;
}

View File

@ -208,6 +208,12 @@
#define TWL4030_PM_MASTER_SW_EVENTS_DEVSLP (1 << 1)
#define TWL4030_PM_MASTER_SW_EVENTS_DEVOFF (1 << 0)
/* HW conditions */
#define TWL4030_PM_MASTER_STS_HW_CONDITIONS_PWON (1 << 0)
#define TWL4030_PM_MASTER_STS_HW_CONDITIONS_CHG (1 << 1)
#define TWL4030_PM_MASTER_STS_HW_CONDITIONS_USB (1 << 2)
#define TWL4030_PM_MASTER_STS_HW_CONDITIONS_VBUS (1 << 7)
/* Power transition */
#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_PWON (1 << 0)
#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_CHG (1 << 1)
@ -669,6 +675,14 @@ void twl4030_power_init(void);
/* For initializing mmc power */
void twl4030_power_mmc_init(int dev_index);
/*
* Input
*/
int twl4030_input_power_button(void);
int twl4030_input_charger(void);
int twl4030_input_usb(void);
/*
* LED
*/