This is a V2 of the series formerly sent as "BCSR abstraction and new PCMCIA socket driver". Changes V1->V2: - split the pcmcia socket driver patch in a driver-patch and board-support patch (#4 / #5); - fixed typos in #1 - added new patch #3 - added #6 to the series, since it depends on #4 to compile. #1 adds basic devboard register ("BCSR" space) API and converts all "bcsr->" invocations to use the new API. The API is slower than direct access but adds locking to register modify operations, which patch #3 can take advantage of. #2 generalizes PB1200's CPLD IRQ controller code; DB1300 can use it too. #3 gets rid of the "board_init_irq" callback in the boards: On all currently supported boards it's sufficient to initialize GPIO-based interrupts in an arch_initcall through use of standard irq functions. #4 replaces the current devboard PCMCIA socket code. See patch for more details. While it doesn't really belong to this series per-se, it does make use of the functions introduced by #1. #5 wire up the new pcmcia driver #6 new pcmcia socket driver for XXS1500 systems (compiled only). As always, run-tested on the DB1200 where possible; although testers for all other boards would be very much appreciated! Patches 1-3 are more-or-less MIPS-specific, I'd like for them to get applied while 4-6 await feedback from pcmcia list. Thanks, Manuel Lauss Manuel Lauss (6): Alchemy: devboard register abstraction Alchemy: devboards: factor out PB1200 IRQ cascade code. Alchemy: remove board_init_irq() function. PCMCIA: new socket driver for Au1000 demoboards. Alchemy: devboards: wire up new PCMCIA driver. Alchemy: XXS1500 PCMCIA driver rewrite arch/mips/alchemy/common/irq.c | 15 +- arch/mips/alchemy/common/platform.c | 6 - arch/mips/alchemy/common/setup.c | 3 +- arch/mips/alchemy/devboards/Makefile | 2 +- arch/mips/alchemy/devboards/bcsr.c | 148 +++++ arch/mips/alchemy/devboards/db1x00/Makefile | 2 +- arch/mips/alchemy/devboards/db1x00/board_setup.c | 109 +++- arch/mips/alchemy/devboards/db1x00/irqmap.c | 90 --- arch/mips/alchemy/devboards/db1x00/platform.c | 84 +++ arch/mips/alchemy/devboards/pb1000/board_setup.c | 17 +- arch/mips/alchemy/devboards/pb1100/Makefile | 3 +- arch/mips/alchemy/devboards/pb1100/board_setup.c | 31 +- arch/mips/alchemy/devboards/pb1100/platform.c | 41 ++ arch/mips/alchemy/devboards/pb1200/Makefile | 2 +- arch/mips/alchemy/devboards/pb1200/board_setup.c | 91 +++- arch/mips/alchemy/devboards/pb1200/irqmap.c | 134 ----- arch/mips/alchemy/devboards/pb1200/platform.c | 80 +++- arch/mips/alchemy/devboards/pb1500/Makefile | 3 +- arch/mips/alchemy/devboards/pb1500/board_setup.c | 35 +- arch/mips/alchemy/devboards/pb1500/platform.c | 41 ++ arch/mips/alchemy/devboards/pb1550/Makefile | 3 +- arch/mips/alchemy/devboards/pb1550/board_setup.c | 38 +- arch/mips/alchemy/devboards/pb1550/platform.c | 63 +++ arch/mips/alchemy/devboards/platform.c | 89 +++ arch/mips/alchemy/devboards/platform.h | 18 + arch/mips/alchemy/mtx-1/Makefile | 2 +- arch/mips/alchemy/mtx-1/board_setup.c | 24 + arch/mips/alchemy/mtx-1/irqmap.c | 56 -- arch/mips/alchemy/xxs1500/Makefile | 2 +- arch/mips/alchemy/xxs1500/board_setup.c | 37 +- arch/mips/alchemy/xxs1500/irqmap.c | 52 -- arch/mips/alchemy/xxs1500/platform.c | 63 +++ arch/mips/include/asm/mach-au1x00/au1000.h | 29 +- arch/mips/include/asm/mach-db1x00/bcsr.h | 238 ++++++++ arch/mips/include/asm/mach-db1x00/db1200.h | 123 +----- arch/mips/include/asm/mach-db1x00/db1x00.h | 100 ---- arch/mips/include/asm/mach-pb1x00/pb1100.h | 85 --- arch/mips/include/asm/mach-pb1x00/pb1200.h | 122 +---- arch/mips/include/asm/mach-pb1x00/pb1500.h | 49 -- arch/mips/include/asm/mach-pb1x00/pb1550.h | 96 ---- drivers/mtd/nand/au1550nd.c | 4 +- drivers/net/irda/au1k_ir.c | 14 +- drivers/pcmcia/Kconfig | 21 + drivers/pcmcia/Makefile | 12 +- drivers/pcmcia/au1000_db1x00.c | 305 ----------- drivers/pcmcia/au1000_generic.h | 12 +- drivers/pcmcia/au1000_pb1x00.c | 119 +---- drivers/pcmcia/au1000_xxs1500.c | 188 ------- drivers/pcmcia/db1xxx_ss.c | 630 ++++++++++++++++++++++ drivers/pcmcia/xxs1500_ss.c | 357 ++++++++++++ 50 files changed, 2172 insertions(+), 1716 deletions(-) create mode 100644 arch/mips/alchemy/devboards/bcsr.c delete mode 100644 arch/mips/alchemy/devboards/db1x00/irqmap.c create mode 100644 arch/mips/alchemy/devboards/db1x00/platform.c create mode 100644 arch/mips/alchemy/devboards/pb1100/platform.c delete mode 100644 arch/mips/alchemy/devboards/pb1200/irqmap.c create mode 100644 arch/mips/alchemy/devboards/pb1500/platform.c create mode 100644 arch/mips/alchemy/devboards/pb1550/platform.c create mode 100644 arch/mips/alchemy/devboards/platform.c create mode 100644 arch/mips/alchemy/devboards/platform.h delete mode 100644 arch/mips/alchemy/mtx-1/irqmap.c delete mode 100644 arch/mips/alchemy/xxs1500/irqmap.c create mode 100644 arch/mips/alchemy/xxs1500/platform.c create mode 100644 arch/mips/include/asm/mach-db1x00/bcsr.h delete mode 100644 arch/mips/include/asm/mach-pb1x00/pb1100.h delete mode 100644 arch/mips/include/asm/mach-pb1x00/pb1500.h delete mode 100644 drivers/pcmcia/au1000_db1x00.c delete mode 100644 drivers/pcmcia/au1000_xxs1500.c create mode 100644 drivers/pcmcia/db1xxx_ss.c create mode 100644 drivers/pcmcia/xxs1500_ss.c