FreeBSD kernel IICBUS device code
iichid.c File Reference
#include <sys/cdefs.h>
#include "opt_hid.h"
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/callout.h>
#include <sys/endian.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/module.h>
#include <sys/rman.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
#include <sys/taskqueue.h>
#include <machine/resource.h>
#include <contrib/dev/acpica/include/acpi.h>
#include <contrib/dev/acpica/include/accommon.h>
#include <dev/acpica/acpivar.h>
#include <dev/evdev/input.h>
#include <dev/hid/hid.h>
#include <dev/hid/hidquirk.h>
#include <dev/iicbus/iic.h>
#include <dev/iicbus/iicbus.h>
#include <dev/iicbus/iiconf.h>
#include "hid_if.h"
Include dependency graph for iichid.c:

Go to the source code of this file.

Data Structures

struct  i2c_hid_desc
 
struct  iichid_id
 
struct  iichid_softc
 

Macros

#define DPRINTFN(...)   do {} while (0)
 
#define DPRINTF(...)   do {} while (0)
 
#define IICHID_SIZE_MAX   (UINT16_MAX - 2)
 
#define I2C_HID_POWER_ON   0x0
 
#define I2C_HID_POWER_OFF   0x1
 
#define IICHID_SAMPLING_RATE_FAST   60
 
#define IICHID_SAMPLING_RATE_SLOW   10
 
#define IICHID_SAMPLING_HYSTERESIS   1
 
#define IICHID_REG_NONE   -1
 
#define IICHID_REG_ACPI   (UINT16_MAX + 1)
 
#define IICHID_REG_ELAN   0x0001
 
#define suspend_thread   taskqueue_thread
 

Typedefs

typedef hid_size_t iichid_size_t
 

Enumerations

enum  {
  I2C_HID_CMD_DESCR = 0x0 , I2C_HID_CMD_RESET = 0x1 , I2C_HID_CMD_GET_REPORT = 0x2 , I2C_HID_CMD_SET_REPORT = 0x3 ,
  I2C_HID_CMD_GET_IDLE = 0x4 , I2C_HID_CMD_SET_IDLE = 0x5 , I2C_HID_CMD_GET_PROTO = 0x6 , I2C_HID_CMD_SET_PROTO = 0x7 ,
  I2C_HID_CMD_SET_POWER = 0x8
}
 
enum  iichid_powerstate_how { IICHID_PS_NULL , IICHID_PS_ON , IICHID_PS_OFF }
 

Functions

 __FBSDID ("$FreeBSD$")
 
static void iichid_suspend_task (void *, int)
 
static int acpi_is_iichid (ACPI_HANDLE handle)
 
static ACPI_STATUS iichid_get_config_reg (ACPI_HANDLE handle, uint16_t *config_reg)
 
static int iichid_cmd_read (struct iichid_softc *sc, void *buf, iichid_size_t maxlen, iichid_size_t *actual_len)
 
static int iichid_cmd_write (struct iichid_softc *sc, const void *buf, iichid_size_t len)
 
static int iichid_cmd_get_hid_desc (struct iichid_softc *sc, uint16_t config_reg, struct i2c_hid_desc *hid_desc)
 
static int iichid_set_power (struct iichid_softc *sc, uint8_t param)
 
static int iichid_reset (struct iichid_softc *sc)
 
static int iichid_cmd_get_report_desc (struct iichid_softc *sc, void *buf, iichid_size_t len)
 
static int iichid_cmd_get_report (struct iichid_softc *sc, void *buf, iichid_size_t maxlen, iichid_size_t *actual_len, uint8_t type, uint8_t id)
 
static int iichid_cmd_set_report (struct iichid_softc *sc, const void *buf, iichid_size_t len, uint8_t type, uint8_t id)
 
static void iichid_intr (void *context)
 
static int iichid_set_power_state (struct iichid_softc *sc, enum iichid_powerstate_how how_open, enum iichid_powerstate_how how_suspend)
 
static int iichid_setup_interrupt (struct iichid_softc *sc)
 
static void iichid_teardown_interrupt (struct iichid_softc *sc)
 
static void iichid_intr_setup (device_t dev, hid_intr_t intr, void *context, struct hid_rdesc_info *rdesc)
 
static void iichid_intr_unsetup (device_t dev)
 
static int iichid_intr_start (device_t dev)
 
