Lines Matching +full:last +full:- +full:interrupt +full:- +full:source

1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * linux/arch/arm/mach-omap1/ams-delta-fiq-handler.S
14 #include <linux/platform_data/ams-delta-fiq.h>
15 #include <linux/platform_data/gpio-omap.h>
16 #include <linux/soc/ti/omap1-io.h>
22 #include "ams-delta-fiq.h"
23 #include "board-ams-delta.h"
27 * OMAP1510 GPIO related symbol copied from arch/arm/mach-omap1/gpio15xx.c.
79 * r8 - temporary
80 * r9 - the driver buffer
81 * r10 - temporary
82 * r11 - interrupts mask
83 * r12 - base pointers
84 * r13 - interrupts status
99 bics r13, r13, r11 @ clear masked - any left?
100 beq exit @ none - spurious FIQ? exit
102 ldr r10, [r12, #IRQ_SIR_FIQ_REG_OFFSET] @ get requested interrupt number
107 cmp r10, #(INT_GPIO_BANK1 - NR_IRQS_LEGACY) @ is it GPIO interrupt?
108 beq gpio @ yes - process it
111 orr r8, r11, r8, lsl r10 @ mask spurious interrupt
119 gpio: @ GPIO bank interrupt handler
125 bics r13, r13, r11 @ clear masked - any left?
126 beq exit @ no - spurious interrupt? exit
133 ands r10, r13, #KEYBRD_CLK_MASK @ extract keyboard status - set?
134 beq hksw @ no - try next source
138 @ Keyboard clock FIQ mode interrupt handler
148 bne data @ no - go to data processing
150 ands r8, r8, #KEYBRD_DATA_MASK @ check start bit - detected?
151 beq hksw @ no - try next source
171 ldreq r8, [r9, #BUF_KEY] @ yes - fetch collected so far,
177 strne r10, [r9, #BUF_MASK] @ not yet - store the mask
183 @ Key done - restore interrupt mask
192 beq hksw @ yes - key lost, next source
200 moveq r10, #0 @ yes - rewind to buffer start
204 ldr r8, [r9, #BUF_KEY] @ get last keycode
216 hksw: @Is hook switch interrupt requested?
218 beq mdm @ no - try next source
222 @ Hook switch interrupt FIQ mode simple handler
226 @ Increment hook switch interrupt counter
233 mdm: @Is it a modem interrupt?
235 beq irq @ no - check for next interrupt
239 @ Modem FIQ mode interrupt handler stub
241 @ Increment modem interrupt counter
248 irq: @ Place deferred_fiq interrupt request
254 b restart @ check for next GPIO interrupt
273 .if (qwerty_fiqin_end - qwerty_fiqin_start) > (0x200 - 0x1c)