diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-29 14:53:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-29 14:53:11 -0400 |
commit | 4b781474682434e7881f20e9dfbe6687ea619795 (patch) | |
tree | bdd976645ead7f04900e60017502e6a41b03e601 /drivers/power | |
parent | 53f2c4a8fd882009a2a75c5b72d6898c0808616e (diff) | |
parent | 29f772d41c01ad6b72c3de705e79779857badcde (diff) |
Merge tag 'mfd-3.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
Pull MFD changes from Samuel Ortiz:
"Besides the usual cleanups, this one brings:
* Support for 5 new chipsets: Intel's ICH LPC and SCH Centerton,
ST-E's STAX211, Samsung's MAX77693 and TI's LM3533.
* Device tree support for the twl6040, tps65910, da9502 and ab8500
drivers.
* Fairly big tps56910, ab8500 and db8500 updates.
* i2c support for mc13xxx.
* Our regular update for the wm8xxx driver from Mark."
Fix up various conflicts with other trees, largely due to ab5500 removal
etc.
* tag 'mfd-3.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (106 commits)
mfd: Fix build break of max77693 by adding REGMAP_I2C option
mfd: Fix twl6040 build failure
mfd: Fix max77693 build failure
mfd: ab8500-core should depend on MFD_DB8500_PRCMU
gpio: tps65910: dt: process gpio specific device node info
mfd: Remove the parsing of dt info for tps65910 gpio
mfd: Save device node parsed platform data for tps65910 sub devices
mfd: Add r_select to lm3533 platform data
gpio: Add Intel Centerton support to gpio-sch
mfd: Emulate active low IRQs as well as active high IRQs for wm831x
mfd: Mark two lm3533 zone registers as volatile
mfd: Fix return type of lm533 attribute is_visible
mfd: Enable Device Tree support in the ab8500-pwm driver
mfd: Enable Device Tree support in the ab8500-sysctrl driver
mfd: Add support for Device Tree to twl6040
mfd: Register the twl6040 child for the ASoC codec unconditionally
mfd: Allocate twl6040 IRQ numbers dynamically
mfd: twl6040 code cleanup in interrupt initialization part
mfd: Enable ab8500-gpadc driver for Device Tree
mfd: Prevent unassigned pointer from being used in ab8500-gpadc driver
...
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/wm831x_power.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/power/wm831x_power.c b/drivers/power/wm831x_power.c index 987332b71d8d..fc1ad9551182 100644 --- a/drivers/power/wm831x_power.c +++ b/drivers/power/wm831x_power.c | |||
@@ -565,7 +565,7 @@ static __devinit int wm831x_power_probe(struct platform_device *pdev) | |||
565 | goto err_usb; | 565 | goto err_usb; |
566 | } | 566 | } |
567 | 567 | ||
568 | irq = platform_get_irq_byname(pdev, "SYSLO"); | 568 | irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO")); |
569 | ret = request_threaded_irq(irq, NULL, wm831x_syslo_irq, | 569 | ret = request_threaded_irq(irq, NULL, wm831x_syslo_irq, |
570 | IRQF_TRIGGER_RISING, "System power low", | 570 | IRQF_TRIGGER_RISING, "System power low", |
571 | power); | 571 | power); |
@@ -575,7 +575,7 @@ static __devinit int wm831x_power_probe(struct platform_device *pdev) | |||
575 | goto err_battery; | 575 | goto err_battery; |
576 | } | 576 | } |
577 | 577 | ||
578 | irq = platform_get_irq_byname(pdev, "PWR SRC"); | 578 | irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "PWR SRC")); |
579 | ret = request_threaded_irq(irq, NULL, wm831x_pwr_src_irq, | 579 | ret = request_threaded_irq(irq, NULL, wm831x_pwr_src_irq, |
580 | IRQF_TRIGGER_RISING, "Power source", | 580 | IRQF_TRIGGER_RISING, "Power source", |
581 | power); | 581 | power); |
@@ -586,7 +586,9 @@ static __devinit int wm831x_power_probe(struct platform_device *pdev) | |||
586 | } | 586 | } |
587 | 587 | ||
588 | for (i = 0; i < ARRAY_SIZE(wm831x_bat_irqs); i++) { | 588 | for (i = 0; i < ARRAY_SIZE(wm831x_bat_irqs); i++) { |
589 | irq = platform_get_irq_byname(pdev, wm831x_bat_irqs[i]); | 589 | irq = wm831x_irq(wm831x, |
590 | platform_get_irq_byname(pdev, | ||
591 | wm831x_bat_irqs[i])); | ||
590 | ret = request_threaded_irq(irq, NULL, wm831x_bat_irq, | 592 | ret = request_threaded_irq(irq, NULL, wm831x_bat_irq, |
591 | IRQF_TRIGGER_RISING, | 593 | IRQF_TRIGGER_RISING, |
592 | wm831x_bat_irqs[i], | 594 | wm831x_bat_irqs[i], |
@@ -606,10 +608,10 @@ err_bat_irq: | |||
606 | irq = platform_get_irq_byname(pdev, wm831x_bat_irqs[i]); | 608 | irq = platform_get_irq_byname(pdev, wm831x_bat_irqs[i]); |
607 | free_irq(irq, power); | 609 | free_irq(irq, power); |
608 | } | 610 | } |
609 | irq = platform_get_irq_byname(pdev, "PWR SRC"); | 611 | irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "PWR SRC")); |
610 | free_irq(irq, power); | 612 | free_irq(irq, power); |
611 | err_syslo: | 613 | err_syslo: |
612 | irq = platform_get_irq_byname(pdev, "SYSLO"); | 614 | irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO")); |
613 | free_irq(irq, power); | 615 | free_irq(irq, power); |
614 | err_battery: | 616 | err_battery: |
615 | if (power->have_battery) | 617 | if (power->have_battery) |
@@ -626,17 +628,20 @@ err_kmalloc: | |||
626 | static __devexit int wm831x_power_remove(struct platform_device *pdev) | 628 | static __devexit int wm831x_power_remove(struct platform_device *pdev) |
627 | { | 629 | { |
628 | struct wm831x_power *wm831x_power = platform_get_drvdata(pdev); | 630 | struct wm831x_power *wm831x_power = platform_get_drvdata(pdev); |
631 | struct wm831x *wm831x = wm831x_power->wm831x; | ||
629 | int irq, i; | 632 | int irq, i; |
630 | 633 | ||
631 | for (i = 0; i < ARRAY_SIZE(wm831x_bat_irqs); i++) { | 634 | for (i = 0; i < ARRAY_SIZE(wm831x_bat_irqs); i++) { |
632 | irq = platform_get_irq_byname(pdev, wm831x_bat_irqs[i]); | 635 | irq = wm831x_irq(wm831x, |
636 | platform_get_irq_byname(pdev, | ||
637 | wm831x_bat_irqs[i])); | ||
633 | free_irq(irq, wm831x_power); | 638 | free_irq(irq, wm831x_power); |
634 | } | 639 | } |
635 | 640 | ||
636 | irq = platform_get_irq_byname(pdev, "PWR SRC"); | 641 | irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "PWR SRC")); |
637 | free_irq(irq, wm831x_power); | 642 | free_irq(irq, wm831x_power); |
638 | 643 | ||
639 | irq = platform_get_irq_byname(pdev, "SYSLO"); | 644 | irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO")); |
640 | free_irq(irq, wm831x_power); | 645 | free_irq(irq, wm831x_power); |
641 | 646 | ||
642 | if (wm831x_power->have_battery) | 647 | if (wm831x_power->have_battery) |