162306a36Sopenharmony_ci======================================= 262306a36Sopenharmony_ciAnalog Joystick Support on ALSA Drivers 362306a36Sopenharmony_ci======================================= 462306a36Sopenharmony_ci 562306a36Sopenharmony_ciOct. 14, 2003 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciTakashi Iwai <tiwai@suse.de> 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciGeneral 1062306a36Sopenharmony_ci------- 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciFirst of all, you need to enable GAMEPORT support on Linux kernel for 1362306a36Sopenharmony_ciusing a joystick with the ALSA driver. For the details of gameport 1462306a36Sopenharmony_cisupport, refer to Documentation/input/joydev/joystick.rst. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciThe joystick support of ALSA drivers is different between ISA and PCI 1762306a36Sopenharmony_cicards. In the case of ISA (PnP) cards, it's usually handled by the 1862306a36Sopenharmony_ciindependent module (ns558). Meanwhile, the ALSA PCI drivers have the 1962306a36Sopenharmony_cibuilt-in gameport support. Hence, when the ALSA PCI driver is built 2062306a36Sopenharmony_ciin the kernel, CONFIG_GAMEPORT must be 'y', too. Otherwise, the 2162306a36Sopenharmony_cigameport support on that card will be (silently) disabled. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciSome adapter modules probe the physical connection of the device at 2462306a36Sopenharmony_cithe load time. It'd be safer to plug in the joystick device before 2562306a36Sopenharmony_ciloading the module. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciPCI Cards 2962306a36Sopenharmony_ci--------- 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciFor PCI cards, the joystick is enabled when the appropriate module 3262306a36Sopenharmony_cioption is specified. Some drivers don't need options, and the 3362306a36Sopenharmony_cijoystick support is always enabled. In the former ALSA version, there 3462306a36Sopenharmony_ciwas a dynamic control API for the joystick activation. It was 3562306a36Sopenharmony_cichanged, however, to the static module options because of the system 3662306a36Sopenharmony_cistability and the resource management. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciThe following PCI drivers support the joystick natively. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci============== ============= ============================================ 4162306a36Sopenharmony_ciDriver Module Option Available Values 4262306a36Sopenharmony_ci============== ============= ============================================ 4362306a36Sopenharmony_cials4000 joystick_port 0 = disable (default), 1 = auto-detect, 4462306a36Sopenharmony_ci manual: any address (e.g. 0x200) 4562306a36Sopenharmony_ciau88x0 N/A N/A 4662306a36Sopenharmony_ciazf3328 joystick 0 = disable, 1 = enable, -1 = auto (default) 4762306a36Sopenharmony_ciens1370 joystick 0 = disable (default), 1 = enable 4862306a36Sopenharmony_ciens1371 joystick_port 0 = disable (default), 1 = auto-detect, 4962306a36Sopenharmony_ci manual: 0x200, 0x208, 0x210, 0x218 5062306a36Sopenharmony_cicmipci joystick_port 0 = disable (default), 1 = auto-detect, 5162306a36Sopenharmony_ci manual: any address (e.g. 0x200) 5262306a36Sopenharmony_cics4281 N/A N/A 5362306a36Sopenharmony_cics46xx N/A N/A 5462306a36Sopenharmony_cies1938 N/A N/A 5562306a36Sopenharmony_cies1968 joystick 0 = disable (default), 1 = enable 5662306a36Sopenharmony_cisonicvibes N/A N/A 5762306a36Sopenharmony_citrident N/A N/A 5862306a36Sopenharmony_civia82xx [#f1]_ joystick 0 = disable (default), 1 = enable 5962306a36Sopenharmony_ciymfpci joystick_port 0 = disable (default), 1 = auto-detect, 6062306a36Sopenharmony_ci manual: 0x201, 0x202, 0x204, 0x205 [#f2]_ 6162306a36Sopenharmony_ci============== ============= ============================================ 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci.. [#f1] VIA686A/B only 6462306a36Sopenharmony_ci.. [#f2] With YMF744/754 chips, the port address can be chosen arbitrarily 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciThe following drivers don't support gameport natively, but there are 6762306a36Sopenharmony_ciadditional modules. Load the corresponding module to add the gameport 6862306a36Sopenharmony_cisupport. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci======= ================= 7162306a36Sopenharmony_ciDriver Additional Module 7262306a36Sopenharmony_ci======= ================= 7362306a36Sopenharmony_ciemu10k1 emu10k1-gp 7462306a36Sopenharmony_cifm801 fm801-gp 7562306a36Sopenharmony_ci======= ================= 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciNote: the "pcigame" and "cs461x" modules are for the OSS drivers only. 7862306a36Sopenharmony_ciThese ALSA drivers (cs46xx, trident and au88x0) have the 7962306a36Sopenharmony_cibuilt-in gameport support. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ciAs mentioned above, ALSA PCI drivers have the built-in gameport 8262306a36Sopenharmony_cisupport, so you don't have to load ns558 module. Just load "joydev" 8362306a36Sopenharmony_ciand the appropriate adapter module (e.g. "analog"). 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ciISA Cards 8762306a36Sopenharmony_ci--------- 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ciALSA ISA drivers don't have the built-in gameport support. 9062306a36Sopenharmony_ciInstead, you need to load "ns558" module in addition to "joydev" and 9162306a36Sopenharmony_cithe adapter module (e.g. "analog"). 92