static int iichid_intr_stop (device_t dev)
 
static void iichid_intr_poll (device_t dev)
 
static int iichid_get_rdesc (device_t dev, void *buf, hid_size_t len)
 
static int iichid_read (device_t dev, void *buf, hid_size_t maxlen, hid_size_t *actlen)
 
static int iichid_write (device_t dev, const void *buf, hid_size_t len)
 
static int iichid_get_report (device_t dev, void *buf, hid_size_t maxlen, hid_size_t *actlen, uint8_t type, uint8_t id)
 
static int iichid_set_report (device_t dev, const void *buf, hid_size_t len, uint8_t type, uint8_t id)
 
static int iichid_set_idle (device_t dev, uint16_t duration, uint8_t id)
 
static int iichid_set_protocol (device_t dev, uint16_t protocol)
 
static int iichid_ioctl (device_t dev, unsigned long cmd, uintptr_t data)
 
static int iichid_fill_device_info (struct i2c_hid_desc *desc, ACPI_HANDLE handle, struct hid_device_info *hw)
 
static int iichid_probe (device_t dev)
 
static int iichid_attach (device_t dev)
 
static int iichid_detach (device_t dev)
 
static int iichid_suspend (device_t dev)
 
static int iichid_resume (device_t dev)
 
 DRIVER_MODULE (iichid, iicbus, iichid_driver, iichid_devclass, NULL, 0)
 
 MODULE_DEPEND (iichid, iicbus, IICBUS_MINVER, IICBUS_PREFVER, IICBUS_MAXVER)
 
 MODULE_DEPEND (iichid, acpi, 1, 1, 1)
 
 MODULE_DEPEND (iichid, hid, 1, 1, 1)
 
 MODULE_DEPEND (iichid, hidbus, 1, 1, 1)
 
 MODULE_VERSION (iichid, 1)
 
 IICBUS_ACPI_PNP_INFO (iichid_ids)
 

Variables

struct i2c_hid_desc __packed
 
static const struct iichid_id iichid_ids []
 
static device_probe_t iichid_probe
 
static device_attach_t iichid_attach
 
static device_detach_t iichid_detach
 
static device_resume_t iichid_resume
 
static device_suspend_t iichid_suspend
 
static devclass_t iichid_devclass
 
static device_method_t iichid_methods []
 
static driver_t iichid_driver
 

Macro Definition Documentation

◆ DPRINTF

#define DPRINTF (   ...)    do {} while (0)

Definition at line 80 of file iichid.c.

◆ DPRINTFN

#define DPRINTFN (   ...)    do {} while (0)

Definition at line 79 of file iichid.c.

◆ I2C_HID_POWER_OFF

#define I2C_HID_POWER_OFF   0x1

Definition at line 100 of file iichid.c.

◆ I2C_HID_POWER_ON

#define I2C_HID_POWER_ON   0x0

Definition at line 99 of file iichid.c.

◆ IICHID_REG_ACPI

#define IICHID_REG_ACPI   (UINT16_MAX + 1)

Definition at line 134 of file iichid.c.

◆ IICHID_REG_ELAN

#define IICHID_REG_ELAN   0x0001

Definition at line 135 of file iichid.c.

◆ IICHID_REG_NONE

#define IICHID_REG_NONE   -1

Definition at line 133 of file iichid.c.

◆ IICHID_SAMPLING_HYSTERESIS

#define IICHID_SAMPLING_HYSTERESIS   1

Definition at line 113 of file iichid.c.

◆ IICHID_SAMPLING_RATE_FAST

#define IICHID_SAMPLING_RATE_FAST   60

Definition at line 111 of file iichid.c.

◆ IICHID_SAMPLING_RATE_SLOW

#define IICHID_SAMPLING_RATE_SLOW   10

Definition at line 112 of file iichid.c.

◆ IICHID_SIZE_MAX

#define IICHID_SIZE_MAX   (UINT16_MAX - 2)

Definition at line 84 of file iichid.c.

◆ suspend_thread

#define suspend_thread   taskqueue_thread

Typedef Documentation

◆ iichid_size_t

typedef hid_size_t iichid_size_t

