From c84d6e629fb8af6d0f7efaaf4d8b1905b8d9de65 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Mon, 26 Sep 2011 17:49:54 +0000 Subject: [PATCH] kernel: kirkwood arch-add guruplug setup. --- config/kernel/kernel.config.armv5tel-ipfire | 1 + ...nux-2.6.32.45-arm_kirkwood_dreamplug.patch | 157 +++++++++++++++++- 2 files changed, 151 insertions(+), 7 deletions(-) diff --git a/config/kernel/kernel.config.armv5tel-ipfire b/config/kernel/kernel.config.armv5tel-ipfire index 657eaaae4a..43a0297a17 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire +++ b/config/kernel/kernel.config.armv5tel-ipfire @@ -195,6 +195,7 @@ CONFIG_MACH_RD88F6192_NAS=y CONFIG_MACH_RD88F6281=y # CONFIG_MACH_MV88F6281GTW_GE is not set CONFIG_MACH_SHEEVAPLUG=y +CONFIG_MACH_GURUPLUG=y CONFIG_MACH_DREAMPLUG=y CONFIG_MACH_TS219=y CONFIG_MACH_OPENRD_BASE=y diff --git a/src/patches/linux-2.6.32.45-arm_kirkwood_dreamplug.patch b/src/patches/linux-2.6.32.45-arm_kirkwood_dreamplug.patch index 8d10362d5e..71809b7673 100644 --- a/src/patches/linux-2.6.32.45-arm_kirkwood_dreamplug.patch +++ b/src/patches/linux-2.6.32.45-arm_kirkwood_dreamplug.patch @@ -1,6 +1,6 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c --- linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c 2011-09-15 19:23:01.000000000 +0000 ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c 2011-09-26 17:21:05.000000000 +0000 @@ -0,0 +1,140 @@ +/* + * arch/arm/mach-kirkwood/dreamplug-setup.c @@ -142,10 +142,145 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2. + .init_irq = kirkwood_init_irq, + .timer = &kirkwood_timer, +MACHINE_END +diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c +--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c 2011-09-26 17:22:21.000000000 +0000 +@@ -0,0 +1,131 @@ ++/* ++ * arch/arm/mach-kirkwood/guruplug-setup.c ++ * ++ * Marvell GuruPlug Reference Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "common.h" ++#include "mpp.h" ++ ++static struct mtd_partition guruplug_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = SZ_4M ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data guruplug_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0), ++}; ++ ++static struct mv643xx_eth_platform_data guruplug_ge01_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(1), ++}; ++ ++static struct mv_sata_platform_data guruplug_sata_data = { ++ .n_ports = 1, ++}; ++ ++static struct mvsdio_platform_data guruplug_mvsdio_data = { ++ /* unfortunately the CD signal has not been connected */ ++}; ++ ++static struct gpio_led guruplug_led_pins[] = { ++ { ++ .name = "guruplug:red:health", ++ .gpio = 46, ++ .active_low = 1, ++ }, ++ { ++ .name = "guruplug:green:health", ++ .gpio = 47, ++ .active_low = 1, ++ }, ++ { ++ .name = "guruplug:red:wmode", ++ .gpio = 48, ++ .active_low = 1, ++ }, ++ { ++ .name = "guruplug:green:wmode", ++ .gpio = 49, ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_led_platform_data guruplug_led_data = { ++ .leds = guruplug_led_pins, ++ .num_leds = ARRAY_SIZE(guruplug_led_pins), ++}; ++ ++static struct platform_device guruplug_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &guruplug_led_data, ++ } ++}; ++ ++static unsigned int guruplug_mpp_config[] __initdata = { ++ MPP46_GPIO, /* M_RLED */ ++ MPP47_GPIO, /* M_GLED */ ++ MPP48_GPIO, /* B_RLED */ ++ MPP49_GPIO, /* B_GLED */ ++ 0 ++}; ++ ++static void __init guruplug_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(guruplug_mpp_config); ++ ++ kirkwood_uart0_init(); ++ kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25); ++ ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&guruplug_ge00_data); ++ kirkwood_ge01_init(&guruplug_ge01_data); ++ kirkwood_sata_init(&guruplug_sata_data); ++ kirkwood_sdio_init(&guruplug_mvsdio_data); ++ ++ platform_device_register(&guruplug_leds); ++} ++ ++MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board") ++ /* Maintainer: Siddarth Gore */ ++ .phys_io = KIRKWOOD_REGS_PHYS_BASE, ++ .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, ++ .boot_params = 0x00000100, ++ .init_machine = guruplug_init, ++ .map_io = kirkwood_map_io, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig --- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig 2011-08-16 01:57:37.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig 2011-09-15 18:34:19.000000000 +0000 -@@ -32,6 +32,12 @@ ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig 2011-09-26 17:22:21.000000000 +0000 +@@ -32,6 +32,18 @@ Say 'Y' here if you want your kernel to support the Marvell SheevaPlug Reference Board. @@ -154,26 +289,34 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/ar + help + Say 'Y' here if you want your kernel to support the + Marvell DreamPlug Reference Board. ++ ++config MACH_GURUPLUG ++ bool "Marvell GuruPlug Reference Board" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Marvell GuruPlug Reference Board. + config MACH_TS219 bool "QNAP TS-119 and TS-219 Turbo NAS" help diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile --- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile 2011-08-16 01:57:37.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile 2011-09-15 18:36:51.000000000 +0000 -@@ -5,6 +5,7 @@ ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile 2011-09-26 17:23:30.000000000 +0000 +@@ -5,6 +5,8 @@ obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o ++obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o +obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o obj-$(CONFIG_MACH_TS219) += ts219-setup.o obj-$(CONFIG_MACH_OPENRD_BASE) += openrd_base-setup.o diff -Naur linux-2.6.32.45.org/arch/arm/tools/mach-types linux-2.6.32.45/arch/arm/tools/mach-types --- linux-2.6.32.45.org/arch/arm/tools/mach-types 2011-08-16 01:57:37.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/tools/mach-types 2011-09-15 19:12:48.000000000 +0000 -@@ -2536,3 +2536,4 @@ ++++ linux-2.6.32.45/arch/arm/tools/mach-types 2011-09-26 17:33:30.000000000 +0000 +@@ -2536,3 +2536,5 @@ mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 esyx MACH_ESYX ESYX 2551 bulldog MACH_BULLDOG BULLDOG 2553 ++guruplug MACH_GURUPLUG GURUPLUG 2601 +dreamplug MACH_DREAMPLUG DREAMPLUG 2659 -- 2.39.2