diff options
author | Frans Meulenbroeks <fransmeulenbroeks@gmail.com> | 2010-01-31 17:52:31 +0100 |
---|---|---|
committer | Frans Meulenbroeks <fransmeulenbroeks@gmail.com> | 2010-01-31 17:52:31 +0100 |
commit | e76a15f95e8bb62e499ee61eb15a3e533b4483c2 (patch) | |
tree | 240ec1a10cadd6cf6357f81e5cf27d3463de6275 /recipes | |
parent | 6e59cc768259657ef6c0b153ccc5365e5f0ff8df (diff) |
linux-kirkwood: fixed patch issues for openrd-base
- eliminate a patch from the recipe that was already in git
- fixed a patch which failed on a file which was not applicable for openrd-base
(made a dedicated patch with only those parts that are needed for openrd-base)
Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes')
-rw-r--r-- | recipes/linux/linux-kirkwood/0004-ARM-Kirkwood-OpenRD-base-SD-UART1-selection.patch | 110 | ||||
-rw-r--r-- | recipes/linux/linux-kirkwood_2.6.33-rc5.bb | 3 |
2 files changed, 111 insertions, 2 deletions
diff --git a/recipes/linux/linux-kirkwood/0004-ARM-Kirkwood-OpenRD-base-SD-UART1-selection.patch b/recipes/linux/linux-kirkwood/0004-ARM-Kirkwood-OpenRD-base-SD-UART1-selection.patch new file mode 100644 index 0000000000..b846da904a --- /dev/null +++ b/recipes/linux/linux-kirkwood/0004-ARM-Kirkwood-OpenRD-base-SD-UART1-selection.patch @@ -0,0 +1,110 @@ +From 3423306f9b0aa3f9f4b41338565e18d9c3bf0bb2 Mon Sep 17 00:00:00 2001 +From: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com> +Date: Fri, 25 Dec 2009 15:02:12 +0530 +Subject: [PATCH] ARM: Kirkwood: OpenRD: SD/UART1 selection + +To select UART1, pass "uart=232" (for RS232) OR "uart=485" (for RS485) in the +boot argument. To select SDIO lines pass "uart=no". SDIO lines will be selected +by default in absence of this parameter. + +Signed-off-by: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com> +--- + arch/arm/mach-kirkwood/openrd_base-setup.c | 61 +++++++++++++++++++++++++- + arch/arm/mach-kirkwood/openrd_client-setup.c | 59 ++++++++++++++++++++++++- + 2 files changed, 117 insertions(+), 3 deletions(-) + +Index: git/arch/arm/mach-kirkwood/openrd_base-setup.c +=================================================================== +--- git.orig/arch/arm/mach-kirkwood/openrd_base-setup.c ++++ git/arch/arm/mach-kirkwood/openrd_base-setup.c +@@ -15,6 +15,7 @@ + #include <linux/ata_platform.h> + #include <linux/mv643xx_eth.h> + #include <linux/gpio.h> ++#include <linux/io.h> + #include <asm/mach-types.h> + #include <asm/mach/arch.h> + #include <mach/kirkwood.h> +@@ -51,16 +52,53 @@ static struct mvsdio_platform_data openr + }; + + static unsigned int openrd_base_mpp_config[] __initdata = { +- MPP29_GPIO, ++ MPP12_SD_CLK, ++ MPP13_SD_CMD, ++ MPP14_SD_D0, ++ MPP15_SD_D1, ++ MPP16_SD_D2, ++ MPP17_SD_D3, ++ MPP29_GPIO, + 0 + }; + ++static int uart1; ++ ++static void sd_uart_selection(void) ++{ ++ char *ptr = NULL; ++ ++ /* Parse boot_command_line string uart=no/232/485 */ ++ ptr = strstr(boot_command_line, "uart="); ++ ++ /* Default is SD. Change if required, for UART */ ++ if (ptr != NULL) { ++ if (!strncmp(ptr + 5, "232", 3)) { ++ /* Configure MPP for UART */ ++ openrd_base_mpp_config[1] = MPP13_UART1_TXD; ++ openrd_base_mpp_config[2] = MPP14_UART1_RXD; ++ ++ uart1 = 232; ++ } else if (!strncmp(ptr + 5, "485", 3)) { ++ /* Configure MPP for UART */ ++ openrd_base_mpp_config[1] = MPP13_UART1_TXD; ++ openrd_base_mpp_config[2] = MPP14_UART1_RXD; ++ ++ uart1 = 485; ++ } ++ } ++} ++ + static void __init openrd_base_init(void) + { + /* + * Basic setup. Needs to be called early. + */ + kirkwood_init(); ++ ++ /* This function modifies MPP config according to boot argument */ ++ sd_uart_selection(); ++ + kirkwood_mpp_conf(openrd_base_mpp_config); + + kirkwood_uart0_init(); +@@ -70,7 +108,26 @@ static void __init openrd_base_init(void + + kirkwood_ge00_init(&openrd_base_ge00_data); + kirkwood_sata_init(&openrd_base_sata_data); +- kirkwood_sdio_init(&openrd_base_mvsdio_data); ++ ++ if (!uart1) { ++ /* Select SD ++ * Pin # 34: 0 => UART1, 1 => SD */ ++ writel(readl(GPIO_OUT(34)) | 4, GPIO_OUT(34)); ++ ++ kirkwood_sdio_init(&openrd_base_mvsdio_data); ++ } else { ++ /* Select UART1 ++ * Pin # 34: 0 => UART1, 1 => SD */ ++ writel(readl(GPIO_OUT(34)) & ~(4), GPIO_OUT(34)); ++ ++ /* Select RS232 OR RS485 ++ * Pin # 28: 0 => RS232, 1 => RS485 */ ++ if (uart1 == 232) ++ writel(readl(GPIO_OUT(28)) & ~(0x10000000), ++ GPIO_OUT(28)); ++ else ++ writel(readl(GPIO_OUT(28)) | 0x10000000, GPIO_OUT(28)); ++ } + + kirkwood_i2c_init(); + } diff --git a/recipes/linux/linux-kirkwood_2.6.33-rc5.bb b/recipes/linux/linux-kirkwood_2.6.33-rc5.bb index b1640820d7..b54add9102 100644 --- a/recipes/linux/linux-kirkwood_2.6.33-rc5.bb +++ b/recipes/linux/linux-kirkwood_2.6.33-rc5.bb @@ -15,8 +15,7 @@ SRC_URI = "git://repo.or.cz/linux-2.6/linux-2.6-openrd.git;protocol=git \ file://defconfig" SRC_URI_append_openrd-base += " \ - file://openrd-base/openrd-base-enable-pcie.patch;patch=1 \ - file://0004-ARM-Kirkwood-OpenRD-SD-UART1-selection.patch;patch=1 \ + file://0004-ARM-Kirkwood-OpenRD-base-SD-UART1-selection.patch;patch=1 \ " SRC_URI_append_openrd-client += " \ |