Definition at line 83 of file iichid.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
I2C_HID_CMD_DESCR 
I2C_HID_CMD_RESET 
I2C_HID_CMD_GET_REPORT 
I2C_HID_CMD_SET_REPORT 
I2C_HID_CMD_GET_IDLE 
I2C_HID_CMD_SET_IDLE 
I2C_HID_CMD_GET_PROTO 
I2C_HID_CMD_SET_PROTO 
I2C_HID_CMD_SET_POWER 

Definition at line 87 of file iichid.c.

◆ iichid_powerstate_how

Enumerator
IICHID_PS_NULL 
IICHID_PS_ON 
IICHID_PS_OFF 

Definition at line 147 of file iichid.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ acpi_is_iichid()

static int acpi_is_iichid ( ACPI_HANDLE  handle)
inlinestatic

Definition at line 209 of file iichid.c.

References iichid_id::id, iichid_ids, IICHID_REG_NONE, and iichid_id::reg.

Referenced by iichid_probe().

Here is the caller graph for this function:

◆ DRIVER_MODULE()

DRIVER_MODULE ( iichid  ,
iicbus  ,
iichid_driver  ,
iichid_devclass  ,
NULL  ,
 
)

◆ IICBUS_ACPI_PNP_INFO()

IICBUS_ACPI_PNP_INFO ( iichid_ids  )

◆ iichid_attach()

◆ iichid_cmd_get_hid_desc()

static int iichid_cmd_get_hid_desc ( struct iichid_softc sc,
uint16_t  config_reg,
struct i2c_hid_desc hid_desc 
)
static

Definition at line 337 of file iichid.c.

References iichid_softc::addr, iichid_softc::dev, DPRINTF, IIC_M_NOSTOP, IIC_M_RD, IIC_M_WR, iicbus_transfer(), and msgs.

Referenced by iichid_probe().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iichid_cmd_get_report()

static int iichid_cmd_get_report ( struct iichid_softc sc,
void *  buf,
iichid_size_t  maxlen,
iichid_size_t actual_len,
uint8_t  type,
uint8_t  id 
)
static

Definition at line 415 of file iichid.c.

References iichid_softc::addr, buf, iichid_softc::desc, iichid_softc::dev, DPRINTF, I2C_HID_CMD_GET_REPORT, IIC_M_NOSTART, IIC_M_NOSTOP, IIC_M_RD, IIC_M_WR, iicbus_transfer(), msgs, i2c_hid_desc::wCommandRegister, and i2c_hid_desc::wDataRegister.

Referenced by iichid_get_report().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iichid_cmd_get_report_desc()

static int iichid_cmd_get_report_desc ( struct iichid_softc sc,
void *  buf,
iichid_size_t  len 
)
static

Definition at line 392 of file iichid.c.

References iichid_softc::addr, buf, iichid_softc::desc, iichid_softc::dev, DPRINTF, IIC_M_NOSTOP, IIC_M_RD, IIC_M_WR, iicbus_transfer(), len, msgs, and i2c_hid_desc::wReportDescRegister.

Referenced by iichid_get_rdesc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iichid_cmd_read()

static int iichid_cmd_read ( struct iichid_softc sc,
void *  buf,
iichid_size_t  maxlen,
iichid_size_t actual_len 
)
static

Definition at line 266 of file iichid.c.

References iichid_softc::addr, iic_msg::buf, buf, iichid_softc::dev, DPRINTF, DPRINTFN, IIC_M_NOSTART, IIC_M_NOSTOP, IIC_M_RD, iicbus_transfer(), len, and msgs.

Referenced by iichid_attach(), iichid_intr(), iichid_intr_poll(), and iichid_read().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iichid_cmd_set_report()

static int iichid_cmd_set_report ( struct iichid_softc sc,
const void *  buf,
iichid_size_t  len,
uint8_t  type,
uint8_t  id 
)
static

Definition at line 485 of file iichid.c.

References iichid_softc::addr, buf, iichid_softc::desc, iichid_softc::dev, DPRINTF, I2C_HID_CMD_SET_REPORT, IIC_M_NOSTART, IIC_M_NOSTOP, IIC_M_WR, iicbus_transfer(), len, msgs, i2c_hid_desc::wCommandRegister, and i2c_hid_desc::wDataRegister.

Referenced by iichid_set_report().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iichid_cmd_write()

static int iichid_cmd_write ( struct iichid_softc sc,
const void *  buf,
iichid_size_t  len 
)
static

Definition at line 314 of file iichid.c.

References iichid_softc::desc, len, and i2c_hid_desc::wOutputRegister.

