linux/drivers/mfd
Linus Torvalds c207f3a431 Generialize powerpc's irq_host as irq_domain
This branch takes the PowerPC irq_host infrastructure (reverse mapping
 from Linux IRQ numbers to hardware irq numbering), generalizes it,
 renames it to irq_domain, and makes it available to all architectures.
 
 Originally the plan has been to create an all-new irq_domain
 implementation which addresses some of the powerpc shortcomings such
 as not handling 1:1 mappings well, but doing that proved to be far
 more difficult and invasive than generalizing the working code and
 refactoring it in-place.  So, this branch rips out the 'new'
 irq_domain and replaces it with the modified powerpc version (in a
 fully bisectable way of course).  It converts all users over to the
 new API and makes irq_domain selectable on any architecture.
 
 No architecture is forced to enable irq_domain, but the infrastructure
 is required for doing OpenFirmware style irq translations.  It will
 even work on SPARC even though SPARC has it's own mechanism for
 translating irqs at boot time.  MIPS, microblaze, embedded x86 and c6x
 are converted too.
 
 The resulting irq_domain code is probably still too verbose and can be
 optimized more, but that can be done incrementally and is a task for
 follow-on patches.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJPZ1yiAAoJEEFnBt12D9kB4yIQAJvCfTPL65sCYVD6i9RnVHtR
 ahwddtd0AtT+UYLU8Xg2fZgVi6cmupDGnqkBixzZD3xxSTERqm7Snqa0ugklfeAi
 B6Zqf/K17H5hJNaoQ3fkNauow8m7ZYOeEH2vVUvkb3woWS9Wm7OGd+BvcIBgYSGe
 Aaoumhu7kDxFkii0qz3x/+kvsb6DRp2HtSPWj+APL/kNjdiO4JBOihtcc/lX6d47
 bsZLiEMzHUFV4ApJNwqmfDnf54oMrHmrRJxgQHIMjeJC5or9I3Do8wDGe/aTF5xO
 5GVpxCQsTlJMjTBWlAFtpTwCJB6y76EHQrHc7WzLlq8OJSsxApOke8M0BzXFrfMy
 CU7UUpTvNZTLpZibLCEQKemv1+oNOkfFylsHxfek2MCqx0W6W4FHEGV3qE/GtgV9
 +vurA9hNNp7VM0FGRGigcUr3woYdHLdEVQrlnL7Z9AgBu1W44MZLaai7iRVZOeCT
 ZQ9++v2PJJ8vHT8kdkgTdiRpnEhmv84MX/GBT7ilWFEMIVeT5zhGkIBojzNgyzGc
 7cvermmM0P8h+unkDgmzmSbDxo0PboqVKeoO71AOBhA6MmR9iom7XkuNdHhoOwy2
 4A5xT1srbhJDbuv15BBREBV24TywpZ4a1+4nwQT4L1fXe+HfCxeEWexGcKQMRcIt
 dAelOHTQ+ZGkOKvXeW05
 =ruGA
 -----END PGP SIGNATURE-----

Merge tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6

Pull irq_domain support for all architectures from Grant Likely:
 "Generialize powerpc's irq_host as irq_domain

  This branch takes the PowerPC irq_host infrastructure (reverse mapping
  from Linux IRQ numbers to hardware irq numbering), generalizes it,
  renames it to irq_domain, and makes it available to all architectures.

  Originally the plan has been to create an all-new irq_domain
  implementation which addresses some of the powerpc shortcomings such
  as not handling 1:1 mappings well, but doing that proved to be far
  more difficult and invasive than generalizing the working code and
  refactoring it in-place.  So, this branch rips out the 'new'
  irq_domain and replaces it with the modified powerpc version (in a
  fully bisectable way of course).  It converts all users over to the
  new API and makes irq_domain selectable on any architecture.

  No architecture is forced to enable irq_domain, but the infrastructure
  is required for doing OpenFirmware style irq translations.  It will
  even work on SPARC even though SPARC has it's own mechanism for
  translating irqs at boot time.  MIPS, microblaze, embedded x86 and c6x
  are converted too.

  The resulting irq_domain code is probably still too verbose and can be
  optimized more, but that can be done incrementally and is a task for
  follow-on patches."

* tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6: (31 commits)
  dt: fix twl4030 for non-dt compile on x86
  mfd: twl-core: Add IRQ_DOMAIN dependency
  devicetree: Add empty of_platform_populate() for !CONFIG_OF_ADDRESS (sparc)
  irq_domain: Centralize definition of irq_dispose_mapping()
  irq_domain/mips: Allow irq_domain on MIPS
  irq_domain/x86: Convert x86 (embedded) to use common irq_domain
  ppc-6xx: fix build failure in flipper-pic.c and hlwd-pic.c
  irq_domain/microblaze: Convert microblaze to use irq_domains
  irq_domain/powerpc: Replace custom xlate functions with library functions
  irq_domain/powerpc: constify irq_domain_ops
  irq_domain/c6x: Use library of xlate functions
  irq_domain/c6x: constify irq_domain structures
  irq_domain/c6x: Convert c6x to use generic irq_domain support.
  irq_domain: constify irq_domain_ops
  irq_domain: Create common xlate functions that device drivers can use
  irq_domain: Remove irq_domain_add_simple()
  irq_domain: Remove 'new' irq_domain in favour of the ppc one
  mfd: twl-core.c: Fix the number of interrupts managed by twl4030
  of/address: add empty static inlines for !CONFIG_OF
  irq_domain: Add support for base irq and hwirq in legacy mappings
  ...
