From patchwork Mon Nov 23 12:39:39 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mika Westerberg X-Patchwork-Id: 62158 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nANCiIBJ027848 for ; Mon, 23 Nov 2009 12:44:18 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757184AbZKWMoL (ORCPT ); Mon, 23 Nov 2009 07:44:11 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757231AbZKWMoL (ORCPT ); Mon, 23 Nov 2009 07:44:11 -0500 Received: from smtp.nokia.com ([192.100.122.230]:19061 "EHLO mgw-mx03.nokia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757184AbZKWMoK (ORCPT ); Mon, 23 Nov 2009 07:44:10 -0500 Received: from esebh105.NOE.Nokia.com (esebh105.ntc.nokia.com [172.21.138.211]) by mgw-mx03.nokia.com (Switch-3.3.3/Switch-3.3.3) with ESMTP id nANChxHr030280; Mon, 23 Nov 2009 14:44:14 +0200 Received: from vaebh104.NOE.Nokia.com ([10.160.244.30]) by esebh105.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 23 Nov 2009 14:44:13 +0200 Received: from mgw-da02.ext.nokia.com ([147.243.128.26]) by vaebh104.NOE.Nokia.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.3959); Mon, 23 Nov 2009 14:44:11 +0200 Received: from localhost.localdomain (esdhcp04137.research.nokia.com [172.21.41.37]) by mgw-da02.ext.nokia.com (Switch-3.3.3/Switch-3.3.3) with ESMTP id nANCi7tn010292; Mon, 23 Nov 2009 14:44:09 +0200 From: Mika Westerberg To: dmitry.torokhov@gmail.com Cc: linux-input@vger.kernel.org Subject: [PATCH v2 1/2] Input: gpio-keys - allow platform to specify exact irq flags Date: Mon, 23 Nov 2009 14:39:39 +0200 Message-Id: <8237c9a4afd1fa883120b5793fcd91a970d2ffb7.1258976669.git.ext-mika.1.westerberg@nokia.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: References: <20091120084054.GC3009@core.coreip.homeip.net> In-Reply-To: References: X-OriginalArrivalTime: 23 Nov 2009 12:44:11.0753 (UTC) FILETIME=[A8180590:01CA6C3A] X-Nokia-AV: Clean Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c index 8941a8b..6ed5a18 100644 --- a/drivers/input/keyboard/gpio_keys.c +++ b/drivers/input/keyboard/gpio_keys.c @@ -78,6 +78,7 @@ static int __devinit gpio_keys_setup_key(struct device *dev, struct gpio_keys_button *button) { char *desc = button->desc ? button->desc : "gpio_keys"; + unsigned long irqflags; int irq, error; setup_timer(&bdata->timer, gpio_keys_timer, (unsigned long)bdata); @@ -106,10 +107,14 @@ static int __devinit gpio_keys_setup_key(struct device *dev, goto fail3; } - error = request_irq(irq, gpio_keys_isr, - IRQF_SHARED | - IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, - desc, bdata); + if (button->irqflags == 0) { + irqflags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | + IRQF_SHARED; + } else { + irqflags = button->irqflags; + } + + error = request_irq(irq, gpio_keys_isr, irqflags, desc, bdata); if (error) { dev_err(dev, "Unable to claim irq %d; error %d\n", irq, error); diff --git a/include/linux/gpio_keys.h b/include/linux/gpio_keys.h index 1289fa7..387b980 100644 --- a/include/linux/gpio_keys.h +++ b/include/linux/gpio_keys.h @@ -10,6 +10,13 @@ struct gpio_keys_button { int type; /* input event type (EV_KEY, EV_SW) */ int wakeup; /* configure the button as a wake-up source */ int debounce_interval; /* debounce ticks interval in msecs */ + /* + * Exact irqflags this button wants. + * + * If left unset, defaults to: + * IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED + */ + unsigned long irqflags; }; struct gpio_keys_platform_data {