Referenced by iichid_write().

Here is the caller graph for this function:

◆ iichid_detach()

static int iichid_detach ( device_t  dev)
static

Definition at line 1198 of file iichid.c.

References dev, iichid_teardown_interrupt(), iichid_softc::irq_res, and iichid_softc::irq_rid.

Here is the call graph for this function:

◆ iichid_fill_device_info()

static int iichid_fill_device_info ( struct i2c_hid_desc desc,
ACPI_HANDLE  handle,
struct hid_device_info *  hw 
)
static

◆ iichid_get_config_reg()

static ACPI_STATUS iichid_get_config_reg ( ACPI_HANDLE  handle,
uint16_t *  config_reg 
)
static

Definition at line 236 of file iichid.c.

Referenced by iichid_probe().

Here is the caller graph for this function:

◆ iichid_get_rdesc()

static int iichid_get_rdesc ( device_t  dev,
void *  buf,
hid_size_t  len 
)
static

Definition at line 881 of file iichid.c.

References buf, dev, DPRINTF, iic2errno(), iichid_cmd_get_report_desc(), and len.

Here is the call graph for this function:

◆ iichid_get_report()

static int iichid_get_report ( device_t  dev,
void *  buf,
hid_size_t  maxlen,
hid_size_t *  actlen,
uint8_t  type,
uint8_t  id 
)
static

Definition at line 925 of file iichid.c.

References buf, dev, iic2errno(), iichid_cmd_get_report(), and IICHID_SIZE_MAX.

Here is the call graph for this function:

◆ iichid_intr()

static void iichid_intr ( void *  context)
static

Definition at line 566 of file iichid.c.

References iichid_softc::dev, DPRINTF, IIC_DONTWAIT, iicbus_release_bus(), iicbus_request_bus(), iichid_cmd_read(), iichid_softc::intr_buf, iichid_softc::intr_bufsize, iichid_softc::intr_ctx, iichid_softc::intr_handler, and iichid_softc::power_on.

Referenced by iichid_setup_interrupt().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iichid_intr_poll()

static void iichid_intr_poll ( device_t  dev)
static

Definition at line 865 of file iichid.c.

References dev, iichid_cmd_read(), iichid_softc::intr_buf, iichid_softc::intr_bufsize, iichid_softc::intr_ctx, and iichid_softc::intr_handler.

Here is the call graph for this function:

◆ iichid_intr_setup()

static void iichid_intr_setup ( device_t  dev,
hid_intr_t  intr,
void *  context,
struct hid_rdesc_info *  rdesc 
)
static

◆ iichid_intr_start()

static int iichid_intr_start ( device_t  dev)
static

Definition at line 835 of file iichid.c.

References dev, DPRINTF, IICHID_PS_NULL, IICHID_PS_ON, and iichid_set_power_state().

Here is the call graph for this function:

◆ iichid_intr_stop()

static int iichid_intr_stop ( device_t  dev)
static

Definition at line 847 of file iichid.c.

References dev, DPRINTF, IICHID_PS_NULL, IICHID_PS_OFF, and iichid_set_power_state().

Here is the call graph for this function:

◆ iichid_intr_unsetup()

static void iichid_intr_unsetup ( device_t  dev)
static

Definition at line 823 of file iichid.c.

References dev, and iichid_softc::intr_buf.

◆ iichid_ioctl()

static int iichid_ioctl ( device_t  dev,
unsigned long  cmd,
uintptr_t  data 
)
static

Definition at line 962 of file iichid.c.

References data, dev, I2CRDWR, iic2errno(), iicbus_transfer(), msgs, and nmsgs.

Here is the call graph for this function:

◆ iichid_probe()

◆ iichid_read()

static int iichid_read ( device_t  dev,
void *  buf,
hid_size_t  maxlen,
hid_size_t *  actlen 
)
static

Definition at line 895 of file iichid.c.

References buf, iichid_softc::dev, dev, iic2errno(), IIC_WAIT, iicbus_release_bus(), iicbus_request_bus(), iichid_cmd_read(), and IICHID_SIZE_MAX.

Here is the call graph for this function:

◆ iichid_reset()

static int iichid_reset ( struct iichid_softc sc)
static

Definition at line 378 of file iichid.c.

References iichid_softc::desc, I2C_HID_CMD_RESET, and i2c_hid_desc::wCommandRegister.

