Specifications

18 SAM0023-122898 ESS Technology, Inc.
ES1869 DATA SHEET
INTERRUPTS
Interrupt Mask Register
Port Config_Base+7h can be used to mask any of the
seven interrupt sources.
The mask bits can be used to force the interrupt source to
be zero, without putting the interrupt pin in a high-
impedance state. Each bit is AND'ed with the
corresponding interrupt source. This register is set to all
ones by hardware reset.
The Interrupt Status register (ISR) is not affected by the
state of the Interrupt Mask register (IMR). That is, the ISR
reflects the status of the interrupt request lines before
being masked by the IMR.
The IMR is useful when interrupts are shared. For
example, assume that Audio 1, Audio 2, Hardware
Volume, and MPU-401 all share the same interrupt in
Windows. When returning from Windows to DOS, the
Hardware Volume, MPU-401, and Audio 2 interrupts can
be masked by setting the appropriate bits to 0.
A second use is within an interrupt handler. The first thing
the interrupt handler can do is mask all the interrupt
sources mapped to the interrupt handler. Then, the ISR
can be polled to decide which sources to process. Just
before exiting the interrupt handler, the IMR can be
restored. If an unprocessed interrupt remains active, it
generates an interrupt request because the interrupt pin
was low during the masked period and then went high
when the interrupt sources were unmasked. Also, while
the interrupts are masked, the individual interrupt sources
can change state any number of times without generating
a false interrupt request.
Sharing Interrupts
Plug and Play does not allow sharing of interrupts in its
resource assignment decision making. If a device wants to
share an interrupt with another device that has been
assigned an interrupt by PnP, the first device cannot
request an interrupt for itself.
A logical device that supports interrupts can be assigned
to an interrupt after the PnP sequence by the Windows
driver. Refer to “Bypass Key” on page28 for information
on the PnP sequence. In this case, it would typically be
forced to share an interrupt with the first audio interrupt.
For all but two cases, this is done simply by programming
the appropriate PnP register (70h or 72h) for the selected
device. Below are the two exceptions:
The hardware volume interrupt. This interrupt source can
be assigned to an interrupt through Vendor-Defined
Card-Level register 27h.
The MPU-401 interrupt. This device is either part of the
audio device or its own logical device. If it is part of the
audio device, the interrupt can be assigned by writing to
Vendor-Defined Card-Level register 28h. If this device is
its own logical device, it is assigned an interrupt by either
register 28h or register 70h of LDN 3.