linux/drivers/mfd
Mark Brown cd99758ba3 mfd: Convert wm831x to irq_domain
The modern idiom is to use irq_domain to allocate interrupts. This is
useful partly to allow further infrastructure to be based on the domains
and partly because it makes it much easier to allocate virtual interrupts
to devices as we don't need to allocate a contiguous range of interrupt
numbers.

Convert the wm831x driver over to this infrastructure, using a legacy
IRQ mapping if an irq_base is specified in platform data and otherwise
using a linear mapping, always registering the interrupts even if they
won't ever be used. Only boards which need to use the GPIOs as
interrupts should need to use an irq_base.

This means that we can't use the MFD irq_base management since the
unless we're using an explicit irq_base from platform data we can't rely
on a linear mapping of interrupts.  Instead we need to map things via
the irq_domain - provide a conveniencem function wm831x_irq() to save a
small amount of typing when doing so. Looking at this I couldn't clearly
see anything the MFD core could do to make this nicer.

Since we're not supporting device tree yet there's no meaningful
advantage if we don't do this conversion in one, the fact that the
interrupt resources are used for repeated IP blocks makes accessor
functions for the irq_domain more trouble to do than they're worth.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-05-20 17:27:07 +02:00
..
88pm860x-core.c mfd: Fix pm8606 build failure 2012-03-06 18:46:57 +01:00
88pm860x-i2c.c mfd: Add ability to wake the system for 88pm860x 2012-03-06 18:46:49 +01:00
aat2870-core.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ab3100-core.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ab3100-otp.c
ab5500-core.c mfd: Mark const init data with __initconst instead of __initdata for ab5500 2012-05-01 12:00:20 +02:00
ab5500-core.h mfd: Break out ab5500 debugfs code 2011-10-24 14:09:16 +02:00
ab5500-debugfs.c mfd: Unify abx500 headers in mfd/abx500 2012-01-09 00:37:39 +01:00
ab5500-debugfs.h mfd: Break out ab5500 debugfs code 2011-10-24 14:09:16 +02:00
ab8500-core.c mfd: Support of hierachical interrupt for ab8500 2012-05-11 11:16:27 +02:00
ab8500-debugfs.c mfd: Unify abx500 headers in mfd/abx500 2012-01-09 00:37:39 +01:00
ab8500-gpadc.c mfd: Unify abx500 headers in mfd/abx500 2012-01-09 00:37:39 +01:00
ab8500-i2c.c mfd: Handle the ab8500 irq for suspend/resume 2012-05-01 13:33:04 +02:00
ab8500-sysctrl.c mfd: Unify abx500 headers in mfd/abx500 2012-01-09 00:37:39 +01:00
abx500-core.c mfd: Add module.h to the implicit drivers/mfd users 2011-10-31 19:32:04 -04:00
adp5520.c mfd: Set adp5520 bits if new value is different from the old one 2011-12-20 18:50:55 +01:00
anatop-mfd.c mfd: Add anatop mfd driver 2012-03-16 21:12:32 +01:00
asic3.c mfd: No need to check for the GPIO offset from asic3_gpio_to_irq 2012-05-01 12:00:23 +02:00
cs5535-mfd.c mfd: Use module_pci_driver 2012-05-01 12:00:21 +02:00
da903x.c mfd: Set da903x bits if new value is different from the old one 2011-12-20 18:50:56 +01:00
da9052-core.c mfd: Remove unused io_lock mutex from da9052 2012-03-06 18:46:48 +01:00
da9052-i2c.c mfd: Convert da9052 to use devm_* APIs 2012-05-20 17:27:03 +02:00
da9052-spi.c mfd: Convert da9052 to use devm_* APIs 2012-05-20 17:27:03 +02:00
davinci_voicecodec.c mfd: Use mfd cell platform_data for davinci cells platform bits 2011-05-26 19:45:13 +02:00
db5500-prcmu.c mfd: Fix db5500-prcmu defines 2011-10-24 14:09:19 +02:00
db8500-prcmu.c mfd: Add support for db8500-prcmu regulator supply for nmk-i2c.4 2012-05-09 17:19:53 +02:00
dbx500-prcmu-regs.h mfd : Check if the other db8500 core is in WFI 2012-03-06 18:46:56 +01:00
dm355evm_msp.c mfd: Use gpio_request_one from dm355evm_msp 2012-01-09 00:37:38 +01:00
ezx-pcap.c Fix common misspellings 2011-03-31 11:26:23 -03:00
htc-egpio.c mfd: Fold irq_set_chip/irq_set_handler 2011-03-27 00:09:52 +01:00
htc-i2cpld.c mfd: Fold irq_set_chip/irq_set_handler 2011-03-27 00:09:52 +01:00
htc-pasic3.c w1: ds1wm: add a reset recovery parameter 2011-07-08 21:14:44 -07:00
intel_msic.c mfd: Convert Intel MSIC driver to use devm_* interfaces. 2012-05-01 12:00:23 +02:00
janz-cmodio.c mfd: Use module_pci_driver 2012-05-01 12:00:21 +02:00
jz4740-adc.c mfd: Don't declare jz4740_adc_cells const 2012-01-09 00:37:36 +01:00
Kconfig mfd: Convert wm831x to irq_domain 2012-05-20 17:27:07 +02:00
lm3533-core.c mfd: Silence an lm3533 gcc warning 2012-05-20 17:27:04 +02:00
lm3533-ctrlbank.c mfd: Use SI-units for the lm3533 max-current interface 2012-05-20 17:27:02 +02:00
lpc_ich.c watchdog: Convert iTCO_wdt driver to mfd model 2012-05-09 17:20:09 +02:00
lpc_sch.c mfd: Change tunnelcreek watchdog name on the lpc_sch subdevices array 2012-05-20 17:27:03 +02:00
Makefile mfd: Add MAX77693 irq handler 2012-05-20 17:27:06 +02:00
max8925-core.c max8925_power: Remove support for irq bits that do not exist 2011-11-25 23:24:45 +04:00
max8925-i2c.c mfd: Add pm ops to max8925 2012-01-09 01:03:34 +01:00
max8997-irq.c mfd: Remove dead code from max8997-irq 2011-07-31 23:28:25 +02:00
max8997.c mfd: Add platform data and devices for MAX8997 LED control 2012-01-09 00:37:41 +01:00
max8998-irq.c mfd: Cleanup irq namespace 2011-03-27 00:09:51 +01:00
max8998.c mfd: Use standard device wakeup for handling max8998 wakeup device 2012-01-09 00:37:36 +01:00
max77693-irq.c mfd: Add MAX77693 irq handler 2012-05-20 17:27:06 +02:00
max77693.c mfd: Add MAX77693 irq handler 2012-05-20 17:27:06 +02:00
mc13xxx-core.c mfd: Move the mc13xxx-core spi specific code into a separate module 2012-05-01 12:35:40 +02:00
mc13xxx-i2c.c mfd: Add mc13xxx i2c driver 2012-05-01 12:35:41 +02:00
mc13xxx-spi.c mfd: Move the mc13xxx-core spi specific code into a separate module 2012-05-01 12:35:40 +02:00
mc13xxx.h mfd: Move the mc13xxx-core spi specific code into a separate module 2012-05-01 12:35:40 +02:00
mcp-core.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
mcp-sa11x0.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
menelaus.c Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6 2011-11-03 09:40:51 -07:00
mfd-core.c mfd: Fix ACPI conflict check 2012-03-06 18:46:47 +01:00
omap-usb-host.c mfd: Fix build breakage in omap-usb-host.c 2012-05-01 12:00:24 +02:00
pcf50633-adc.c mfd: Convert MFD drivers to use module_platform_driver 2012-01-09 00:37:31 +01:00
pcf50633-core.c mfd: Convert pcf50633-core to use devm_* APIs 2012-05-20 17:27:04 +02:00
pcf50633-gpio.c mfd: Include linux/mfd/pcf50633/pmic.h in pcf50633-gpio.c 2012-03-06 18:46:51 +01:00
pcf50633-irq.c mfd: Include linux/mfd/pcf50633/mbc.h in pcf50633-irq.c 2012-03-06 18:46:51 +01:00
pm8xxx-irq.c mfd: Add pm8xxx irq support 2011-05-26 19:45:28 +02:00
pm8921-core.c mfd: Add pm8xxx irq support 2011-05-26 19:45:28 +02:00
rc5t583-irq.c mfd: Add support for RICOH PMIC RC5T583 2012-03-16 20:05:45 +01:00
rc5t583.c mfd: Convert rc5t583 to devm_regmap_init_i2c() 2012-05-09 17:50:29 +02:00
rdc321x-southbridge.c mfd: Use module_pci_driver 2012-05-01 12:00:21 +02:00
s5m-core.c mfd: Convert s5m-core to devm_regmap_init_i2c() 2012-05-09 17:50:53 +02:00
s5m-irq.c mfd: Fix s5m error handling for invalid device type 2012-03-06 18:46:35 +01:00
sm501.c mfd: Use DIV_ROUND_CLOSEST for sm501 clock 2012-03-16 20:37:47 +01:00
sta2x11-mfd.c mfd: Add driver for STA2X11 MFD block 2012-05-09 15:34:28 +02:00
stmpe-i2c.c mfd: Add support for stmpe variant 801 2012-01-09 00:37:44 +01:00
stmpe-spi.c mfd: Remove redundant spi driver bus initialization 2012-05-01 12:00:22 +02:00
stmpe.c mfd: Add support for no-interrupt stmpe config 2012-03-06 18:46:38 +01:00
stmpe.h mfd: Add support for stmpe variant 801 2012-01-09 00:37:44 +01:00
t7l66xb.c mfd: Convert MFD drivers to use module_platform_driver 2012-01-09 00:37:31 +01:00
tc3589x.c mfd: Add missing #ifdef around tc3589x PM block 2011-10-24 14:09:09 +02:00
tc6387xb.c mfd: Convert MFD drivers to use module_platform_driver 2012-01-09 00:37:31 +01:00
tc6393xb.c mtd: Use platform_data to retrieve tmio_nand platform bits 2011-05-26 19:45:04 +02:00
ti-ssp.c mfd: Convert MFD drivers to use module_platform_driver 2012-01-09 00:37:31 +01:00
timberdale.c mfd: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-09 00:37:37 +01:00
timberdale.h [media] mfd: Add timberdale video-in driver to timberdale 2010-12-29 08:16:46 -02:00
tmio_core.c mfd: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:05 -04:00
tps6105x.c mfd: Use mfd cell platform_data for tps6105x cells platform bits 2011-05-26 19:45:11 +02:00
tps6507x.c mfd: Fix off-by-one value range checking for tps6507x 2010-10-29 00:30:29 +02:00
tps6586x.c mfd: Set tps6586x bits if new value is different from the old one 2011-12-20 18:50:56 +01:00
tps65010.c mfd: Include <linux/gpio.h> instead of <asm/gpio.h> 2011-01-14 12:37:36 +01:00
tps65090.c mfd: Convert tps65090 to devm_regmap_init_i2c() 2012-05-09 17:51:26 +02:00
tps65217.c mfd: Staticise non-exported tps65217_update_bits() 2012-05-20 17:27:00 +02:00
tps65910-irq.c mfd: Commonize tps65910 regmap access through header 2012-05-20 17:25:23 +02:00
tps65910.c mfd: Fix tps65910 build failure 2012-05-20 17:27:00 +02:00
tps65911-comparator.c mfd: Remove comp{1,2}_threshold sysfs entries in tps65911_comparator_remove 2011-07-31 23:28:24 +02:00
tps65912-core.c mfd: Initialize tps65912 irq platform data properly 2012-03-06 18:46:47 +01:00
tps65912-i2c.c mfd: Fix off-by-one value range checking for tps65912_i2c_write 2011-07-31 23:28:25 +02:00
tps65912-irq.c tps65912: irq: add interrupt controller 2011-07-31 23:28:22 +02:00
tps65912-spi.c mfd: Remove redundant spi driver bus initialization 2012-01-09 00:37:31 +01:00
twl-core.c mfd: Define all twl-regulator feature flags in one place 2012-05-20 17:26:58 +02:00
twl-core.h mfd: Move twl-core IRQ allocation into twl[4030|6030]-irq files 2012-03-22 13:04:33 +01:00
twl4030-audio.c mfd: Convert MFD drivers to use module_platform_driver 2012-01-09 00:37:31 +01:00
twl4030-irq.c mfd: enable wakeup on twl4030 IRQ. 2012-05-09 18:02:51 +02:00
twl4030-madc.c mfd: Convert MFD drivers to use module_platform_driver 2012-01-09 00:37:31 +01:00
twl4030-power.c ARM: omap: fix section mismatch errors in TWL PMIC driver 2012-02-13 10:00:35 +00:00
twl6030-irq.c mfd: Replace twl-* pr_ macros by the dev_ equivalent and do various cleanups 2012-03-22 13:05:34 +01:00
twl6030-pwm.c mfd: twl6030-pwm.c needs MODULE_LICENSE 2011-07-31 23:28:27 +02:00
twl6040-core.c mfd: Add regulator support for twl6040 VIO, V2V1 supplies 2012-05-09 21:55:45 +02:00
twl6040-irq.c MFD: twl6040: Demand valid interrupt configuration 2011-07-07 14:23:25 +03:00
ucb1x00-assabet.c MFD: ucb1x00-assabet: add support for UCB1x00 GPIO switches 2012-02-18 23:15:44 +00:00
ucb1x00-core.c MFD: ucb1x00-core: add wakeup support 2012-02-18 23:15:43 +00:00
ucb1x00-ts.c MFD: ucb1x00: convert to use genirq 2012-02-18 23:15:43 +00:00
ucb1400_core.c Fix common misspellings 2011-03-31 11:26:23 -03:00
vx855.c mfd: Use module_pci_driver 2012-05-01 12:00:21 +02:00
wl1273-core.c mfd: Add module.h to the implicit drivers/mfd users 2011-10-31 19:32:04 -04:00
wm831x-auxadc.c mfd: Convert wm831x to irq_domain 2012-05-20 17:27:07 +02:00
wm831x-core.c mfd: Convert wm831x to irq_domain 2012-05-20 17:27:07 +02:00
wm831x-i2c.c mfd: wm831x: Convert to devm_regmap_init() 2012-02-22 13:57:05 +00:00
wm831x-irq.c mfd: Convert wm831x to irq_domain 2012-05-20 17:27:07 +02:00
wm831x-otp.c
wm831x-spi.c MFD changes for 3.4 2012-03-28 13:56:35 -07:00
wm8350-core.c mfd: Convert wm8350 physical I/O to regmap API 2012-05-07 11:32:08 +02:00
wm8350-gpio.c mfd: Rename wm8350 static gpio_set_debounce() 2011-09-06 16:37:58 +02:00
wm8350-i2c.c mfd: Convert wm8350 physical I/O to regmap API 2012-05-07 11:32:08 +02:00
wm8350-irq.c mfd: wm8350 variable dereferenced before check 2012-03-06 18:46:34 +01:00
wm8350-regmap.c
wm8400-core.c mfd: Export wm8400_block_read() 2012-05-20 17:27:05 +02:00
wm8994-core.c mfd: Convert wm8994 to module_i2c_driver() 2012-05-07 11:32:09 +02:00
wm8994-irq.c mfd: Convert wm8994 to use generic regmap irq_chip 2011-12-13 00:14:06 +08:00
wm8994-regmap.c mfd: Cache wm8994 chip revision 2012-05-01 12:00:21 +02:00
wm8994.h mfd: Initialise WM8994 register cache after reading chip ID registers 2011-12-13 00:11:13 +08:00