diff options
author | John Crispin <john@openwrt.org> | 2008-06-08 08:07:14 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2008-06-08 08:07:14 +0000 |
commit | b3331b3d034e64d6ad70b61c3f3819cb5029033d (patch) | |
tree | a32d3767edc757899184c4becf4f3d975a05e2ea | |
parent | 2fdfd541da1e7f4c038c650ee15f14e7dd9de380 (diff) | |
download | upstream-b3331b3d034e64d6ad70b61c3f3819cb5029033d.tar.gz upstream-b3331b3d034e64d6ad70b61c3f3819cb5029033d.tar.bz2 upstream-b3331b3d034e64d6ad70b61c3f3819cb5029033d.zip |
adds gpiodev support to ifxmips
SVN-Revision: 11405
-rw-r--r-- | target/linux/ifxmips/config-2.6.25 | 5 | ||||
-rw-r--r-- | target/linux/ifxmips/files/arch/mips/ifxmips/board.c | 28 | ||||
-rw-r--r-- | target/linux/ifxmips/files/include/asm-mips/mach-ifxmips/gpio.h | 1 |
3 files changed, 30 insertions, 4 deletions
diff --git a/target/linux/ifxmips/config-2.6.25 b/target/linux/ifxmips/config-2.6.25 index 4299aef39e..342fa1142e 100644 --- a/target/linux/ifxmips/config-2.6.25 +++ b/target/linux/ifxmips/config-2.6.25 @@ -52,13 +52,16 @@ CONFIG_DEVPORT=y # CONFIG_DM9000 is not set CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_DMA_NONCOHERENT=y +# CONFIG_E1000E_ENABLED is not set CONFIG_EARLY_PRINTK=y CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_GPIO=y # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set +CONFIG_GPIO_DEVICE=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y @@ -90,6 +93,7 @@ CONFIG_INITRAMFS_SOURCE="" CONFIG_IRQ_CPU=y CONFIG_KALLSYMS=y # CONFIG_LEDS_ALIX is not set +# CONFIG_LEDS_GPIO is not set # CONFIG_LEMOTE_FULONG is not set CONFIG_LZO_COMPRESS=m CONFIG_LZO_DECOMPRESS=m @@ -200,6 +204,7 @@ CONFIG_SLABINFO=y # CONFIG_SPARSEMEM_STATIC is not set # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set CONFIG_SSB_POSSIBLE=y +CONFIG_SWAP_IO_SPACE=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_SYS_HAS_CPU_MIPS32_R1=y CONFIG_SYS_HAS_EARLY_PRINTK=y diff --git a/target/linux/ifxmips/files/arch/mips/ifxmips/board.c b/target/linux/ifxmips/files/arch/mips/ifxmips/board.c index bcbf117e89..d925cf2362 100644 --- a/target/linux/ifxmips/files/arch/mips/ifxmips/board.c +++ b/target/linux/ifxmips/files/arch/mips/ifxmips/board.c @@ -35,7 +35,7 @@ #include <asm/io.h> #include <asm/ifxmips/ifxmips.h> -#define MAX_IFXMIPS_DEVS 5 +#define MAX_IFXMIPS_DEVS 6 #define BOARD_DANUBE "Danube" #define BOARD_DANUBE_CHIPID 0x10129083 @@ -96,6 +96,26 @@ static struct platform_device ifxmips_mtd[] = }, }; +#ifdef CONFIG_GPIO_DEVICE +static struct resource ifxmips_gpio_dev_resources[] = { + { + .name = "gpio", + .flags = 0, + .start = (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 8) | (1 << 9) | (1 << 12), + .end = (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 8) | (1 << 9) | (1 << 12), + }, +}; + +static struct platform_device ifxmips_gpio_dev[] = { + { + .name = "GPIODEV", + .id = -1, + .num_resources = ARRAY_SIZE(ifxmips_gpio_dev_resources), + .resource = ifxmips_gpio_dev_resources, + } +}; +#endif + const char* get_system_type (void) { @@ -119,18 +139,18 @@ int __init ifxmips_init_devices(void) * Currently we support 3 chips * 1.) Danube * 2.) Twinpass (Danube without dsl phy) - * 3.) KDbg74 (used for debuging) */ int dev = 0; /* the following devices are generic for all targets */ - ifxmips_devs[dev++] = ifxmips_led; ifxmips_devs[dev++] = ifxmips_gpio; ifxmips_devs[dev++] = ifxmips_mii; ifxmips_devs[dev++] = ifxmips_mtd; - +#ifdef CONFIG_GPIO_DEVICE + ifxmips_devs[dev++] = ifxmips_gpio_dev; +#endif return platform_add_devices(ifxmips_devs, dev); } diff --git a/target/linux/ifxmips/files/include/asm-mips/mach-ifxmips/gpio.h b/target/linux/ifxmips/files/include/asm-mips/mach-ifxmips/gpio.h index 3083b8811a..18fd49e270 100644 --- a/target/linux/ifxmips/files/include/asm-mips/mach-ifxmips/gpio.h +++ b/target/linux/ifxmips/files/include/asm-mips/mach-ifxmips/gpio.h @@ -24,6 +24,7 @@ #define _IFXMIPS_GPIO_H_ #include <asm/ifxmips/ifxmips.h> +#include <asm/ifxmips/ifxmips_gpio.h> static inline int gpio_direction_input(unsigned gpio) { ifxmips_port_set_dir_in(0, gpio); |