OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [Documentation/] [sound/] [OPL3-SA2] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
Documentation for the OPL3-SA2, SA3, and SAx driver (opl3sa2.o)
2
---------------------------------------------------------------
3
 
4
Scott Murray, scott@spiteful.org
5
January 7, 2001
6
 
7
NOTE: All trade-marked terms mentioned below are properties of their
8
      respective owners.
9
 
10
 
11
Supported Devices
12
-----------------
13
 
14
This driver is for PnP soundcards based on the following Yamaha audio
15
controller chipsets:
16
 
17
YMF711 aka OPL3-SA2
18
YMF715 and YMF719 aka OPL3-SA3
19
 
20
Up until recently (December 2000), I'd thought the 719 to be a
21
different chipset, the OPL3-SAx.  After an email exhange with
22
Yamaha, however, it turns out that the 719 is just a re-badged
23
715, and the chipsets are identical.  The chipset detection code
24
has been updated to reflect this.
25
 
26
Anyways, all of these chipsets implement the following devices:
27
 
28
OPL3 FM synthesizer
29
Soundblaster Pro
30
Microsoft/Windows Sound System
31
MPU401 MIDI interface
32
 
33
Note that this driver uses the MSS device, and to my knowledge these
34
chipsets enforce an either/or situation with the Soundblaster Pro
35
device and the MSS device.  Since the MSS device has better
36
capabilities, I have implemented the driver to use it.
37
 
38
 
39
Mixer Channels
40
--------------
41
 
42
Older versions of this driver (pre-December 2000) had two mixers,
43
an OPL3-SA2 or SA3 mixer and a MSS mixer.  The OPL3-SA[23] mixer
44
device contained a superset of mixer channels consisting of its own
45
channels and all of the MSS mixer channels.  To simplify the driver
46
considerably, and to partition functionality better, the OPL3-SA[23]
47
mixer device now contains has its own specific mixer channels.  They
48
are:
49
 
50
Volume     - Hardware master volume control
51
Bass       - SA3 only, now supports left and right channels
52
Treble     - SA3 only, now supports left and right channels
53
Microphone - Hardware microphone input volume control
54
Digital1   - Yamaha 3D enhancement "Wide" mixer
55
 
56
All other mixer channels (e.g. "PCM", "CD", etc.) now have to be
57
controlled via the "MS Sound System (CS4231)" mixer.  To facilitate
58
this, the mixer device creation order has been switched so that
59
the MSS mixer is created first.  This allows accessing the majority
60
of the useful mixer channels even via single mixer-aware tools
61
such as "aumix".
62
 
63
 
64
Plug 'n Play
65
------------
66
 
67
In previous kernels (2.2.x), some configuration was required to
68
get the driver to talk to the card.  Being the new millennium and
69
all, the 2.4.x kernels now support auto-configuration if ISA PnP
70
support is configured in.  Theoretically, the driver even supports
71
having more than one card in this case.
72
 
73
With the addition of PnP support to the driver, two new parameters
74
have been added to control it:
75
 
76
isapnp   - set to 0 to disable ISA PnP card detection
77
 
78
multiple - set to 0 to disable multiple PnP card detection
79
 
80
 
81
Optional Parameters
82
-------------------
83
 
84
Recent (December 2000) additions to the driver (based on a patch
85
provided by Peter Englmaier) are two new parameters:
86
 
87
ymode -    Set Yamaha 3D enhancement mode:
88
 
89
           1 = Notebook PC (1) 3 cm speakers
90
           2 = Notebook PC (2) 1.5 cm speakers
91
           3 = Hi-Fi           16-38 cm speakers
92
 
93
loopback - Set A/D input source. Useful for echo cancellation:
94
 
95
           1 = Mono output loopback
96
 
97
The ymode parameter has been tested and does work.  The loopback
98
parameter, however, is untested.  Any feedback on its usefulness
99
would be appreciated.
100
 
101
 
102
Manual Configuration
103
--------------------
104
 
