9.3.18 IRQs and Flags
Internal device flags such as over-current, under-voltage, etc can be routed to the interrupt. If more than one flag is asserted the interrupt output is the logical OR-ing of all flags. If multiple flags are asserted the host should then query the interrupts sticky register to determine which event triggered the interrupt. For example, to route the Brownout and Speaker Over Current flags to the IRQ pin the following register would be set INT_CFG_2=0x88.
Table 24. Interrupt Registers
Flag Description |
Sticky Register Bit |
Register to Enable Interrupt Mask |
Speaker Over Current |
INT_DET1[7] (INT_OVRC) |
INT_CFG_2[7] (INTM_OVRC) |
Speaker Over Voltage |
INT_DET1[6] (INT_OVRV) |
INT_CFG_2[6] (INTM_ORV) |
Clock Error Detection 1 |
INT_DET1[5] (INT_CLK1) |
INT_CFG_2[5] (INTM_CLK2) |
Over Temperature |
INT_DET1[4] (INT_OVRT) |
INT_CFG_2[4] (INTM_OVRT) |
Brownout |
INT_DET1[3] (INT_BRNO) |
INT_CFG_2[3] (INTM_BRNO) |
Clock Error Detection 2 |
INT_DET1[2] (INT_CLK2) |
INT_CFG_2[2] (INTM_CLK1) |
Clock Halt Word Clock |
INT_DET2[7] (INT_WCHLT) |
INT_CFG_2[1] (INTM_WCHLT) |
Clock Halt Modulator Clock |
INT_DET2[6] (INT_MCHLT) |
INT_CFG_2[0] (INTM_MCHLT) |
The IRQ pin will be low during normal operation and indicate an interrupt with a high signal output. The output drive options of the IRQ pin are shown in Table 25 and the output can be configured to support various use cases such as external HiZ for or-ing multiple parts are directly driving the high-low output. When an IRQ event occurs the IRQ can be set to toggle or pulse, see Table 28. Additionally the IRQ pin can be disabled, used as a register controlled general purpose output, or a clock pin in PDM mode of operation. The various modes are shown in Table 26. If using the IRQ pin as a general purpose output the value can be set per Table 27.
Table 25. IRQ Pin Drive
IRQ_PIN_CFG[7:5] (IRQ_DRIVE) |
Output Drive IRQ Pin |
001 |
Drive both high and low values |
010 |
Open Drain, low-actively driven, high-HiZ (default) |
011 |
Open Drain, low-actively driven, high-HiZ w/ pull-up |
100 |
Open Drain, low-HiZ w/ pull-down, high-actively driven |
101-111 |
Reserved |
Table 26. IRQ Pin Mode
IRQ_PIN_CFG[2:0] (IRQ_PIN_MODE) |
IRQ Pin Mode |
001 |
Disabled and IO buffers powered down |
010 |
Interrupt controlled output (default) |
011 |
Reserved |
100 |
General purpose output |
101 |
PDM_IN_DIV output |
110-111 |
Reserved |
Table 27. IRQ GPO Value
IRQ_PIN_CFG[4] (IRQ_GPO_VAL) |
IRQ Pin GPO Value |
0 |
low (default) |
1 |
high |
Table 28. IRQ Indicator Mode
INT_CFG_1[7:6] (IRQ_IND_CFG |
IRQ Pin Indicator Mode |
00 |
Interrupt will be only one pulse(active high) of duration 2 ms. (default) |
01 |
Interrupt will be continuously pulsed with a duration 2ms and period 4ms until interrupt sticky flags are cleared by reading INT_DET_1 and INT_DET_2 |
01 |
Interrupt will remain high after interrupt is generated until interrupt sticky flags are cleared by reading INT_DET_1 and INT_DET_2 |
11 |
Reserved |