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