From cd4a05f9df859e7cd2efa96e035444a3decb427a Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 2 Apr 2009 22:32:10 +0200 Subject: MXC: rename mxc_map_io to architecture specific versions This allows us to have more mapping functions for more than one i.MX architecture in the kernel. As this is the earliest board specific hook we have, also use it to set the cpu type. Signed-off-by: Sascha Hauer --- arch/arm/mach-mx3/mx31lite.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/arm/mach-mx3/mx31lite.c') diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c index 894d98cd994..76b36da9223 100644 --- a/arch/arm/mach-mx3/mx31lite.c +++ b/arch/arm/mach-mx3/mx31lite.c @@ -59,7 +59,7 @@ static struct map_desc mx31lite_io_desc[] __initdata = { */ void __init mx31lite_map_io(void) { - mxc_map_io(); + mx31_map_io(); iotable_init(mx31lite_io_desc, ARRAY_SIZE(mx31lite_io_desc)); } -- cgit v1.2.3 From a854b8ab987b29fd3b1ae286f41f04973f9edbac Mon Sep 17 00:00:00 2001 From: Magnus Lilja Date: Tue, 14 Apr 2009 22:00:03 +0200 Subject: i.MX31: Add UART1 device to Litekit board. Signed-off-by: Magnus Lilja Signed-off-by: Sascha Hauer --- arch/arm/mach-mx3/mx31lite.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'arch/arm/mach-mx3/mx31lite.c') diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c index 76b36da9223..abe6ca39853 100644 --- a/arch/arm/mach-mx3/mx31lite.c +++ b/arch/arm/mach-mx3/mx31lite.c @@ -32,11 +32,26 @@ #include #include #include +#include +#include +#include "devices.h" /* * This file contains the board-specific initialization routines. */ +static unsigned int mx31lite_pins[] = { + /* UART1 */ + MX31_PIN_CTS1__CTS1, + MX31_PIN_RTS1__RTS1, + MX31_PIN_TXD1__TXD1, + MX31_PIN_RXD1__RXD1, +}; + +static struct imxuart_platform_data uart_pdata = { + .flags = IMXUART_HAVE_RTSCTS, +}; + /* * This structure defines the MX31 memory map. */ @@ -68,6 +83,10 @@ void __init mx31lite_map_io(void) */ static void __init mxc_board_init(void) { + mxc_iomux_setup_multiple_pins(mx31lite_pins, ARRAY_SIZE(mx31lite_pins), + "mx31lite"); + + mxc_register_device(&mxc_uart_device0, &uart_pdata); } static void __init mx31lite_timer_init(void) -- cgit v1.2.3 From 3211705f76cccd52cd3f3c2744aef798bf705702 Mon Sep 17 00:00:00 2001 From: Magnus Lilja Date: Tue, 14 Apr 2009 22:00:07 +0200 Subject: i.MX31: Add ethernet support to i.MX31 Litekit board. This patch adds the SMSC platform device to the Litekit board. Signed-off-by: Magnus Lilja Signed-off-by: Sascha Hauer --- arch/arm/mach-mx3/mx31lite.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'arch/arm/mach-mx3/mx31lite.c') diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c index abe6ca39853..74734e50de2 100644 --- a/arch/arm/mach-mx3/mx31lite.c +++ b/arch/arm/mach-mx3/mx31lite.c @@ -22,6 +22,9 @@ #include #include #include +#include +#include +#include #include #include @@ -34,6 +37,7 @@ #include #include #include +#include #include "devices.h" /* @@ -46,12 +50,43 @@ static unsigned int mx31lite_pins[] = { MX31_PIN_RTS1__RTS1, MX31_PIN_TXD1__TXD1, MX31_PIN_RXD1__RXD1, + /* LAN9117 IRQ pin */ + IOMUX_MODE(MX31_PIN_SFS6, IOMUX_CONFIG_GPIO), }; static struct imxuart_platform_data uart_pdata = { .flags = IMXUART_HAVE_RTSCTS, }; +static struct smsc911x_platform_config smsc911x_config = { + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, + .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, + .flags = SMSC911X_USE_16BIT, +}; + +static struct resource smsc911x_resources[] = { + [0] = { + .start = CS4_BASE_ADDR, + .end = CS4_BASE_ADDR + 0x100, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IOMUX_TO_IRQ(MX31_PIN_SFS6), + .end = IOMUX_TO_IRQ(MX31_PIN_SFS6), + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device smsc911x_device = { + .name = "smsc911x", + .id = -1, + .num_resources = ARRAY_SIZE(smsc911x_resources), + .resource = smsc911x_resources, + .dev = { + .platform_data = &smsc911x_config, + }, +}; + /* * This structure defines the MX31 memory map. */ @@ -87,6 +122,10 @@ static void __init mxc_board_init(void) "mx31lite"); mxc_register_device(&mxc_uart_device0, &uart_pdata); + + /* SMSC9117 IRQ pin */ + gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_SFS6)); + platform_device_register(&smsc911x_device); } static void __init mx31lite_timer_init(void) -- cgit v1.2.3 From 4f163eb8811e8ea760d9fe654ecc6f17feecb477 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Wed, 6 May 2009 12:55:50 +0200 Subject: mx31: calls to gpio_request moved into platform code In order to use the gpiolib, we now have to call gpio_request in the plaform code since it is not done in iomux code anymore. Signed-off-by: Sascha Hauer --- arch/arm/mach-mx3/mx31lite.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'arch/arm/mach-mx3/mx31lite.c') diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c index 74734e50de2..e7092291316 100644 --- a/arch/arm/mach-mx3/mx31lite.c +++ b/arch/arm/mach-mx3/mx31lite.c @@ -118,14 +118,21 @@ void __init mx31lite_map_io(void) */ static void __init mxc_board_init(void) { + int ret; + mxc_iomux_setup_multiple_pins(mx31lite_pins, ARRAY_SIZE(mx31lite_pins), "mx31lite"); mxc_register_device(&mxc_uart_device0, &uart_pdata); /* SMSC9117 IRQ pin */ - gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_SFS6)); - platform_device_register(&smsc911x_device); + ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_SFS6), "sms9117-irq"); + if (ret) + pr_warning("could not get LAN irq gpio\n"); + else { + gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_SFS6)); + platform_device_register(&smsc911x_device); + } } static void __init mx31lite_timer_init(void) -- cgit v1.2.3 From 183c7fff50a6a83234b5dc6673b6906bd7145326 Mon Sep 17 00:00:00 2001 From: Magnus Lilja Date: Mon, 4 May 2009 22:18:09 +0200 Subject: i.MX31: Add NAND device driver for Litekit board. Signed-off-by: Magnus Lilja Signed-off-by: Sascha Hauer --- arch/arm/mach-mx3/mx31lite.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'arch/arm/mach-mx3/mx31lite.c') diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c index e7092291316..86fe70fa3e1 100644 --- a/arch/arm/mach-mx3/mx31lite.c +++ b/arch/arm/mach-mx3/mx31lite.c @@ -38,6 +38,7 @@ #include #include #include +#include #include "devices.h" /* @@ -58,6 +59,11 @@ static struct imxuart_platform_data uart_pdata = { .flags = IMXUART_HAVE_RTSCTS, }; +static struct mxc_nand_platform_data mx31lite_nand_board_info = { + .width = 1, + .hw_ecc = 1, +}; + static struct smsc911x_platform_config smsc911x_config = { .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, @@ -124,6 +130,7 @@ static void __init mxc_board_init(void) "mx31lite"); mxc_register_device(&mxc_uart_device0, &uart_pdata); + mxc_register_device(&mxc_nand_device, &mx31lite_nand_board_info); /* SMSC9117 IRQ pin */ ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_SFS6), "sms9117-irq"); -- cgit v1.2.3