mfd: Support active high IRQs on WM835x
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@openedhand.com>
This commit is contained in:
parent
9dfd338198
commit
3206450355
@ -1438,7 +1438,21 @@ int wm8350_device_init(struct wm8350 *wm8350, int irq,
|
||||
mutex_init(&wm8350->irq_mutex);
|
||||
INIT_WORK(&wm8350->irq_work, wm8350_irq_worker);
|
||||
if (irq) {
|
||||
ret = request_irq(irq, wm8350_irq, 0,
|
||||
int flags = 0;
|
||||
|
||||
if (pdata && pdata->irq_high) {
|
||||
flags |= IRQF_TRIGGER_HIGH;
|
||||
|
||||
wm8350_set_bits(wm8350, WM8350_SYSTEM_CONTROL_1,
|
||||
WM8350_IRQ_POL);
|
||||
} else {
|
||||
flags |= IRQF_TRIGGER_LOW;
|
||||
|
||||
wm8350_clear_bits(wm8350, WM8350_SYSTEM_CONTROL_1,
|
||||
WM8350_IRQ_POL);
|
||||
}
|
||||
|
||||
ret = request_irq(irq, wm8350_irq, flags,
|
||||
"wm8350", wm8350);
|
||||
if (ret != 0) {
|
||||
dev_err(wm8350->dev, "Failed to request IRQ: %d\n",
|
||||
|
@ -640,9 +640,11 @@ struct wm8350 {
|
||||
*
|
||||
* @init: Function called during driver initialisation. Should be
|
||||
* used by the platform to configure GPIO functions and similar.
|
||||
* @irq_high: Set if WM8350 IRQ is active high.
|
||||
*/
|
||||
struct wm8350_platform_data {
|
||||
int (*init)(struct wm8350 *wm8350);
|
||||
int irq_high;
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user