#include <sys/cdefs.h>
#include <sys/stdint.h>
#include <sys/stddef.h>
#include <sys/param.h>
#include <sys/queue.h>
#include <sys/types.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/bus.h>
#include <sys/module.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/condvar.h>
#include <sys/sysctl.h>
#include <sys/sx.h>
#include <sys/unistd.h>
#include <sys/callout.h>
#include <sys/malloc.h>
#include <sys/priv.h>
#include <sys/conf.h>
#include <dev/hid/hid.h>
#include <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usbhid.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/usbdi_util.h>
#include "usbdevs.h"
#include <dev/usb/usb_debug.h>
Go to the source code of this file.
|
| __FBSDID ("$FreeBSD$") |
|
| DRIVER_MODULE (ugold, uhub, ugold_driver, ugold_devclass, NULL, NULL) |
|
| MODULE_DEPEND (ugold, usb, 1, 1, 1) |
|
| MODULE_DEPEND (ugold, hid, 1, 1, 1) |
|
| MODULE_VERSION (ugold, 1) |
|
| USB_PNP_HOST_INFO (ugold_devs) |
|
static void | ugold_timeout (void *arg) |
|
static int | ugold_probe (device_t dev) |
|
static int | ugold_attach (device_t dev) |
|
static int | ugold_detach (device_t dev) |
|
static int | ugold_ds75_temp (uint8_t msb, uint8_t lsb) |
|
static void | ugold_intr_callback (struct usb_xfer *xfer, usb_error_t error) |
|
static int | ugold_issue_cmd (struct ugold_softc *sc, uint8_t *cmd, int len) |
|
static void | ugold_readout_msg (struct usb_proc_msg *pm) |
|
|
static uint8_t | cmd_data [8] = {0x01, 0x80, 0x33, 0x01, 0x00, 0x00, 0x00, 0x00} |
|
static uint8_t | cmd_init [8] = {0x01, 0x82, 0x77, 0x01, 0x00, 0x00, 0x00, 0x00} |
|
static device_probe_t | ugold_probe |
|
static device_attach_t | ugold_attach |
|
static device_detach_t | ugold_detach |
|
static usb_proc_callback_t | ugold_readout_msg |
|
static usb_callback_t | ugold_intr_callback |
|
static devclass_t | ugold_devclass |
|
static device_method_t | ugold_methods [] |
|
static driver_t | ugold_driver |
|
static const STRUCT_USB_HOST_ID | ugold_devs [] |
|
static const struct usb_config | ugold_config [UGOLD_N_TRANSFER] |
|
◆ UGOLD_CMD_DATA
#define UGOLD_CMD_DATA 0x80 |
◆ UGOLD_CMD_INIT
#define UGOLD_CMD_INIT 0x82 |
◆ UGOLD_INNER
◆ UGOLD_MAX_SENSORS
#define UGOLD_MAX_SENSORS 2 |
◆ UGOLD_OUTER
◆ USB_DEBUG_VAR
◆ anonymous enum
Enumerator |
---|
UGOLD_INTR_DT | |
UGOLD_N_TRANSFER | |
Definition at line 64 of file ugold.c.
◆ __FBSDID()
◆ DRIVER_MODULE()
◆ MODULE_DEPEND() [1/2]
MODULE_DEPEND |
( |
ugold |
, |
|
|
hid |
, |
|
|
1 |
, |
|
|
1 |
, |
|
|
1 |
|
|
) |
| |
◆ MODULE_DEPEND() [2/2]
MODULE_DEPEND |
( |
ugold |
, |
|
|
usb |
, |
|
|
1 |
, |
|
|
1 |
, |
|
|
1 |
|
|
) |
| |
◆ MODULE_VERSION()
MODULE_VERSION |
( |
ugold |
, |
|
|
1 |
|
|
) |
| |
◆ ugold_attach()
static int ugold_attach |
( |
device_t |
dev | ) |
|
|
static |
Definition at line 193 of file ugold.c.
References usbd_lookup_info::bIfaceIndex, dev, usb_attach_arg::device, device_set_usb_desc(), DPRINTF, error, ugold_readout_msg::hdr, usb_attach_arg::info, usb_proc_msg::pm_callback, ugold_readout_msg::sc, ugold_softc::sc_calib, ugold_softc::sc_callout, ugold_softc::sc_iface_index, ugold_softc::sc_mtx, ugold_softc::sc_readout_msg, ugold_softc::sc_report_id, ugold_softc::sc_sensor, ugold_softc::sc_udev, ugold_softc::sc_valid, ugold_softc::sc_xfer, ugold_config, ugold_detach, UGOLD_INNER, UGOLD_INTR_DT, UGOLD_N_TRANSFER, UGOLD_OUTER, ugold_readout_msg, ugold_timeout(), usbd_errstr(), usbd_get_iface(), usbd_req_get_hid_desc(), usbd_set_parent_iface(), usbd_transfer_setup(), and usbd_transfer_start().
◆ ugold_detach()
static int ugold_detach |
( |
device_t |
dev | ) |
|
|
static |
Definition at line 294 of file ugold.c.
References dev, ugold_softc::sc_callout, ugold_softc::sc_mtx, ugold_softc::sc_readout_msg, ugold_softc::sc_udev, ugold_softc::sc_xfer, UGOLD_N_TRANSFER, usb_proc_explore_lock(), usb_proc_explore_mwait(), usb_proc_explore_unlock(), and usbd_transfer_unsetup().
◆ ugold_ds75_temp()
static int ugold_ds75_temp |
( |
uint8_t |
msb, |
|
|
uint8_t |
lsb |
|
) |
| |
|
static |
◆ ugold_intr_callback()
Definition at line 322 of file ugold.c.
References DPRINTF, error, len, ugold_softc::sc_calib, ugold_softc::sc_num_sensors, ugold_softc::sc_sensor, ugold_softc::sc_valid, UGOLD_CMD_DATA, UGOLD_CMD_INIT, ugold_ds75_temp(), UGOLD_INNER, UGOLD_MAX_SENSORS, UGOLD_OUTER, USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_out(), usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_max_len(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), usbd_xfer_softc(), and usbd_xfer_status().
◆ ugold_issue_cmd()
static int ugold_issue_cmd |
( |
struct ugold_softc * |
sc, |
|
|
uint8_t * |
cmd, |
|
|
int |
len |
|
) |
| |
|
static |
◆ ugold_probe()
static int ugold_probe |
( |
device_t |
dev | ) |
|
|
static |
◆ ugold_readout_msg()
◆ ugold_timeout()
static void ugold_timeout |
( |
void * |
arg | ) |
|
|
static |
◆ USB_PNP_HOST_INFO()
◆ cmd_data
uint8_t cmd_data[8] = {0x01, 0x80, 0x33, 0x01, 0x00, 0x00, 0x00, 0x00} |
|
static |
◆ cmd_init
uint8_t cmd_init[8] = {0x01, 0x82, 0x77, 0x01, 0x00, 0x00, 0x00, 0x00} |
|
static |
◆ ugold_attach
device_attach_t ugold_attach |
|
static |
◆ ugold_config
Initial value:= {
.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
.bufsize = 0,
.if_index = 1,
},
}
static usb_callback_t ugold_intr_callback
Definition at line 151 of file ugold.c.
Referenced by ugold_attach().
◆ ugold_detach
device_detach_t ugold_detach |
|
static |
◆ ugold_devclass
devclass_t ugold_devclass |
|
static |
◆ ugold_devs
Initial value:= {
{
USB_VPI(USB_VENDOR_CHICONY2, USB_PRODUCT_CHICONY2_TEMPER, 0)},
}
#define USB_VPI(vend, prod, info)
Definition at line 141 of file ugold.c.
Referenced by ugold_probe().
◆ ugold_driver
Initial value:= {
.name = "ugold",
}
static device_method_t ugold_methods[]
Definition at line 135 of file ugold.c.
◆ ugold_intr_callback
◆ ugold_methods
device_method_t ugold_methods[] |
|
static |
Initial value:= {
DEVMETHOD_END
}
static device_detach_t ugold_detach
static device_attach_t ugold_attach
static device_probe_t ugold_probe
Definition at line 127 of file ugold.c.
◆ ugold_probe
device_probe_t ugold_probe |
|
static |
◆ ugold_readout_msg