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