brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 2c7b66d Raw
46 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2 3#ifndef I2C_HID_H4#define I2C_HID_H5 6#include <linux/i2c.h>7 8#ifdef CONFIG_DMI9struct i2c_hid_desc *i2c_hid_get_dmi_i2c_hid_desc_override(uint8_t *i2c_name);10char *i2c_hid_get_dmi_hid_report_desc_override(uint8_t *i2c_name,11					       unsigned int *size);12u32 i2c_hid_get_dmi_quirks(const u16 vendor, const u16 product);13#else14static inline struct i2c_hid_desc15		   *i2c_hid_get_dmi_i2c_hid_desc_override(uint8_t *i2c_name)16{ return NULL; }17static inline char *i2c_hid_get_dmi_hid_report_desc_override(uint8_t *i2c_name,18							     unsigned int *size)19{ return NULL; }20static inline u32 i2c_hid_get_dmi_quirks(const u16 vendor, const u16 product)21{ return 0; }22#endif23 24/**25 * struct i2chid_ops - Ops provided to the core.26 *27 * @power_up: do sequencing to power up the device.28 * @power_down: do sequencing to power down the device.29 * @shutdown_tail: called at the end of shutdown.30 */31struct i2chid_ops {32	int (*power_up)(struct i2chid_ops *ops);33	void (*power_down)(struct i2chid_ops *ops);34	void (*shutdown_tail)(struct i2chid_ops *ops);35};36 37int i2c_hid_core_probe(struct i2c_client *client, struct i2chid_ops *ops,38		       u16 hid_descriptor_address, u32 quirks);39void i2c_hid_core_remove(struct i2c_client *client);40 41void i2c_hid_core_shutdown(struct i2c_client *client);42 43extern const struct dev_pm_ops i2c_hid_core_pm;44 45#endif46