Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32064503 authored by Mark Brown's avatar Mark Brown Committed by Samuel Ortiz
Browse files

mfd: Support active high IRQs on WM835x

parent 9dfd3381
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -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",
+2 −0
Original line number Diff line number Diff line
@@ -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;
};