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__ */ | ||