Referenced by iichid_attach().

Here is the caller graph for this function:

◆ iichid_resume()

static int iichid_resume ( device_t  dev)
static

Definition at line 1270 of file iichid.c.

References dev, DPRINTF, IICHID_PS_NULL, IICHID_PS_ON, iichid_set_power_state(), and iichid_setup_interrupt().

Here is the call graph for this function:

◆ iichid_set_idle()

static int iichid_set_idle ( device_t  dev,
uint16_t  duration,
uint8_t  id 
)
static

Definition at line 950 of file iichid.c.

◆ iichid_set_power()

static int iichid_set_power ( struct iichid_softc sc,
uint8_t  param 
)
static

Definition at line 364 of file iichid.c.

References iichid_softc::desc, I2C_HID_CMD_SET_POWER, and i2c_hid_desc::wCommandRegister.

Referenced by iichid_attach(), and iichid_set_power_state().

Here is the caller graph for this function:

◆ iichid_set_power_state()

static int iichid_set_power_state ( struct iichid_softc sc,
enum iichid_powerstate_how  how_open,
enum iichid_powerstate_how  how_suspend 
)
static

◆ iichid_set_protocol()

static int iichid_set_protocol ( device_t  dev,
uint16_t  protocol 
)
static

Definition at line 956 of file iichid.c.

◆ iichid_set_report()

static int iichid_set_report ( device_t  dev,
const void *  buf,
hid_size_t  len,
uint8_t  type,
uint8_t  id 
)
static

Definition at line 938 of file iichid.c.

References buf, dev, iic2errno(), iichid_cmd_set_report(), IICHID_SIZE_MAX, and len.

Here is the call graph for this function:

◆ iichid_setup_interrupt()

static int iichid_setup_interrupt ( struct iichid_softc sc)
static

Definition at line 677 of file iichid.c.

References iichid_softc::dev, DPRINTF, iichid_intr(), iichid_softc::irq_cookie, and iichid_softc::irq_res.

Referenced by iichid_attach(), and iichid_resume().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iichid_suspend()

static int iichid_suspend ( device_t  dev)
static

Definition at line 1228 of file iichid.c.

References dev, DPRINTF, IICHID_PS_NULL, IICHID_PS_OFF, iichid_set_power_state(), iichid_softc::suspend_task, and suspend_thread.

Here is the call graph for this function:

◆ iichid_suspend_task()

static void iichid_suspend_task ( void *  context,
int  pending 
)
static

Definition at line 1220 of file iichid.c.

References iichid_teardown_interrupt().

Referenced by iichid_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iichid_teardown_interrupt()

static void iichid_teardown_interrupt ( struct iichid_softc sc)
static

Definition at line 692 of file iichid.c.

References iichid_softc::dev, iichid_softc::irq_cookie, and iichid_softc::irq_res.

Referenced by iichid_detach(), and iichid_suspend_task().

Here is the caller graph for this function:

◆ iichid_write()

static int iichid_write ( device_t  dev,
const void *  buf,
hid_size_t  len 
)
static

Definition at line 914 of file iichid.c.

References buf, dev, iic2errno(), iichid_cmd_write(), IICHID_SIZE_MAX, and len.

Here is the call graph for this function:

◆ MODULE_DEPEND() [1/4]

MODULE_DEPEND ( iichid  ,
acpi  ,
,
,
 
)

◆ MODULE_DEPEND() [2/4]

MODULE_DEPEND ( iichid  ,
hid  ,
,
,
 
)

◆ MODULE_DEPEND() [3/4]

MODULE_DEPEND ( iichid  ,
hidbus  ,
,
,
 
)

◆ MODULE_DEPEND() [4/4]

MODULE_DEPEND ( iichid  ,
iicbus  ,
IICBUS_MINVER  ,
IICBUS_PREFVER  ,
IICBUS_MAXVER   
)

◆ MODULE_VERSION()

MODULE_VERSION ( iichid  ,
 
)

Variable Documentation

◆ __packed

struct i2c_hid_desc __packed

◆ iichid_attach

device_attach_t iichid_attach
static

Definition at line 195 of file iichid.c.

◆ iichid_detach

device_detach_t iichid_detach
static

Definition at line 196 of file iichid.c.

Referenced by iichid_attach().

◆ iichid_devclass

