rjw | 1f88458 | 2022-01-06 17:20:42 +0800 | [diff] [blame^] | 1 | ======================================= |
| 2 | Analog Joystick Support on ALSA Drivers |
| 3 | ======================================= |
| 4 | |
| 5 | Oct. 14, 2003 |
| 6 | |
| 7 | Takashi Iwai <tiwai@suse.de> |
| 8 | |
| 9 | General |
| 10 | ------- |
| 11 | |
| 12 | First of all, you need to enable GAMEPORT support on Linux kernel for |
| 13 | using a joystick with the ALSA driver. For the details of gameport |
| 14 | support, refer to Documentation/input/joystick.txt. |
| 15 | |
| 16 | The joystick support of ALSA drivers is different between ISA and PCI |
| 17 | cards. In the case of ISA (PnP) cards, it's usually handled by the |
| 18 | independent module (ns558). Meanwhile, the ALSA PCI drivers have the |
| 19 | built-in gameport support. Hence, when the ALSA PCI driver is built |
| 20 | in the kernel, CONFIG_GAMEPORT must be 'y', too. Otherwise, the |
| 21 | gameport support on that card will be (silently) disabled. |
| 22 | |
| 23 | Some adapter modules probe the physical connection of the device at |
| 24 | the load time. It'd be safer to plug in the joystick device before |
| 25 | loading the module. |
| 26 | |
| 27 | |
| 28 | PCI Cards |
| 29 | --------- |
| 30 | |
| 31 | For PCI cards, the joystick is enabled when the appropriate module |
| 32 | option is specified. Some drivers don't need options, and the |
| 33 | joystick support is always enabled. In the former ALSA version, there |
| 34 | was a dynamic control API for the joystick activation. It was |
| 35 | changed, however, to the static module options because of the system |
| 36 | stability and the resource management. |
| 37 | |
| 38 | The following PCI drivers support the joystick natively. |
| 39 | |
| 40 | ============== ============= ============================================ |
| 41 | Driver Module Option Available Values |
| 42 | ============== ============= ============================================ |
| 43 | als4000 joystick_port 0 = disable (default), 1 = auto-detect, |
| 44 | manual: any address (e.g. 0x200) |
| 45 | au88x0 N/A N/A |
| 46 | azf3328 joystick 0 = disable, 1 = enable, -1 = auto (default) |
| 47 | ens1370 joystick 0 = disable (default), 1 = enable |
| 48 | ens1371 joystick_port 0 = disable (default), 1 = auto-detect, |
| 49 | manual: 0x200, 0x208, 0x210, 0x218 |
| 50 | cmipci joystick_port 0 = disable (default), 1 = auto-detect, |
| 51 | manual: any address (e.g. 0x200) |
| 52 | cs4281 N/A N/A |
| 53 | cs46xx N/A N/A |
| 54 | es1938 N/A N/A |
| 55 | es1968 joystick 0 = disable (default), 1 = enable |
| 56 | sonicvibes N/A N/A |
| 57 | trident N/A N/A |
| 58 | via82xx [#f1]_ joystick 0 = disable (default), 1 = enable |
| 59 | ymfpci joystick_port 0 = disable (default), 1 = auto-detect, |
| 60 | manual: 0x201, 0x202, 0x204, 0x205 [#f2]_ |
| 61 | ============== ============= ============================================ |
| 62 | |
| 63 | .. [#f1] VIA686A/B only |
| 64 | .. [#f2] With YMF744/754 chips, the port address can be chosen arbitrarily |
| 65 | |
| 66 | The following drivers don't support gameport natively, but there are |
| 67 | additional modules. Load the corresponding module to add the gameport |
| 68 | support. |
| 69 | |
| 70 | ======= ================= |
| 71 | Driver Additional Module |
| 72 | ======= ================= |
| 73 | emu10k1 emu10k1-gp |
| 74 | fm801 fm801-gp |
| 75 | ======= ================= |
| 76 | |
| 77 | Note: the "pcigame" and "cs461x" modules are for the OSS drivers only. |
| 78 | These ALSA drivers (cs46xx, trident and au88x0) have the |
| 79 | built-in gameport support. |
| 80 | |
| 81 | As mentioned above, ALSA PCI drivers have the built-in gameport |
| 82 | support, so you don't have to load ns558 module. Just load "joydev" |
| 83 | and the appropriate adapter module (e.g. "analog"). |
| 84 | |
| 85 | |
| 86 | ISA Cards |
| 87 | --------- |
| 88 | |
| 89 | ALSA ISA drivers don't have the built-in gameport support. |
| 90 | Instead, you need to load "ns558" module in addition to "joydev" and |
| 91 | the adapter module (e.g. "analog"). |