📄 tjusb.h
字号:
#ifndef _TJUSB_H#define _TJUSB_H#include <linux/kernel.h>#include <linux/errno.h>#include <linux/module.h>#include <linux/usb.h>#include <linux/ioctl.h>//#include <linux/devfs_fs_kernel.h>#define TJ_MAX_REGS 256 #define TJ_MAX_IFACES 128#define POWERSAVE_TIME 4000 /* Powersaving timeout for devices with a proslic *//* Various registers and data ports on the TJ device */#define TJ_SPORT0 0x26#define TJ_SPORT1 0x27#define TJ_SPORT2 0x28#define TJ_SPORT_CTRL 0x29#define TJ_AUX0 0x1#define TJ_AUX1 0x2#define TJ_AUX2 0x4#define TJ_AUX3 0x8#define CONTROL_TIMEOUT_MS (500) /* msec */#define CONTROL_TIMEOUT_JIFFIES ((CONTROL_TIMEOUT_MS * HZ) / 1000)#define REQUEST_NORMAL 4 /* Get a minor range for your devices from the usb maintainer */#define USB_TJ_MINOR_BASE 220 /* we can have up to this number of device plugged in at once */#define MAX_DEVICES 16/* Important data structures and data types */struct tj560_regs { unsigned char index; unsigned char data[TJ_MAX_REGS]; int len;};struct proslic_regs { unsigned char address; unsigned char data; unsigned short indata;};/* ioctl definitions */#define TJ_CMD 'J'/* Read TJ560 register */#define TJ_RD_REG _IOR(TJ_CMD,1,struct tj560_regs)/* Write TJ560 register array*/#define TJ_WR_REG _IOW(TJ_CMD,2,struct tj560_regs)/* Read Proslic Direct register */#define TJ_RDPS_DREG _IOR(TJ_CMD,3,struct proslic_regs)/* Read Proslic Indirect register */#define TJ_RDPS_IDREG _IOR(TJ_CMD,4,struct proslic_regs)/* Write Proslic Direct register */#define TJ_WRPS_DREG _IOR(TJ_CMD,5,struct proslic_regs)/* Write Proslic Indirect register */#define TJ_WRPS_IDREG _IOR(TJ_CMD,6,struct proslic_regs)/* Scan keypad once */#define TJ_CHECK_KEY _IOWR(TJ_CMD,7,int)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -