|
1 /* |
|
2 * Copyright (C) 2005-2007 Jiri Slaby <jirislaby@gmail.com> |
|
3 * |
|
4 * This program is free software; you can redistribute it and/or modify |
|
5 * it under the terms of the GNU General Public License as published by |
|
6 * the Free Software Foundation; either version 2 of the License, or |
|
7 * (at your option) any later version. |
|
8 */ |
|
9 |
|
10 #ifndef __PHANTOM_H |
|
11 #define __PHANTOM_H |
|
12 |
|
13 #include <asm/types.h> |
|
14 |
|
15 /* PHN_(G/S)ET_REG param */ |
|
16 struct phm_reg { |
|
17 __u32 reg; |
|
18 __u32 value; |
|
19 }; |
|
20 |
|
21 /* PHN_(G/S)ET_REGS param */ |
|
22 struct phm_regs { |
|
23 __u32 count; |
|
24 __u32 mask; |
|
25 __u32 values[8]; |
|
26 }; |
|
27 |
|
28 #define PH_IOC_MAGIC 'p' |
|
29 #define PHN_GET_REG _IOWR(PH_IOC_MAGIC, 0, struct phm_reg *) |
|
30 #define PHN_SET_REG _IOW(PH_IOC_MAGIC, 1, struct phm_reg *) |
|
31 #define PHN_GET_REGS _IOWR(PH_IOC_MAGIC, 2, struct phm_regs *) |
|
32 #define PHN_SET_REGS _IOW(PH_IOC_MAGIC, 3, struct phm_regs *) |
|
33 /* this ioctl tells the driver, that the caller is not OpenHaptics and might |
|
34 * use improved registers update (no more phantom switchoffs when using |
|
35 * libphantom) */ |
|
36 #define PHN_NOT_OH _IO(PH_IOC_MAGIC, 4) |
|
37 #define PHN_GETREG _IOWR(PH_IOC_MAGIC, 5, struct phm_reg) |
|
38 #define PHN_SETREG _IOW(PH_IOC_MAGIC, 6, struct phm_reg) |
|
39 #define PHN_GETREGS _IOWR(PH_IOC_MAGIC, 7, struct phm_regs) |
|
40 #define PHN_SETREGS _IOW(PH_IOC_MAGIC, 8, struct phm_regs) |
|
41 |
|
42 #define PHN_CONTROL 0x6 /* control byte in iaddr space */ |
|
43 #define PHN_CTL_AMP 0x1 /* switch after torques change */ |
|
44 #define PHN_CTL_BUT 0x2 /* is button switched */ |
|
45 #define PHN_CTL_IRQ 0x10 /* is irq enabled */ |
|
46 |
|
47 #define PHN_ZERO_FORCE 2048 /* zero torque on motor */ |
|
48 |
|
49 #endif |