summaryrefslogtreecommitdiffstats
path: root/include/linux/i2c
diff options
context:
space:
mode:
authorBrian Norris <briannorris@chromium.org>2017-02-09 18:03:57 -0800
committerJiri Kosina <jkosina@suse.cz>2017-03-06 13:48:44 +0100
commit572d3c6444979a6a49c6b464110563f578e8dece (patch)
treeedfa44f72e6d60a0b4ca84705e39f6a3b8dd9812 /include/linux/i2c
parentcb5cfd91a7ae5ae355e657e5ce4931836b7665eb (diff)
downloadlinux-572d3c6444979a6a49c6b464110563f578e8dece.tar.gz
linux-572d3c6444979a6a49c6b464110563f578e8dece.tar.bz2
linux-572d3c6444979a6a49c6b464110563f578e8dece.zip
HID: i2c-hid: support regulator power on/off
On some boards, we need to enable a regulator before using the HID, and it's also nice to save power in suspend by disabling it. Support an optional "vdd-supply" and a companion initialization delay. Signed-off-by: Brian Norris <briannorris@chromium.org> Signed-off-by: Caesar Wang <wxt@rock-chips.com> Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Jiri Kosina <jikos@kernel.org> Cc: linux-input@vger.kernel.org Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux/i2c')
-rw-r--r--include/linux/i2c/i2c-hid.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/i2c/i2c-hid.h b/include/linux/i2c/i2c-hid.h
index 7aa901d92058..1fb088239d12 100644
--- a/include/linux/i2c/i2c-hid.h
+++ b/include/linux/i2c/i2c-hid.h
@@ -14,9 +14,13 @@
#include <linux/types.h>
+struct regulator;
+
/**
* struct i2chid_platform_data - used by hid over i2c implementation.
* @hid_descriptor_address: i2c register where the HID descriptor is stored.
+ * @supply: regulator for powering on the device.
+ * @post_power_delay_ms: delay after powering on before device is usable.
*
* Note that it is the responsibility of the platform driver (or the acpi 5.0
* driver, or the flattened device tree) to setup the irq related to the gpio in
@@ -31,6 +35,8 @@
*/
struct i2c_hid_platform_data {
u16 hid_descriptor_address;
+ struct regulator *supply;
+ int post_power_delay_ms;
};
#endif /* __LINUX_I2C_HID_H */