xref: /rk3399_rockchip-uboot/arch/m68k/cpu/mcf5445x/interrupts.c (revision 198cafbf2cab9851ee5dd8d24d268d0ccc0fe3bd)
1a4145534SPeter Tyser /*
2a4145534SPeter Tyser  *
3a4145534SPeter Tyser  * (C) Copyright 2000-2004
4a4145534SPeter Tyser  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5a4145534SPeter Tyser  *
6*198cafbfSAlison Wang  * Copyright (C) 2004-2007, 2012 Freescale Semiconductor, Inc.
7a4145534SPeter Tyser  * TsiChung Liew (Tsi-Chung.Liew@freescale.com)
8a4145534SPeter Tyser  *
9a4145534SPeter Tyser  * See file CREDITS for list of people who contributed to this
10a4145534SPeter Tyser  * project.
11a4145534SPeter Tyser  *
12a4145534SPeter Tyser  * This program is free software; you can redistribute it and/or
13a4145534SPeter Tyser  * modify it under the terms of the GNU General Public License as
14a4145534SPeter Tyser  * published by the Free Software Foundation; either version 2 of
15a4145534SPeter Tyser  * the License, or (at your option) any later version.
16a4145534SPeter Tyser  *
17a4145534SPeter Tyser  * This program is distributed in the hope that it will be useful,
18a4145534SPeter Tyser  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19a4145534SPeter Tyser  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20a4145534SPeter Tyser  * GNU General Public License for more details.
21a4145534SPeter Tyser  *
22a4145534SPeter Tyser  * You should have received a copy of the GNU General Public License
23a4145534SPeter Tyser  * along with this program; if not, write to the Free Software
24a4145534SPeter Tyser  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
25a4145534SPeter Tyser  * MA 02111-1307 USA
26a4145534SPeter Tyser  */
27a4145534SPeter Tyser 
28a4145534SPeter Tyser /* CPU specific interrupt routine */
29a4145534SPeter Tyser #include <common.h>
30a4145534SPeter Tyser #include <asm/immap.h>
31*198cafbfSAlison Wang #include <asm/io.h>
32a4145534SPeter Tyser 
33a4145534SPeter Tyser int interrupt_init(void)
34a4145534SPeter Tyser {
35*198cafbfSAlison Wang 	int0_t *intp = (int0_t *) (CONFIG_SYS_INTR_BASE);
36a4145534SPeter Tyser 
37a4145534SPeter Tyser 	/* Make sure all interrupts are disabled */
38*198cafbfSAlison Wang 	setbits_be32(&intp->imrh0, 0xffffffff);
39*198cafbfSAlison Wang 	setbits_be32(&intp->imrl0, 0xffffffff);
40a4145534SPeter Tyser 
41a4145534SPeter Tyser 	enable_interrupts();
42a4145534SPeter Tyser 	return 0;
43a4145534SPeter Tyser }
44a4145534SPeter Tyser 
45a4145534SPeter Tyser #if defined(CONFIG_MCFTMR)
46a4145534SPeter Tyser void dtimer_intr_setup(void)
47a4145534SPeter Tyser {
48*198cafbfSAlison Wang 	int0_t *intp = (int0_t *) (CONFIG_SYS_INTR_BASE);
49a4145534SPeter Tyser 
50*198cafbfSAlison Wang 	out_8(&intp->icr0[CONFIG_SYS_TMRINTR_NO], CONFIG_SYS_TMRINTR_PRI);
51*198cafbfSAlison Wang 	clrbits_be32(&intp->imrh0, CONFIG_SYS_TMRINTR_MASK);
52a4145534SPeter Tyser }
53a4145534SPeter Tyser #endif
54