2012-03-21 10:27:19 -07:00
..
88pm860x-core.c mfd: Avoid to use constraint name in 88pm860x regulator driver 2011-05-26 19:45:38 +02:00
88pm860x-i2c.c mfd: Introduce missing kfree in 88pm860x probe routine 2012-01-09 00:37:47 +01:00
Kconfig mfd: twl-core: Add IRQ_DOMAIN dependency 2012-02-26 16:48:06 -07:00
Makefile Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 2012-01-13 20:43:32 -08:00
aat2870-core.c mfd: Convert aat2870 to dev_pm_ops 2012-01-09 00:37:48 +01:00
ab3100-core.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
ab3100-otp.c mfd: Fix memory leak in ab3100_otp_probe 2010-08-12 11:27:17 +02:00
ab5500-core.c Merge branch 'master' into for-next 2012-02-03 23:13:05 +01: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: Fix ab8500 error path bug 2012-02-21 11:57:24 +01: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: Unify abx500 headers in mfd/abx500 2012-01-09 00:37:39 +01: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
asic3.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
cs5535-mfd.c mfd: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-09 00:37:37 +01: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: Clearing events requires event registers to be writable for da9052-core 2012-01-03 20:18:11 +00:00
da9052-i2c.c MFD: DA9052/53 MFD core module 2011-12-14 19:53:32 +08:00
da9052-spi.c MFD: DA9052/53 MFD core module add SPI support v2 2011-12-14 19:53:45 +08: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/db8500-prcmu: remove support for early silicon revisions 2012-01-03 21:47:04 +00:00
dbx500-prcmu-regs.h mfd: Move to the new db500 PRCMU API 2011-10-24 14:09:18 +02: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 MFD drivers to use module_platform_driver 2012-01-09 00:37:31 +01:00
janz-cmodio.c module_param: check type correctness for module_param_array 2012-01-13 09:32:16 +10:30
jz4740-adc.c mfd: Don't declare jz4740_adc_cells const 2012-01-09 00:37:36 +01:00
lpc_sch.c mfd: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-09 00:37:37 +01: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
mc13xxx-core.c mfd: Add device tree probe support for mc13xxx 2012-01-09 00:37:35 +01:00
mcp-core.c MFD: mcp-core: fix complaints from the genirq layer 2012-01-20 17:57:35 +00:00
mcp-sa11x0.c Revert "ARM: sa11x0: Implement autoloading of codec and codec pdata for mcp bus." 2012-01-20 17:38:58 +00: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-02-23 17:34:22 +01:00
omap-usb-host.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 2012-01-13 20:43:32 -08: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 to use new register map API 2011-10-24 14:09:08 +02:00
pcf50633-gpio.c
pcf50633-irq.c mfd: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:05 -04: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
rdc321x-southbridge.c mfd: Use mfd cell platform_data for rdc321x cells platform bits 2011-05-26 19:45:06 +02:00
s5m-core.c mfd: Fix possible s5m null pointer dereference 2012-02-20 16:18:55 +01:00
s5m-irq.c mfd: Add s5m series irq driver 2012-01-09 00:37:46 +01:00
sm501.c mfd: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-09 00:37:37 +01:00
stmpe-i2c.c mfd: Add support for stmpe variant 801 2012-01-09 00:37:44 +01:00
stmpe-spi.c mfd: Add support for stmpe variant 801 2012-01-09 00:37:44 +01:00
stmpe.c mfd: Fix stmpe section mismatch 2012-01-09 00:37:45 +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
tps65910-irq.c mfd: Make TPS65910 usable without interrupts 2012-01-09 00:37:40 +01:00
tps65910.c mfd: Initialize tps65910 irq platform data properly 2012-02-20 17:45:26 +01: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-02-23 17:38:10 +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 dt: fix twl4030 for non-dt compile on x86 2012-03-05 08:09:09 -07:00
twl-core.h mfd: Fix twl-irq function declaration warnings 2010-10-29 00:30:16 +02: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: Fix twl4030-irq typo 2012-01-09 00:37:33 +01: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 freezer: don't unnecessarily set PF_NOFREEZE explicitly 2011-11-21 12:32:22 -08:00
twl6030-pwm.c mfd: twl6030-pwm.c needs MODULE_LICENSE 2011-07-31 23:28:27 +02:00
twl6040-core.c mfd: Avoid twl6040-codec PLL reconfiguration when not needed 2012-02-03 19:03:50 +01:00
twl6040-irq.c MFD: twl6040: Demand valid interrupt configuration 2011-07-07 14:23:25 +03:00
ucb1x00-assabet.c move drivers/mfd/*.h to include/linux/mfd 2009-11-27 21:07:18 +01:00
ucb1x00-core.c MFD: ucb1x00-core: fix gpiolib direction_output handling 2012-01-21 18:34:46 +00:00
ucb1x00-ts.c MFD: ucb1x00-ts: fix resume failure 2012-01-22 21:10:40 +00:00
ucb1400_core.c Fix common misspellings 2011-03-31 11:26:23 -03:00
vx855.c mfd: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-09 00:37:37 +01: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: Support multiple active WM831x AUXADC conversions 2011-07-31 23:28:20 +02:00
wm831x-core.c mfd: Return an error on failed wm831x register writes 2012-01-09 00:37:40 +01:00
wm831x-i2c.c mfd: Convert wm831x core driver to devm_kzalloc() 2012-01-09 00:37:28 +01:00
wm831x-irq.c mfd: Still check other interrupts if we get a wm831x touchscreen IRQ 2012-01-09 00:37:47 +01:00
wm831x-otp.c mfd: Add basic WM831x OTP support 2009-09-17 09:46:59 +02:00
wm831x-spi.c mfd: Remove redundant spi driver bus initialization 2012-01-09 00:37:31 +01:00
wm8350-core.c mfd: Store wm8350 struct in core device driver data 2012-01-09 00:37:31 +01: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 to devm_kzalloc() 2012-01-09 00:37:32 +01:00
wm8350-irq.c mfd: wm8350 variable dereferenced before check 2012-02-20 16:18:47 +01:00
wm8350-regmap.c mfd: Remove build time warning for WM835x register default tables 2009-12-13 19:21:53 +01:00
wm8400-core.c mfd: Convert WM8400 to devm_kzalloc() 2012-01-09 00:37:39 +01:00
wm8994-core.c mfd: Test for jack detection when deciding if wm8994 should suspend 2012-02-21 11:51:28 +01: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: Correct readability of WM8994 DC servo 4E register 2012-03-01 01:42:52 +01:00
wm8994.h mfd: Initialise WM8994 register cache after reading chip ID registers 2011-12-13 00:11:13 +08:00