diff options
author | Daniel Mack <daniel@caiaq.de> | 2009-11-19 06:02:06 -0500 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-11-19 11:11:01 -0500 |
commit | b7d91a62cb402a3d24a15dca9d2b0c309c4227b4 (patch) | |
tree | 835bde38de5f8af81d94a0c8c6afdfdc8baf896c /arch/arm/mach-mx3/mx31lite.c | |
parent | 3f92a8bd5fb13e7e2505c65d1548910eaa843024 (diff) |
ARM: MX3: modularize 'mx31lite' code
This commit splits the support code for LogicPD's mx31lite hardware
into module and board specific parts.
This introduces a new mandatory coreparam called 'mx31lite_baseboard'
which specifies the base board support to use. For now, only the LiteKit
development board is supported, and developers of own boards are
encouraged to use that as reference.
The UART support moved to the board code.
Some comments were amended along the way.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-mx3/mx31lite.c')
-rw-r--r-- | arch/arm/mach-mx3/mx31lite.c | 36 |
1 files changed, 16 insertions, 20 deletions
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, |