105
If for some reason you decide not to compile ISA PnP support into
106
your kernel, or disabled the driver's usage of it by setting the
107
isapnp parameter as discussed above, then you will need to do some
108
manual configuration.  There are two ways of doing this.  The most
109
common is to use the isapnptools package to initialize the card, and
110
use the kernel module form of the sound subsystem and sound drivers.
111
Alternatively, some BIOS's allow manual configuration of installed
112
PnP devices in a BIOS menu, which should allow using the non-modular
113
sound drivers, i.e. built into the kernel.
114
 
115
I personally use isapnp and modules, and do not have access to a PnP
116
BIOS machine to test.  If you have such a beast, configuring the
117
driver to be built into the kernel should just work (thanks to work
118
done by David Luyer ).  You will still need
119
to specify settings, which can be done by adding:
120
 
121
opl3sa2=,,,,,
122
 
123
to the kernel command line.  For example:
124
 
125
opl3sa2=0x370,5,0,1,0x530,0x330
126
 
127
If you are instead using the isapnp tools (as most people have been
128
before Linux 2.4.x), follow the directions in their documentation to
129
produce a configuration file.  Here is the relevant excerpt I used to
130
use for my SA3 card from my isapnp.conf:
131
 
132
(CONFIGURE YMH0800/-1 (LD 0
133
 
134
# NOTE: IO 0 is for the unused SoundBlaster part of the chipset.
135
(IO 0 (BASE 0x0220))
136
(IO 1 (BASE 0x0530))
137
(IO 2 (BASE 0x0388))
138
(IO 3 (BASE 0x0330))
139
(IO 4 (BASE 0x0370))
140
(INT 0 (IRQ 5 (MODE +E)))
141
(DMA 0 (CHANNEL 0))
142
(DMA 1 (CHANNEL 1))
143
 
144
Here, note that:
145
 
146
Port  Acceptable Range  Purpose
147
----  ----------------  -------
148
IO 0  0x0220 - 0x0280   SB base address, unused.
149
IO 1  0x0530 - 0x0F48   MSS base address
150
IO 2  0x0388 - 0x03F8   OPL3 base address
151
IO 3  0x0300 - 0x0334   MPU base address
152
IO 4  0x0100 - 0x0FFE   card's own base address for its control I/O ports
153
 
154
The IRQ and DMA values can be any that are considered acceptable for a
155
MSS.  Assuming you've got isapnp all happy, then you should be able to
156
do something like the following (which matches up with the isapnp
157
configuration above):
158
 
159
modprobe mpu401
160
modprobe ad1848
161
modprobe opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=0 dma2=1
162
modprobe opl3 io=0x388
163
 
164
See the section "Automatic Module Loading" below for how to set up
165
/etc/modules.conf to automate this.
166
 
167
An important thing to remember that the opl3sa2 module's io argument is
168
for it's own control port, which handles the card's master mixer for
169
volume (on all cards), and bass and treble (on SA3 cards).
170
 
171
 
172
Troubleshooting
173
---------------
174
 
175
If all goes well and you see no error messages, you should be able to
176
start using the sound capabilities of your system.  If you get an
177
error message while trying to insert the opl3sa2 module, then make
178
sure that the values of the various arguments match what you specified
179
in your isapnp configuration file, and that there is no conflict with
180
another device for an I/O port or interrupt.  Checking the contents of
181
/proc/ioports and /proc/interrupts can be useful to see if you're
182
butting heads with another device.
183
 
184
If you still cannot get the module to load, look at the contents of
185
your system log file, usually /var/log/messages.  If you see the
186
message "opl3sa2: Unknown Yamaha audio controller version", then you
187
have a different chipset version than I've encountered so far.  Look
188
for all messages in the log file that start with "opl3sa2: " and see
189
if they provide any clues.  If you do not see the chipset version
190
message, and none of the other messages present in the system log are
191
helpful, email me some details and I'll try my best to help.
192
 
193
 
194
Automatic Module Loading
195
------------------------
196
 
197
Lastly, if you're using modules and want to set up automatic module
198
loading with kmod, the kernel module loader, here is the section I
199
currently use in my modules.conf file:
200
 
201
# Sound
202
alias sound-slot-0 opl3sa2
203
options opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=7 dma=0 dma2=3
204
options opl3 io=0x388
205
 
206
That's all it currently takes to get an OPL3-SA3 card working on my
207
system.  Once again, if you have any other problems, email me at the
208
address listed above.
209
 
210
Scott

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.