diff options
-rw-r--r-- | arch/arm/mach-mx3/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-mx3/mx31lite-db.c | 71 | ||||
-rw-r--r-- | arch/arm/mach-mx3/mx31lite.c | 36 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/board-mx31lite.h | 39 |
4 files changed, 121 insertions, 27 deletions
diff --git a/arch/arm/mach-mx3/Makefile b/arch/arm/mach-mx3/Makefile index 6b9775471be6..ed492d32b664 100644 --- a/arch/arm/mach-mx3/Makefile +++ b/arch/arm/mach-mx3/Makefile | |||
@@ -9,7 +9,7 @@ obj-$(CONFIG_ARCH_MX31) += clock.o iomux.o | |||
9 | obj-$(CONFIG_ARCH_MX35) += clock-imx35.o | 9 | obj-$(CONFIG_ARCH_MX35) += clock-imx35.o |
10 | obj-$(CONFIG_MACH_MX31ADS) += mx31ads.o | 10 | obj-$(CONFIG_MACH_MX31ADS) += mx31ads.o |
11 | obj-$(CONFIG_MACH_MX31LILLY) += mx31lilly.o mx31lilly-db.o | 11 | obj-$(CONFIG_MACH_MX31LILLY) += mx31lilly.o mx31lilly-db.o |
12 | obj-$(CONFIG_MACH_MX31LITE) += mx31lite.o | 12 | obj-$(CONFIG_MACH_MX31LITE) += mx31lite.o mx31lite-db.o |
13 | obj-$(CONFIG_MACH_PCM037) += pcm037.o | 13 | obj-$(CONFIG_MACH_PCM037) += pcm037.o |
14 | obj-$(CONFIG_MACH_PCM037_EET) += pcm037_eet.o | 14 | obj-$(CONFIG_MACH_PCM037_EET) += pcm037_eet.o |
15 | obj-$(CONFIG_MACH_MX31_3DS) += mx31pdk.o | 15 | obj-$(CONFIG_MACH_MX31_3DS) += mx31pdk.o |
diff --git a/arch/arm/mach-mx3/mx31lite-db.c b/arch/arm/mach-mx3/mx31lite-db.c new file mode 100644 index 000000000000..751d15ec0b03 --- /dev/null +++ b/arch/arm/mach-mx3/mx31lite-db.c | |||
@@ -0,0 +1,71 @@ | |||
1 | /* | ||
2 | * LogicPD i.MX31 SOM-LV development board support | ||
3 | * | ||
4 | * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de> | ||
5 | * | ||
6 | * based on code for other MX31 boards, | ||
7 | * | ||
8 | * Copyright 2005-2007 Freescale Semiconductor | ||
9 | * Copyright (c) 2009 Alberto Panizzo <maramaopercheseimorto@gmail.com> | ||
10 | * Copyright (C) 2009 Valentin Longchamp, EPFL Mobots group | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify | ||
13 | * it under the terms of the GNU General Public License as published by | ||
14 | * the Free Software Foundation; either version 2 of the License, or | ||
15 | * (at your option) any later version. | ||
16 | * | ||
17 | * This program is distributed in the hope that it will be useful, | ||
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
20 | * GNU General Public License for more details. | ||
21 | * | ||
22 | * You should have received a copy of the GNU General Public License | ||
23 | * along with this program; if not, write to the Free Software | ||
24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
25 | */ | ||
26 | |||
27 | #include <linux/kernel.h> | ||
28 | #include <linux/types.h> | ||
29 | #include <linux/init.h> | ||
30 | #include <linux/gpio.h> | ||
31 | |||
32 | #include <asm/mach-types.h> | ||
33 | #include <asm/mach/arch.h> | ||
34 | #include <asm/mach/map.h> | ||
35 | |||
36 | #include <mach/hardware.h> | ||
37 | #include <mach/common.h> | ||
38 | #include <mach/imx-uart.h> | ||
39 | #include <mach/iomux-mx3.h> | ||
40 | #include <mach/board-mx31lite.h> | ||
41 | |||
42 | #include "devices.h" | ||
43 | |||
44 | /* | ||
45 | * This file contains board-specific initialization routines for the | ||
46 | * LogicPD i.MX31 SOM-LV development board, aka 'LiteKit'. | ||
47 | * If you design an own baseboard for the module, use this file as base | ||
48 | * for support code. | ||
49 | */ | ||
50 | |||
51 | static unsigned int litekit_db_board_pins[] __initdata = { | ||
52 | /* UART1 */ | ||
53 | MX31_PIN_CTS1__CTS1, | ||
54 | MX31_PIN_RTS1__RTS1, | ||
55 | MX31_PIN_TXD1__TXD1, | ||
56 | MX31_PIN_RXD1__RXD1, | ||
57 | }; | ||
58 | |||
59 | /* UART */ | ||
60 | static struct imxuart_platform_data uart_pdata __initdata = { | ||
61 | .flags = IMXUART_HAVE_RTSCTS, | ||
62 | }; | ||
63 | |||
64 | void __init mx31lite_db_init(void) | ||
65 | { | ||
66 | mxc_iomux_setup_multiple_pins(litekit_db_board_pins, | ||
67 | ARRAY_SIZE(litekit_db_board_pins), | ||
68 | "development board pins"); | ||
69 | mxc_register_device(&mxc_uart_device0, &uart_pdata); | ||
70 | } | ||
71 | |||
diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c index a8d57decdfdb..dc993a878161 100644 --- a/arch/arm/mach-mx3/mx31lite.c +++ b/arch/arm/mach-mx3/mx31lite.c | |||
@@ -42,23 +42,14 @@ | |||
42 | #include "devices.h" | 42 | #include "devices.h" |
43 | 43 | ||
44 | /* | 44 | /* |
45 | * This file contains the board-specific initialization routines. | 45 | * This file contains the module-specific initialization routines. |
46 | */ | 46 | */ |
47 | 47 | ||
48 | static unsigned int mx31lite_pins[] = { | 48 | static unsigned int mx31lite_pins[] = { |
49 | /* UART1 */ | ||
50 | MX31_PIN_CTS1__CTS1, | ||
51 | MX31_PIN_RTS1__RTS1, | ||
52 | MX31_PIN_TXD1__TXD1, | ||
53 | MX31_PIN_RXD1__RXD1, | ||
54 | /* LAN9117 IRQ pin */ | 49 | /* LAN9117 IRQ pin */ |
55 | IOMUX_MODE(MX31_PIN_SFS6, IOMUX_CONFIG_GPIO), | 50 | IOMUX_MODE(MX31_PIN_SFS6, IOMUX_CONFIG_GPIO), |
56 | }; | 51 | }; |
57 | 52 | ||
58 | static struct imxuart_platform_data uart_pdata = { | ||
59 | .flags = IMXUART_HAVE_RTSCTS, | ||
60 | }; | ||
61 | |||
62 | static struct mxc_nand_platform_data mx31lite_nand_board_info = { | 53 | static struct mxc_nand_platform_data mx31lite_nand_board_info = { |
63 | .width = 1, | 54 | .width = 1, |
64 | .hw_ecc = 1, | 55 | .hw_ecc = 1, |
@@ -118,17 +109,27 @@ void __init mx31lite_map_io(void) | |||
118 | iotable_init(mx31lite_io_desc, ARRAY_SIZE(mx31lite_io_desc)); | 109 | iotable_init(mx31lite_io_desc, ARRAY_SIZE(mx31lite_io_desc)); |
119 | } | 110 | } |
120 | 111 | ||
121 | /* | 112 | static int mx31lite_baseboard; |
122 | * Board specific initialization. | 113 | core_param(mx31lite_baseboard, mx31lite_baseboard, int, 0444); |
123 | */ | 114 | |
124 | static void __init mxc_board_init(void) | 115 | static void __init mxc_board_init(void) |
125 | { | 116 | { |
126 | int ret; | 117 | int ret; |
127 | 118 | ||
119 | switch (mx31lite_baseboard) { | ||
120 | case MX31LITE_NOBOARD: | ||
121 | break; | ||
122 | case MX31LITE_DB: | ||
123 | mx31lite_db_init(); | ||
124 | break; | ||
125 | default: | ||
126 | printk(KERN_ERR "Illegal mx31lite_baseboard type %d\n", | ||
127 | mx31lite_baseboard); | ||
128 | } | ||
129 | |||
128 | mxc_iomux_setup_multiple_pins(mx31lite_pins, ARRAY_SIZE(mx31lite_pins), | 130 | mxc_iomux_setup_multiple_pins(mx31lite_pins, ARRAY_SIZE(mx31lite_pins), |
129 | "mx31lite"); | 131 | "mx31lite"); |
130 | 132 | ||
131 | mxc_register_device(&mxc_uart_device0, &uart_pdata); | ||
132 | mxc_register_device(&mxc_nand_device, &mx31lite_nand_board_info); | 133 | mxc_register_device(&mxc_nand_device, &mx31lite_nand_board_info); |
133 | 134 | ||
134 | /* SMSC9117 IRQ pin */ | 135 | /* SMSC9117 IRQ pin */ |
@@ -150,12 +151,7 @@ struct sys_timer mx31lite_timer = { | |||
150 | .init = mx31lite_timer_init, | 151 | .init = mx31lite_timer_init, |
151 | }; | 152 | }; |
152 | 153 | ||
153 | /* | 154 | MACHINE_START(MX31LITE, "LogicPD i.MX31 SOM") |
154 | * The following uses standard kernel macros defined in arch.h in order to | ||
155 | * initialize __mach_desc_MX31LITE data structure. | ||
156 | */ | ||
157 | |||
158 | MACHINE_START(MX31LITE, "LogicPD MX31 LITEKIT") | ||
159 | /* Maintainer: Freescale Semiconductor, Inc. */ | 155 | /* Maintainer: Freescale Semiconductor, Inc. */ |
160 | .phys_io = AIPS1_BASE_ADDR, | 156 | .phys_io = AIPS1_BASE_ADDR, |
161 | .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc, | 157 | .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc, |
diff --git a/arch/arm/plat-mxc/include/mach/board-mx31lite.h b/arch/arm/plat-mxc/include/mach/board-mx31lite.h index 8e64325d6905..0184b638c268 100644 --- a/arch/arm/plat-mxc/include/mach/board-mx31lite.h +++ b/arch/arm/plat-mxc/include/mach/board-mx31lite.h | |||
@@ -1,15 +1,42 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright 2007 Freescale Semiconductor, Inc. All Rights Reserved. | 2 | * Copyright 2007 Freescale Semiconductor, Inc. All Rights Reserved. |
3 | * Copyright (C) 2009 Daniel Mack <daniel@caiaq.de> | ||
4 | * | ||
5 | * Based on code for mobots boards, | ||
6 | * Copyright (C) 2009 Valentin Longchamp, EPFL Mobots group | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License | ||
10 | * as published by the Free Software Foundation; either version 2 | ||
11 | * of the License, or (at your option) any later version. | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
20 | * MA 02110-1301, USA. | ||
3 | */ | 21 | */ |
4 | 22 | ||
23 | #ifndef __ASM_ARCH_MXC_BOARD_MX31LITE_H__ | ||
24 | #define __ASM_ARCH_MXC_BOARD_MX31LITE_H__ | ||
25 | |||
26 | #ifndef __ASSEMBLY__ | ||
27 | |||
28 | enum mx31lilly_boards { | ||
29 | MX31LITE_NOBOARD = 0, | ||
30 | MX31LITE_DB = 1, | ||
31 | }; | ||
32 | |||
5 | /* | 33 | /* |
6 | * This program is free software; you can redistribute it and/or modify | 34 | * This CPU module needs a baseboard to work. After basic initializing |
7 | * it under the terms of the GNU General Public License version 2 as | 35 | * its own devices, it calls baseboard's init function. |
8 | * published by the Free Software Foundation. | ||
9 | */ | 36 | */ |
10 | 37 | ||
11 | #ifndef __ASM_ARCH_MXC_BOARD_MX31LITE_H__ | 38 | extern void mx31lite_db_init(void); |
12 | #define __ASM_ARCH_MXC_BOARD_MX31LITE_H__ | ||
13 | 39 | ||
14 | #endif /* __ASM_ARCH_MXC_BOARD_MX31LITE_H__ */ | 40 | #endif |
15 | 41 | ||
42 | #endif /* __ASM_ARCH_MXC_BOARD_MX31LITE_H__ */ | ||