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