aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-01-21 08:26:46 -0500
committerSamuel Ortiz <sameo@linux.intel.com>2011-03-23 05:41:44 -0400
commitb103e0b3c52e6edb4839ccc961cf335ca6b88918 (patch)
tree92b516f01a0fa9dcc0acb8a5635cfbc0af55b5bd
parent939941d44dcaa138241d2182bd9e10f2b5d52665 (diff)
mfd: Support configuration of WM831x /IRQ output in CMOS mode
Provide platform data allowing the system to set the /IRQ pin into CMOS mode rather than the default open drain. The default value of this platform data reflects the default hardware configuration so there should be no change to existing users. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
-rw-r--r--drivers/mfd/wm831x-irq.c8
-rw-r--r--include/linux/mfd/wm831x/pdata.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/mfd/wm831x-irq.c b/drivers/mfd/wm831x-irq.c
index 2691648e607e..90ad3fa91329 100644
--- a/drivers/mfd/wm831x-irq.c
+++ b/drivers/mfd/wm831x-irq.c
@@ -520,6 +520,14 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
520 return 0; 520 return 0;
521 } 521 }
522 522
523 if (pdata->irq_cmos)
524 i = 0;
525 else
526 i = WM831X_IRQ_OD;
527
528 wm831x_set_bits(wm831x, WM831X_IRQ_CONFIG,
529 WM831X_IRQ_OD, i);
530
523 /* Try to flag /IRQ as a wake source; there are a number of 531 /* Try to flag /IRQ as a wake source; there are a number of
524 * unconditional wake sources in the PMIC so this isn't 532 * unconditional wake sources in the PMIC so this isn't
525 * conditional but we don't actually care *too* much if it 533 * conditional but we don't actually care *too* much if it
diff --git a/include/linux/mfd/wm831x/pdata.h b/include/linux/mfd/wm831x/pdata.h
index 173086d42af4..ac3aa73943e7 100644
--- a/include/linux/mfd/wm831x/pdata.h
+++ b/include/linux/mfd/wm831x/pdata.h
@@ -109,6 +109,9 @@ struct wm831x_pdata {
109 /** Called after subdevices are set up */ 109 /** Called after subdevices are set up */
110 int (*post_init)(struct wm831x *wm831x); 110 int (*post_init)(struct wm831x *wm831x);
111 111
112 /** Put the /IRQ line into CMOS mode */
113 bool irq_cmos;
114
112 int irq_base; 115 int irq_base;
113 int gpio_base; 116 int gpio_base;
114 struct wm831x_backlight_pdata *backlight; 117 struct wm831x_backlight_pdata *backlight;