Rainbow Electronics AT91CAP9S250A User Manual
Page 630

630
6264A–CAP–21-May-07
AT91CAP9S500A/AT91CAP9S250A
This feature is implemented in AC97 modem codecs that need to report events such as Caller-
ID and wake-up on ring.
The AC97 Codec can drive AC97RX signal from low to high level and holding it high until the
controller issues either a cold or a worm reset. The AC97RX rising edge is asynchronously
(regarding AC97FS) detected by the AC’97 Controller. If WKUP bit is enabled in AC97C_IMR
register, an interrupt is triggered that wakes up the AC‘97 Controller which should then imme-
diately issue a cold or a warm reset.
If the processor needs to be awakened by an external event, the AC97RX signal must be
externally connected to the WAKEUP entry of the system controller.
Figure 37-7. AC’97 Power-Down/Up Sequence
37.6.4.3
AC97 Codec Reset
There are three ways to reset an AC97 Codec.
Cold AC’97 Reset
A cold reset is generated by asserting the RESET signal low for the minimum specified time
(depending on the AC97 Codec) and then by de-asserting RESET high. AC97CK and
AC97FS is reactivated and all AC97 Codec registers are set to their default power-on values.
Transfers on AC-link can resume.
The RESET signal will be controlled via a PIO line. This is how an application should perform
a cold reset:
• Clear and set ENA flag in the AC97C_MR register to reset the AC’97 Controller
• Clear PIO line output controlling the AC’97 RESET signal
• Wait for the minimum specified time
• Set PIO line output controlling the AC’97 RESET signal
AC97CK, the clock provided by AC97 Codec, is detected by the controller.
Warm AC’97 Reset
A warm reset reactivates the AC-link without altering AC97 Codec registers. A warm reset is
signaled by driving AC97FX signal high for a minimum of 1us in the absence of AC97CK. In
the absence of AC97CK, AC97FX is treated as an asynchronous (regarding AC97FX) input
used to signal a warm reset to AC97 Codec.
This is the right way to perform a warm reset:
• Set WRST in the AC97C_MR register.
AC97CK
AC97FS
TAG
Write to
0x26
Data
PR4
Power Down Frame
Sleep State
TAG
Write to
0x26
Data
PR4
Wake Event
Warm Reset
New Audio Frame
TAG
Slot1
Slot2
AC97TX
AC97RX
TAG
Slot1
Slot2