ARM: sa1100: add irq handler to prepare MULTI_IRQ_HANDLER

Add sa1100_handle_irq implementating handle_irq for sa1100 platform.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
ARM: sa1100: enable MULTI_IRQ_HANDLER for all boards

Use sa1100_handle_irq to handle irqs on all sa1100 boards.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
ARM: sa1100: drop entry-macro.S

As mach-sa1100 was converted to MULTI_IRQ_HANDLER, drop now-unused
entry-macro.S file.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
ARM: sa1100: switch to COMMON_CLK framework

Implement common clock framework support for SA-1100.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ASM: collie: use gpio-charger instead of pda-power

Use gpio-charger driver instead of pda-power: it automatically cares
about used gpio and since collie does not differentiate between usb and
ac chargers, pda-power is an overkill for it.

As a bonus this allows us to remove gpio_to_irq calls from machine init
call - it is fragile. These gpio_to_irq calls will fail if gpios are
registered later, via device driver mechanisms.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ASM: pci-nanoengine: use sa1110_mb_enable

generic.c file already provides a function to enable MBREQ/MBGNT
signals. Use that function instead of self-cooked sequence.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: sa1100: convert gpio driver to be a proper platform driver

Start cleaning up/refreshing SA1100 GPIO driver.
* Changed to bind through device model.
* Replaced direct register access with readl/writel.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: sa1100: add platform function to handle PWER settings for GPIO

PWER settings logically belongs neither to GPIO nor to system IRQ code.
Add special function to handle PWER (for GPIO for now) from platform
code.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: debug: move StrongARM debug include to arch/arm/include/debug

StrongARM debug-macro.S is quite standalone thing, depending only on
register mappings. Move it to proper place and add Kconfig entry.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: sa1100: move gpio irq handling to GPIO driver

mach-sa1100's irq.c contains a mixture of system and GPIO irqs handling.
Split out GPIO irqchip to gpio-sa1100.c. To decouple first 11 GPIO IRQs
handling, make IRQ0-IRQ10 use chained irq handlers that just pass the
IRQ to GPIO IRQs.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: sa1100: move per-IRQ PWER settings to core code

In attempt to limit register access from non-core code, move PWER access
to generic.c, having irqchip code call sa11x0_sc_set_wake() function
to set wake status.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: sa1100: irq: replace direct-mapped access with proper ioremap

Use ioremapped region for register access in sa1100 SC IRQ driver.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: locomo: adapt to support SPARSE_IRQ

Make locomo irq support allocate and irq descs. Board code thus can pass
0 as irq_base and system code will find & allocate irq space for locomo
driver.

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

As locomo has been converted to SPARSE_IRQ support, stop playing with
NR_IRQS on sa1100.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: sa1100: collie: don't pass irq_base to locomo

It is unnecessary to pass irq_base to locomo, it will alloc irqs on it's own.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: pxa: poodle: don't pass irq_base to locomo

It is unnecessary to pass irq_base to locomo, it will alloc irqs on it's own.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
ARM: locomo: drop irq_base field from platform data

As both locomo users stopped passing irq_base to locomo driver,
drop irq_base field from locomo platform data.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
collie: add support for IrDA transceiver

Collie has onboard IrDA transceiver controlled via active-low gpio. Add
corresponding platform data.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
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>