devclass_t iichid_devclass
static

Definition at line 1292 of file iichid.c.

◆ iichid_driver

driver_t iichid_driver
static
Initial value:
= {
.name = "iichid",
.methods = iichid_methods,
.size = sizeof(struct iichid_softc),
}
static device_method_t iichid_methods[]
Definition: iichid.c:1294

Definition at line 1320 of file iichid.c.

◆ iichid_ids

const struct iichid_id iichid_ids[]
static
Initial value:
= {
{ "ELAN0000", IICHID_REG_ELAN },
{ "PNP0C50", IICHID_REG_ACPI },
{ "ACPI0C50", IICHID_REG_ACPI },
{ NULL, 0 },
}
#define IICHID_REG_ACPI
Definition: iichid.c:134
#define IICHID_REG_ELAN
Definition: iichid.c:135

Referenced by acpi_is_iichid().

◆ iichid_methods

device_method_t iichid_methods[]
static
Initial value:
= {
DEVMETHOD(device_probe, iichid_probe),
DEVMETHOD(device_attach, iichid_attach),
DEVMETHOD(device_detach, iichid_detach),
DEVMETHOD(device_suspend, iichid_suspend),
DEVMETHOD(device_resume, iichid_resume),
DEVMETHOD(hid_intr_setup, iichid_intr_setup),
DEVMETHOD(hid_intr_unsetup, iichid_intr_unsetup),
DEVMETHOD(hid_intr_start, iichid_intr_start),
DEVMETHOD(hid_intr_stop, iichid_intr_stop),
DEVMETHOD(hid_intr_poll, iichid_intr_poll),
DEVMETHOD(hid_get_rdesc, iichid_get_rdesc),
DEVMETHOD(hid_read, iichid_read),
DEVMETHOD(hid_write, iichid_write),
DEVMETHOD(hid_get_report, iichid_get_report),
DEVMETHOD(hid_set_report, iichid_set_report),
DEVMETHOD(hid_set_idle, iichid_set_idle),
DEVMETHOD(hid_set_protocol, iichid_set_protocol),
DEVMETHOD(hid_ioctl, iichid_ioctl),
DEVMETHOD_END
}
static void iichid_intr_setup(device_t dev, hid_intr_t intr, void *context, struct hid_rdesc_info *rdesc)
Definition: iichid.c:794
static device_resume_t iichid_resume
Definition: iichid.c:197
static void iichid_intr_poll(device_t dev)
Definition: iichid.c:865
static int iichid_intr_start(device_t dev)
Definition: iichid.c:835
static int iichid_set_report(device_t dev, const void *buf, hid_size_t len, uint8_t type, uint8_t id)
Definition: iichid.c:938
static device_attach_t iichid_attach
Definition: iichid.c:195
static int iichid_write(device_t dev, const void *buf, hid_size_t len)
Definition: iichid.c:914
static int iichid_set_protocol(device_t dev, uint16_t protocol)
Definition: iichid.c:956
static device_probe_t iichid_probe
Definition: iichid.c:194
static device_suspend_t iichid_suspend
Definition: iichid.c:198
static void iichid_intr_unsetup(device_t dev)
Definition: iichid.c:823
static int iichid_ioctl(device_t dev, unsigned long cmd, uintptr_t data)
Definition: iichid.c:962
static int iichid_intr_stop(device_t dev)
Definition: iichid.c:847
static int iichid_read(device_t dev, void *buf, hid_size_t maxlen, hid_size_t *actlen)
Definition: iichid.c:895
static device_detach_t iichid_detach
Definition: iichid.c:196
static int iichid_set_idle(device_t dev, uint16_t duration, uint8_t id)
Definition: iichid.c:950
static int iichid_get_report(device_t dev, void *buf, hid_size_t maxlen, hid_size_t *actlen, uint8_t type, uint8_t id)
Definition: iichid.c:925
static int iichid_get_rdesc(device_t dev, void *buf, hid_size_t len)
Definition: iichid.c:881

Definition at line 1294 of file iichid.c.

◆ iichid_probe

device_probe_t iichid_probe
static

Definition at line 194 of file iichid.c.

◆ iichid_resume

device_resume_t iichid_resume
static

Definition at line 197 of file iichid.c.

◆ iichid_suspend

device_suspend_t iichid_suspend
static

Definition at line 198 of file iichid.c.