0001 =======================================
0002 Analog Joystick Support on ALSA Drivers
0003 =======================================
0004
0005 Oct. 14, 2003
0006
0007 Takashi Iwai <tiwai@suse.de>
0008
0009 General
0010 -------
0011
0012 First of all, you need to enable GAMEPORT support on Linux kernel for
0013 using a joystick with the ALSA driver. For the details of gameport
0014 support, refer to Documentation/input/joydev/joystick.rst.
0015
0016 The joystick support of ALSA drivers is different between ISA and PCI
0017 cards. In the case of ISA (PnP) cards, it's usually handled by the
0018 independent module (ns558). Meanwhile, the ALSA PCI drivers have the
0019 built-in gameport support. Hence, when the ALSA PCI driver is built
0020 in the kernel, CONFIG_GAMEPORT must be 'y', too. Otherwise, the
0021 gameport support on that card will be (silently) disabled.
0022
0023 Some adapter modules probe the physical connection of the device at
0024 the load time. It'd be safer to plug in the joystick device before
0025 loading the module.
0026
0027
0028 PCI Cards
0029 ---------
0030
0031 For PCI cards, the joystick is enabled when the appropriate module
0032 option is specified. Some drivers don't need options, and the
0033 joystick support is always enabled. In the former ALSA version, there
0034 was a dynamic control API for the joystick activation. It was
0035 changed, however, to the static module options because of the system
0036 stability and the resource management.
0037
0038 The following PCI drivers support the joystick natively.
0039
0040 ============== ============= ============================================
0041 Driver Module Option Available Values
0042 ============== ============= ============================================
0043 als4000 joystick_port 0 = disable (default), 1 = auto-detect,
0044 manual: any address (e.g. 0x200)
0045 au88x0 N/A N/A
0046 azf3328 joystick 0 = disable, 1 = enable, -1 = auto (default)
0047 ens1370 joystick 0 = disable (default), 1 = enable
0048 ens1371 joystick_port 0 = disable (default), 1 = auto-detect,
0049 manual: 0x200, 0x208, 0x210, 0x218
0050 cmipci joystick_port 0 = disable (default), 1 = auto-detect,
0051 manual: any address (e.g. 0x200)
0052 cs4281 N/A N/A
0053 cs46xx N/A N/A
0054 es1938 N/A N/A
0055 es1968 joystick 0 = disable (default), 1 = enable
0056 sonicvibes N/A N/A
0057 trident N/A N/A
0058 via82xx [#f1]_ joystick 0 = disable (default), 1 = enable
0059 ymfpci joystick_port 0 = disable (default), 1 = auto-detect,
0060 manual: 0x201, 0x202, 0x204, 0x205 [#f2]_
0061 ============== ============= ============================================
0062
0063 .. [#f1] VIA686A/B only
0064 .. [#f2] With YMF744/754 chips, the port address can be chosen arbitrarily
0065
0066 The following drivers don't support gameport natively, but there are
0067 additional modules. Load the corresponding module to add the gameport
0068 support.
0069
0070 ======= =================
0071 Driver Additional Module
0072 ======= =================
0073 emu10k1 emu10k1-gp
0074 fm801 fm801-gp
0075 ======= =================
0076
0077 Note: the "pcigame" and "cs461x" modules are for the OSS drivers only.
0078 These ALSA drivers (cs46xx, trident and au88x0) have the
0079 built-in gameport support.
0080
0081 As mentioned above, ALSA PCI drivers have the built-in gameport
0082 support, so you don't have to load ns558 module. Just load "joydev"
0083 and the appropriate adapter module (e.g. "analog").
0084
0085
0086 ISA Cards
0087 ---------
0088
0089 ALSA ISA drivers don't have the built-in gameport support.
0090 Instead, you need to load "ns558" module in addition to "joydev" and
0091 the adapter module (e.g. "analog").