diff options
Diffstat (limited to 'packages/linux/ixp4xx-kernel/2.6.16/75-dsmg600.patch')
-rw-r--r-- | packages/linux/ixp4xx-kernel/2.6.16/75-dsmg600.patch | 353 |
1 files changed, 0 insertions, 353 deletions
diff --git a/packages/linux/ixp4xx-kernel/2.6.16/75-dsmg600.patch b/packages/linux/ixp4xx-kernel/2.6.16/75-dsmg600.patch deleted file mode 100644 index 3603bd3ca8..0000000000 --- a/packages/linux/ixp4xx-kernel/2.6.16/75-dsmg600.patch +++ /dev/null @@ -1,353 +0,0 @@ ---- - arch/arm/mach-ixp4xx/Kconfig | 8 + - arch/arm/mach-ixp4xx/Makefile | 1 - arch/arm/mach-ixp4xx/dsmg600-pci.c | 74 +++++++++++++++++ - arch/arm/mach-ixp4xx/dsmg600-setup.c | 139 +++++++++++++++++++++++++++++++++ - arch/arm/tools/mach-types | 1 - include/asm-arm/arch-ixp4xx/dsmg600.h | 62 ++++++++++++++ - include/asm-arm/arch-ixp4xx/hardware.h | 1 - include/asm-arm/arch-ixp4xx/irqs.h | 10 ++ - 8 files changed, 296 insertions(+) - ---- linux-ixp4xx.orig/arch/arm/mach-ixp4xx/Kconfig 2006-03-18 18:10:31.000000000 +0100 -+++ linux-ixp4xx/arch/arm/mach-ixp4xx/Kconfig 2006-03-18 18:10:34.000000000 +0100 -@@ -83,6 +83,14 @@ config MACH_NAS100D - NAS 100d device. For more information on this platform, - see http://www.nslu2-linux.org/wiki/NAS100d/HomePage - -+config MACH_DSMG600 -+ bool -+ prompt "D-Link DSM-G600" -+ help -+ Say 'Y' here if you want your kernel to support D-Link's -+ DSM-G600 device. For more information on this platform, -+ see http://www.nslu2-linux.org/ -+ - # - # Avila and IXDP share the same source for now. Will change in future - # ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-ixp4xx/arch/arm/mach-ixp4xx/dsmg600-pci.c 2006-03-18 18:10:34.000000000 +0100 -@@ -0,0 +1,74 @@ -+/* -+ * DSM-G600 board-level PCI initialization -+ * -+ * Copyright (c) 2006 Tower Technologies -+ * Author: Alessandro Zummo <a.zummo@towertech.it> -+ * -+ * based on ixdp425-pci.c: -+ * Copyright (C) 2002 Intel Corporation. -+ * Copyright (C) 2003-2004 MontaVista Software, Inc. -+ * -+ * Maintainer: http://www.nslu2-linux.org/ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ */ -+ -+#include <linux/config.h> -+#include <linux/pci.h> -+#include <linux/init.h> -+ -+#include <asm/mach/pci.h> -+#include <asm/mach-types.h> -+ -+void __init dsmg600_pci_preinit(void) -+{ -+ set_irq_type(IRQ_DSMG600_PCI_INTA, IRQT_LOW); -+ set_irq_type(IRQ_DSMG600_PCI_INTB, IRQT_LOW); -+ set_irq_type(IRQ_DSMG600_PCI_INTC, IRQT_LOW); -+ set_irq_type(IRQ_DSMG600_PCI_INTD, IRQT_LOW); -+ set_irq_type(IRQ_DSMG600_PCI_INTE, IRQT_LOW); -+ set_irq_type(IRQ_DSMG600_PCI_INTF, IRQT_LOW); -+ -+ ixp4xx_pci_preinit(); -+} -+ -+static int __init dsmg600_map_irq(struct pci_dev *dev, u8 slot, u8 pin) -+{ -+ static int pci_irq_table[DSMG600_PCI_MAX_DEV][DSMG600_PCI_IRQ_LINES] = -+ { -+ { IRQ_DSMG600_PCI_INTE, -1, -1 }, -+ { IRQ_DSMG600_PCI_INTA, -1, -1 }, -+ { IRQ_DSMG600_PCI_INTB, IRQ_DSMG600_PCI_INTC, IRQ_DSMG600_PCI_INTD }, -+ { IRQ_DSMG600_PCI_INTF, -1, -1 }, -+ }; -+ -+ int irq = -1; -+ -+ if (slot >= 1 && slot <= DSMG600_PCI_MAX_DEV && -+ pin >= 1 && pin <= DSMG600_PCI_IRQ_LINES) -+ irq = pci_irq_table[slot-1][pin-1]; -+ -+ return irq; -+} -+ -+struct hw_pci __initdata dsmg600_pci = { -+ .nr_controllers = 1, -+ .preinit = dsmg600_pci_preinit, -+ .swizzle = pci_std_swizzle, -+ .setup = ixp4xx_setup, -+ .scan = ixp4xx_scan_bus, -+ .map_irq = dsmg600_map_irq, -+}; -+ -+int __init dsmg600_pci_init(void) -+{ -+ if (machine_is_dsmg600()) -+ pci_common_init(&dsmg600_pci); -+ -+ return 0; -+} -+ -+subsys_initcall(dsmg600_pci_init); ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-ixp4xx/arch/arm/mach-ixp4xx/dsmg600-setup.c 2006-03-18 18:10:34.000000000 +0100 -@@ -0,0 +1,139 @@ -+/* -+ * DSM-G600 board-setup -+ * -+ * Copyright (c) 2006 Tower Technologies -+ * Author: Alessandro Zummo <a.zummo@towertech.it> -+ * -+ * based ixdp425-setup.c: -+ * Copyright (C) 2003-2004 MontaVista Software, Inc. -+ * -+ * Author: Alessandro Zummo <a.zummo@towertech.it> -+ * Maintainers: http://www.nslu2-linux.org/ -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/serial.h> -+#include <linux/serial_8250.h> -+ -+#include <asm/mach-types.h> -+#include <asm/mach/arch.h> -+#include <asm/mach/flash.h> -+ -+static struct flash_platform_data dsmg600_flash_data = { -+ .map_name = "cfi_probe", -+ .width = 2, -+}; -+ -+static struct resource dsmg600_flash_resource = { -+ .flags = IORESOURCE_MEM, -+}; -+ -+static struct platform_device dsmg600_flash = { -+ .name = "IXP4XX-Flash", -+ .id = 0, -+ .dev.platform_data = &dsmg600_flash_data, -+ .num_resources = 1, -+ .resource = &dsmg600_flash_resource, -+}; -+ -+static struct ixp4xx_i2c_pins dsmg600_i2c_gpio_pins = { -+ .sda_pin = DSMG600_SDA_PIN, -+ .scl_pin = DSMG600_SCL_PIN, -+}; -+ -+static struct platform_device dsmg600_i2c_controller = { -+ .name = "IXP4XX-I2C", -+ .id = 0, -+ .dev.platform_data = &dsmg600_i2c_gpio_pins, -+ .num_resources = 0, -+}; -+ -+static struct resource dsmg600_uart_resources[] = { -+ { -+ .start = IXP4XX_UART1_BASE_PHYS, -+ .end = IXP4XX_UART1_BASE_PHYS + 0x0fff, -+ .flags = IORESOURCE_MEM, -+ }, -+ { -+ .start = IXP4XX_UART2_BASE_PHYS, -+ .end = IXP4XX_UART2_BASE_PHYS + 0x0fff, -+ .flags = IORESOURCE_MEM, -+ } -+}; -+ -+static struct plat_serial8250_port dsmg600_uart_data[] = { -+ { -+ .mapbase = IXP4XX_UART1_BASE_PHYS, -+ .membase = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET, -+ .irq = IRQ_IXP4XX_UART1, -+ .flags = UPF_BOOT_AUTOCONF, -+ .iotype = UPIO_MEM, -+ .regshift = 2, -+ .uartclk = IXP4XX_UART_XTAL, -+ }, -+ { -+ .mapbase = IXP4XX_UART2_BASE_PHYS, -+ .membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET, -+ .irq = IRQ_IXP4XX_UART2, -+ .flags = UPF_BOOT_AUTOCONF, -+ .iotype = UPIO_MEM, -+ .regshift = 2, -+ .uartclk = IXP4XX_UART_XTAL, -+ }, -+ { } -+}; -+ -+static struct platform_device dsmg600_uart = { -+ .name = "serial8250", -+ .id = PLAT8250_DEV_PLATFORM, -+ .dev.platform_data = dsmg600_uart_data, -+ .num_resources = 2, -+ .resource = dsmg600_uart_resources, -+}; -+ -+static struct platform_device *dsmg600_devices[] __initdata = { -+ &dsmg600_i2c_controller, -+ &dsmg600_flash, -+ &dsmg600_uart, -+}; -+ -+static void dsmg600_power_off(void) -+{ -+ /* enable the pwr cntl gpio */ -+// gpio_line_config(DSMG600_GPIO_PWROFF, IXP4XX_GPIO_OUT); -+ -+ /* poweroff */ -+// gpio_line_set(DSMG600_GPIO_PWROFF, IXP4XX_GPIO_HIGH); -+} -+ -+static void __init dsmg600_init(void) -+{ -+ /* The DSM-G600 has a 33MHz crystal on board - 1.01% different -+ * from the typical value. -+ */ -+ -+#ifndef FREQ -+ ixp4xx_set_board_tick_rate(66000000); -+#endif -+ -+ ixp4xx_sys_init(); -+ -+ dsmg600_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); -+ dsmg600_flash_resource.end = -+ IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1; -+ -+ pm_power_off = dsmg600_power_off; -+ -+ platform_add_devices(dsmg600_devices, ARRAY_SIZE(dsmg600_devices)); -+} -+ -+MACHINE_START(DSMG600, "D-Link DSM-G600") -+ /* Maintainer: www.nslu2-linux.org */ -+ .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, -+ .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, -+ .boot_params = 0x00000100, -+ .map_io = ixp4xx_map_io, -+ .init_irq = ixp4xx_init_irq, -+ .timer = &ixp4xx_timer, -+ .init_machine = dsmg600_init, -+MACHINE_END ---- linux-ixp4xx.orig/arch/arm/tools/mach-types 2006-03-18 18:10:31.000000000 +0100 -+++ linux-ixp4xx/arch/arm/tools/mach-types 2006-03-18 18:10:34.000000000 +0100 -@@ -969,3 +969,4 @@ mxc300_30ads MACH_MXC30030ADS MXC30030A - fujitsu_wimaxsoc MACH_FUJITSU_WIMAXSOC FUJITSU_WIMAXSOC 956 - dualpcmodem MACH_DUALPCMODEM DUALPCMODEM 957 - gesbc9312 MACH_GESBC9312 GESBC9312 958 -+dsmg600 MACH_DSMG600 DSMG600 964 ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-ixp4xx/include/asm-arm/arch-ixp4xx/dsmg600.h 2006-03-18 18:10:34.000000000 +0100 -@@ -0,0 +1,62 @@ -+/* -+ * DSM-G600 platform specific definitions -+ * -+ * Copyright (c) 2006 Tower Technologies -+ * Author: Alessandro Zummo <a.zummo@towertech.it> -+ * -+ * based on ixdp425.h: -+ * Copyright 2004 (c) MontaVista, Software, Inc. -+ * -+ * 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. -+ */ -+ -+#ifndef __ASM_ARCH_HARDWARE_H__ -+#error "Do not include this directly, instead #include <asm/hardware.h>" -+#endif -+ -+#define DSMG600_SDA_PIN 5 -+#define DSMG600_SCL_PIN 4 -+ -+/* -+ * DSMG600 PCI IRQs -+ */ -+#define DSMG600_PCI_MAX_DEV 4 -+#define DSMG600_PCI_IRQ_LINES 3 -+ -+ -+/* PCI controller GPIO to IRQ pin mappings */ -+#define DSMG600_PCI_INTA_PIN 11 -+#define DSMG600_PCI_INTB_PIN 10 -+#define DSMG600_PCI_INTC_PIN 9 -+#define DSMG600_PCI_INTD_PIN 8 -+#define DSMG600_PCI_INTE_PIN 7 -+#define DSMG600_PCI_INTF_PIN 6 -+ -+/* GPIO */ -+ -+#define DSMG600_GPIO0 0 -+#define DSMG600_GPIO1 1 -+#define DSMG600_GPIO2 2 -+#define DSMG600_GPIO3 3 -+#define DSMG600_GPIO4 4 -+#define DSMG600_GPIO5 5 -+#define DSMG600_GPIO6 6 -+#define DSMG600_GPIO7 7 -+#define DSMG600_GPIO8 8 -+#define DSMG600_GPIO9 9 -+#define DSMG600_GPIO10 10 -+#define DSMG600_GPIO11 11 -+#define DSMG600_GPIO12 12 -+#define DSMG600_GPIO13 13 -+#define DSMG600_GPIO14 14 -+#define DSMG600_GPIO15 15 -+ -+#define DSMG600_GPIO_PWRBTN DSMG600_GPIO15 /* power */ -+#define DSMG600_GPIO_RSTBTN DSMG600_GPIO3 /* reset */ -+ -+#define DSMG600_IRQ_PWRBTN IRQ_IXP4XX_GPIO15 -+#define DSMG600_IRQ_RSTBTN IRQ_IXP4XX_GPIO3 -+ -+#define DSMG600_GPIO_PWROFF DSMG600_GPIO2 /* power off */ ---- linux-ixp4xx.orig/arch/arm/mach-ixp4xx/Makefile 2006-03-18 18:10:31.000000000 +0100 -+++ linux-ixp4xx/arch/arm/mach-ixp4xx/Makefile 2006-03-18 18:10:34.000000000 +0100 -@@ -10,4 +10,5 @@ obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote- - obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o - obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o - obj-$(CONFIG_MACH_NAS100D) += nas100d-pci.o nas100d-setup.o nas100d-power.o -+obj-$(CONFIG_MACH_DSMG600) += dsmg600-pci.o dsmg600-setup.o - ---- linux-ixp4xx.orig/include/asm-arm/arch-ixp4xx/hardware.h 2006-03-18 18:10:31.000000000 +0100 -+++ linux-ixp4xx/include/asm-arm/arch-ixp4xx/hardware.h 2006-03-18 18:10:34.000000000 +0100 -@@ -46,5 +46,6 @@ extern unsigned int processor_id; - #include "prpmc1100.h" - #include "nslu2.h" - #include "nas100d.h" -+#include "dsmg600.h" - - #endif /* _ASM_ARCH_HARDWARE_H */ ---- linux-ixp4xx.orig/include/asm-arm/arch-ixp4xx/irqs.h 2006-03-18 18:10:31.000000000 +0100 -+++ linux-ixp4xx/include/asm-arm/arch-ixp4xx/irqs.h 2006-03-18 18:10:34.000000000 +0100 -@@ -109,4 +109,14 @@ - #define IRQ_NAS100D_PCI_INTD IRQ_IXP4XX_GPIO8 - #define IRQ_NAS100D_PCI_INTE IRQ_IXP4XX_GPIO7 - -+/* -+ * D-Link DSM-G600 board IRQs -+ */ -+#define IRQ_DSMG600_PCI_INTA IRQ_IXP4XX_GPIO11 -+#define IRQ_DSMG600_PCI_INTB IRQ_IXP4XX_GPIO10 -+#define IRQ_DSMG600_PCI_INTC IRQ_IXP4XX_GPIO9 -+#define IRQ_DSMG600_PCI_INTD IRQ_IXP4XX_GPIO8 -+#define IRQ_DSMG600_PCI_INTE IRQ_IXP4XX_GPIO7 -+#define IRQ_DSMG600_PCI_INTF IRQ_IXP4XX_GPIO6 -+ - #endif |