1/*
2 * Low-level IRQ helper macros for Freescale MXS-based
3 *
4 * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */
20
21#include <mach/mxs.h>
22
23#define MXS_ICOLL_VBASE		MXS_IO_ADDRESS(MXS_ICOLL_BASE_ADDR)
24#define HW_ICOLL_STAT_OFFSET	0x70
25
26	.macro	disable_fiq
27	.endm
28
29	.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp
30	ldr	\irqnr, [\base, #HW_ICOLL_STAT_OFFSET]
31	cmp	\irqnr, #0x7F
32	strne	\irqnr, [\base]
33	moveqs	\irqnr, #0
34	.endm
35
36	.macro  get_irqnr_preamble, base, tmp
37	ldr	\base, =MXS_ICOLL_VBASE
38	.endm
39
40	.macro  arch_ret_to_user, tmp1, tmp2
41	.endm
42