| Paulius Zaleckas | cfca8b5 | 2008-11-14 11:01:38 +0100 | [diff] [blame] | 1 | /* | 
 | 2 |  *  author: Sascha Hauer | 
 | 3 |  *  Created: april 20th, 2004 | 
 | 4 |  *  Copyright: Synertronixx GmbH | 
 | 5 |  * | 
| Uwe Kleine-König | 0746949 | 2010-06-14 15:56:58 +0200 | [diff] [blame] | 6 |  *  Common code for i.MX1 machines | 
| Paulius Zaleckas | cfca8b5 | 2008-11-14 11:01:38 +0100 | [diff] [blame] | 7 |  * | 
 | 8 |  * This program is free software; you can redistribute it and/or modify | 
 | 9 |  * it under the terms of the GNU General Public License as published by | 
 | 10 |  * the Free Software Foundation; either version 2 of the License, or | 
 | 11 |  * (at your option) any later version. | 
 | 12 |  * | 
 | 13 |  * This program is distributed in the hope that it will be useful, | 
 | 14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 | 15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 | 16 |  * GNU General Public License for more details. | 
| Paulius Zaleckas | cfca8b5 | 2008-11-14 11:01:38 +0100 | [diff] [blame] | 17 |  */ | 
 | 18 | #include <linux/kernel.h> | 
 | 19 | #include <linux/init.h> | 
 | 20 | #include <linux/io.h> | 
 | 21 |  | 
 | 22 | #include <asm/mach/map.h> | 
 | 23 |  | 
| Sascha Hauer | 345569a | 2009-04-29 13:41:06 +0200 | [diff] [blame] | 24 | #include <mach/common.h> | 
| Paulius Zaleckas | cfca8b5 | 2008-11-14 11:01:38 +0100 | [diff] [blame] | 25 | #include <mach/hardware.h> | 
| Sascha Hauer | 5ae30b4 | 2011-02-17 14:43:48 +0100 | [diff] [blame] | 26 | #include <mach/gpio.h> | 
 | 27 | #include <mach/irqs.h> | 
| Sascha Hauer | ff255fe | 2011-02-17 15:08:12 +0100 | [diff] [blame] | 28 | #include <mach/iomux-v1.h> | 
| Paulius Zaleckas | cfca8b5 | 2008-11-14 11:01:38 +0100 | [diff] [blame] | 29 |  | 
 | 30 | static struct map_desc imx_io_desc[] __initdata = { | 
| Uwe Kleine-König | 08ff97b | 2010-10-25 15:38:09 +0200 | [diff] [blame] | 31 | 	imx_map_entry(MX1, IO, MT_DEVICE), | 
| Paulius Zaleckas | cfca8b5 | 2008-11-14 11:01:38 +0100 | [diff] [blame] | 32 | }; | 
 | 33 |  | 
| Sascha Hauer | cd4a05f | 2009-04-02 22:32:10 +0200 | [diff] [blame] | 34 | void __init mx1_map_io(void) | 
| Paulius Zaleckas | cfca8b5 | 2008-11-14 11:01:38 +0100 | [diff] [blame] | 35 | { | 
| Uwe Kleine-König | 3dac219 | 2011-02-07 16:35:19 +0100 | [diff] [blame] | 36 | 	iotable_init(imx_io_desc, ARRAY_SIZE(imx_io_desc)); | 
 | 37 | } | 
 | 38 |  | 
 | 39 | void __init imx1_init_early(void) | 
 | 40 | { | 
| Sascha Hauer | cd4a05f | 2009-04-02 22:32:10 +0200 | [diff] [blame] | 41 | 	mxc_set_cpu_type(MXC_CPU_MX1); | 
| Uwe Kleine-König | 05a3185 | 2010-03-04 21:02:41 +0100 | [diff] [blame] | 42 | 	mxc_arch_reset_init(MX1_IO_ADDRESS(MX1_WDT_BASE_ADDR)); | 
| Sascha Hauer | ff255fe | 2011-02-17 15:08:12 +0100 | [diff] [blame] | 43 | 	imx_iomuxv1_init(MX1_IO_ADDRESS(MX1_GPIO_BASE_ADDR), | 
 | 44 | 			MX1_NUM_GPIO_PORT); | 
| Paulius Zaleckas | cfca8b5 | 2008-11-14 11:01:38 +0100 | [diff] [blame] | 45 | } | 
| Sascha Hauer | c5aa0ad | 2009-05-25 17:36:19 +0200 | [diff] [blame] | 46 |  | 
| Sascha Hauer | 5ae30b4 | 2011-02-17 14:43:48 +0100 | [diff] [blame] | 47 | static struct mxc_gpio_port imx1_gpio_ports[] = { | 
 | 48 | 	DEFINE_IMX_GPIO_PORT_IRQ(MX1, 0, 1, MX1_GPIO_INT_PORTA), | 
 | 49 | 	DEFINE_IMX_GPIO_PORT_IRQ(MX1, 1, 2, MX1_GPIO_INT_PORTB), | 
 | 50 | 	DEFINE_IMX_GPIO_PORT_IRQ(MX1, 2, 3, MX1_GPIO_INT_PORTC), | 
 | 51 | 	DEFINE_IMX_GPIO_PORT_IRQ(MX1, 3, 4, MX1_GPIO_INT_PORTD), | 
 | 52 | }; | 
| Uwe Kleine-König | 9a763bf | 2010-06-10 17:11:06 +0200 | [diff] [blame] | 53 |  | 
| Sascha Hauer | c5aa0ad | 2009-05-25 17:36:19 +0200 | [diff] [blame] | 54 | void __init mx1_init_irq(void) | 
 | 55 | { | 
| Uwe Kleine-König | 05a3185 | 2010-03-04 21:02:41 +0100 | [diff] [blame] | 56 | 	mxc_init_irq(MX1_IO_ADDRESS(MX1_AVIC_BASE_ADDR)); | 
| Sascha Hauer | 5ae30b4 | 2011-02-17 14:43:48 +0100 | [diff] [blame] | 57 | 	mxc_gpio_init(imx1_gpio_ports,	ARRAY_SIZE(imx1_gpio_ports)); | 
| Sascha Hauer | c5aa0ad | 2009-05-25 17:36:19 +0200 | [diff] [blame] | 58 | } |