| Analog Joystick Support on ALSA Drivers |
| ======================================= |
| Oct. 14, 2003 |
| Takashi Iwai <tiwai@suse.de> |
| |
| General |
| ------- |
| |
| First of all, you need to enable GAMEPORT support on Linux kernel for |
| using a joystick with the ALSA driver. For the details of gameport |
| support, refer to Documentation/input/joystick.txt. |
| |
| The joystick support of ALSA drivers is different between ISA and PCI |
| cards. In the case of ISA (PnP) cards, it's usually handled by the |
| independent module (ns558). Meanwhile, the ALSA PCI drivers have the |
| built-in gameport support. Hence, when the ALSA PCI driver is built |
| in the kernel, CONFIG_GAMEPORT must be 'y', too. Otherwise, the |
| gameport support on that card will be (silently) disabled. |
| |
| Some adapter modules probe the physical connection of the device at |
| the load time. It'd be safer to plug in the joystick device before |
| loading the module. |
| |
| |
| PCI Cards |
| --------- |
| |
| For PCI cards, the joystick is enabled when the appropriate module |
| option is specified. Some drivers don't need options, and the |
| joystick support is always enabled. In the former ALSA version, there |
| was a dynamic control API for the joystick activation. It was |
| changed, however, to the static module options because of the system |
| stability and the resource management. |
| |
| The following PCI drivers support the joystick natively. |
| |
| Driver Module Option Available Values |
| --------------------------------------------------------------------------- |
| als4000 joystick_port 0 = disable (default), 1 = auto-detect, |
| manual: any address (e.g. 0x200) |
| au88x0 N/A N/A |
| azf3328 joystick 0 = disable, 1 = enable, -1 = auto (default) |
| ens1370 joystick 0 = disable (default), 1 = enable |
| ens1371 joystick_port 0 = disable (default), 1 = auto-detect, |
| manual: 0x200, 0x208, 0x210, 0x218 |
| cmipci joystick_port 0 = disable (default), 1 = auto-detect, |
| manual: any address (e.g. 0x200) |
| cs4281 N/A N/A |
| cs46xx N/A N/A |
| es1938 N/A N/A |
| es1968 joystick 0 = disable (default), 1 = enable |
| sonicvibes N/A N/A |
| trident N/A N/A |
| via82xx(*1) joystick 0 = disable (default), 1 = enable |
| ymfpci joystick_port 0 = disable (default), 1 = auto-detect, |
| manual: 0x201, 0x202, 0x204, 0x205(*2) |
| --------------------------------------------------------------------------- |
| |
| *1) VIA686A/B only |
| *2) With YMF744/754 chips, the port address can be chosen arbitrarily |
| |
| The following drivers don't support gameport natively, but there are |
| additional modules. Load the corresponding module to add the gameport |
| support. |
| |
| Driver Additional Module |
| ----------------------------- |
| emu10k1 emu10k1-gp |
| fm801 fm801-gp |
| ----------------------------- |
| |
| Note: the "pcigame" and "cs461x" modules are for the OSS drivers only. |
| These ALSA drivers (cs46xx, trident and au88x0) have the |
| built-in gameport support. |
| |
| As mentioned above, ALSA PCI drivers have the built-in gameport |
| support, so you don't have to load ns558 module. Just load "joydev" |
| and the appropriate adapter module (e.g. "analog"). |
| |
| |
| ISA Cards |
| --------- |
| |
| ALSA ISA drivers don't have the built-in gameport support. |
| Instead, you need to load "ns558" module in addition to "joydev" and |
| the adapter module (e.g. "analog"). |