1053
11028E–ATARM–22-Apr-13
SAM9G46
44.7.3
AC97 Controller Channel Organization
The AC97 Controller features a Codec channel and 2 logical channels: Channel A, Channel B.
The Codec channel controls AC97 Codec registers, it enables write and read configuration val-
ues in order to bring the AC97 Codec to an operating state. The Codec channel always runs slot
1 and slot 2 exclusively, in both input and output directions.
Channel A, Channel B transfer data to/from AC97 codec. All audio samples and modem data
must transit by these 2 channels. However, Channels A and B are connected to PDC channels
thus making it suitable for audio streaming applications.
Each slot of the input or the output frame that belongs to this range [3 to 12] can be operated by
Channel A or Channel B . The slot to channel assignment is configured by two registers:
AC97 Controller Input Channel Assignment Register (AC97C_ICA)
AC97 Controller Output Channel Assignment Register (AC97C_OCA)
The AC97 Controller Input Channel Assignment Register (AC97C_ICA) configures the input slot
to channel assignment. The AC97 Controller Output Channel Assignment Register
(AC97C_OCA) configures the output slot to channel assignment.
A slot can be left unassigned to a channel by the AC97 Controller. Slots 0, 1,and 2 cannot be
assigned to Channel A or to Channel Bthrough the AC97C_OCA and AC97C_ICA Registers.
The width of sample data, that transit via the Channel varies and can take one of these values;
10, 16, 18 or 20 bits.
Figure 44-4. Logical Channel Assignment
Slot #
AC97FS
TAG
CMD
DATA
0
AC97TX
(Controller Output)
AC97RX
(Codec output)
PCM
L Front
PCM
R Front
LINE 1
DAC
PCM
Center
PCM
L SURR
PCM
R SURR
PCM
LFE
LINE 2
DAC
HSET
DAC
IO
CTRL
TAG
STATUS
ADDR
STATUS
DATA
PCM
LEFT
PCM
RIGHT
LINE 1
DAC
PCM
MIC
RSVED
LINE 2
ADC
HSET
ADC
IO
STATUS
12
3
4
56
7
8
9
10
11
12
Codec Channel
Channel A
Codec Channel
Channel A
AC97C_OCA = 0x0000_0209
AC97C_ICA = 0x0000_0009
CMD
ADDR