mfd: add new driver for Sharp LoCoMo

LoCoMo is a GA used on Sharp Zaurus SL-5x00. Current driver does has
several design issues (special bus instead of platform bus, doesn't use
mfd-core, etc).

Implement 'core' parts of locomo support as an mfd driver.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
GPIO: port LoCoMo gpio support from old driver

Add gpiolib driver for gpio pins placed on the LoCoMo GA.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
leds: port locomo leds driver to new locomo core

Adapt locomo leds driver to new locomo core setup.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
input: convert LoCoMo keyboard driver to use new locomo core

As LoCoMo is switching to new device model, adapt keyboard driver to
support new locomo core driver.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
video: backlight: update locomo backlight driver

Update locomolcd driver to work with new locomo core support. Rely on
gpio and comadj being provided by platform data, instead of being
directly referenced from the driver.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: sa1100: make collie use new locomo drivers

Switch collie to new mfd-based locomo driver.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: sa1100: don't preallocate IRQ space for locomo

As new locomo driver properly supports SPARSE_IRQ, stop playing with
NR_IRQS on sa1100 (locomo was the last chip requiring NR_IRQ tricks).

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: pxa: poodle: use new LoCoMo driver

Convert poodle to use new mfd-based LoCoMo driver.

This commit also fixes locomo gpio accessor on poodle - ASoC machine
driver.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: pxa: poodle: don't preallocate IRQ space for locomo

As new locomo driver supports SPARSE_IRQ, don't preallocate NR_IRQS
space for it on poodle.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: drop old LoCoMo driver

As there are no in-kernel users of old locomo driver, drop all
alltogether. Remove Kconfig entry, driver and header.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
gpio: locomo: implement per-pin irq handling

LoCoMo has a possibility to generate per-GPIO edge irqs. Support for
that was there in old locomo driver, got 'cleaned up' during old driver
IRQ cascading cleanup and is now reimplemented. It is expected that
SL-5500 (collie) will use locomo gpio irqs for mmc detection irq.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
spi: add locomo SPI driver

LoCoMo chip has a built-in simple SPI controller. On Sharp SL-5500 PDDAs
it is connected to external MMC slot.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
collie: add mmc_spi platform data

Collie has MMC card slot connected through LoCoMo SPI controller. Add
necessary board info to use the MMC card slot.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Merge branch 'h3xxx-gpios' into merged

* h3xxx-gpios:
  arm: sa1100: h3xxx: drop hand-coded gpio_request_array analogue
  arm: sa1100: h3xxx: move serial port GPIO handling to common place
  arm: sa1100: h3600: refactor IrDA GPIO handling
  arm: sa1100: h3100: refactor IrDA GPIO handling
  arm: sa1100: h3600: refactor LCD GPIO handling
  arm: sa1100: h3100: refactor LCD GPIO handling
Merge branch 'sa1100-irq2' into merged

* sa1100-irq2:
  arm: sa1100: rearrange IRQ handling code
  arm: sa1100: switch to hwirq usage
  arm: sa1100: merge IRQ 11 to "normal" irq domain
  arm: sa1100: introduce irqdomains support
  ARM: sa1100: enable IRQ domains
  arm: sa1100: use ioremap'ped access instead of direct register access
  arm: sa1100: use new functions that hide PWER access
  ARM: sa1100: add platform functions to handle PWER settings
  gpio: sa1100: use ioremapped memory instead of direct registers access
  ARM: sa1100: drop entry-macro.S
  ARM: sa1100: switch to MULTI_IRQ_HANDLER
  ARM: locomo: don't clobber chip data for chained irq
  ARM: sa1100 collie: use gpio-charger instead of pda-power
Merge branch 'locomo' into merged

* locomo:
  collie: add mmc_spi platform data
  spi: add locomo SPI driver
  gpio: locomo: implement per-pin irq handling
  ARM: drop old LoCoMo driver
  ARM: pxa: poodle: don't preallocate IRQ space for locomo
  ARM: pxa: poodle: use new LoCoMo driver
  ARM: sa1100: don't preallocate IRQ space for locomo
  ARM: sa1100: make collie use new locomo drivers
  video: backlight: update locomo backlight driver
  input: convert LoCoMo keyboard driver to use new locomo core
  leds: port locomo leds driver to new locomo core
  GPIO: port LoCoMo gpio support from old driver
  mfd: add new driver for Sharp LoCoMo

Conflicts:
	arch/arm/common/locomo.c
	arch/arm/mach-sa1100/collie.c
	drivers/gpio/Kconfig
	drivers/gpio/Makefile
	drivers/mfd/Kconfig
	drivers/mfd/Makefile
Merge branch 'sa1100-no-cpufreq' into merged

* sa1100-no-cpufreq:
  pcmcia: sa1111: make use of device clock
  arm: sa1100: add a clock alias for sa1111 pcmcia device
  pcmcia: sa1100: make use of device clock
  fbdev: sa1100fb: make use of device clock
  arm: sa1100: add cpu clock
Merge branch 'sa1111-pcmcia' into merged

* sa1111-pcmcia:
  pcmcia: sa1111: pass sa1111_dev to jornada720-specific code
  pcmcia: sa1111: pass sa1111_dev to badge4-specific code
Merge branch 'sa1100-irda' into merged

* sa1100-irda:
  collie: add support for IrDA transceiver

Conflicts:
	arch/arm/mach-sa1100/include/mach/collie.h
Merge branch 'sa1100-debug' into merged

* sa1100-debug:
  ARM: debug: move StrongARM debug include to arch/arm/include/debug