From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753366AbbETKaz (ORCPT ); Wed, 20 May 2015 06:30:55 -0400 Received: from mail-wi0-f170.google.com ([209.85.212.170]:33884 "EHLO mail-wi0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753152AbbETKai (ORCPT ); Wed, 20 May 2015 06:30:38 -0400 From: Grygorii Strashko To: Linus Walleij , Alexandre Courbot Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Grygorii Strashko , Johan Hovold Subject: [PATCH v2 3/3] gpiolib: debugfs: identify gpios requested as irq only Date: Wed, 20 May 2015 13:30:23 +0300 Message-Id: <1432117823-1834-4-git-send-email-grygorii.strashko@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1432117823-1834-1-git-send-email-grygorii.strashko@linaro.org> References: <1432117823-1834-1-git-send-email-grygorii.strashko@linaro.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Now many of GPIO drivers implement two interfaces gpiolib and irqchip which are essentially orthogonal. So, now GPIO line can be requested in three ways: 1) As pure GPIO (gpioX_request()) 2) As pure GPIO IRQ, especially in DT boot case. DT: interrupt-parent = <&gpio6>; interrupts = <11 IRQ_TYPE_EDGE_FALLING>; Code: platform_get_irq() or of_irq_get() request_irq() 3) combination of (1) and (2). And from GPIO debugfs it could be identified when GPIO is requested/used or used as IRQ, but there is no way to determine when GPIO is requested/used as IRQ only. Such information is useful for debugging, so update GPIO debugfs code to show marker '' for GPIO lines which are requested/used as GPIO IRQ only. After this patch sys/kernel/debug/gpio will produce following output: ... GPIOs 160-191, platform/4805d000.gpio, gpio: gpio-171 ((null) ) in hi IRQ-209 GPIOs 192-223, platform/48051000.gpio, gpio: gpio-203 (vtt_fixed ) out hi Cc: Johan Hovold Signed-off-by: Grygorii Strashko --- drivers/gpio/gpiolib.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index f1dcb5b..d69fc58 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -2272,8 +2272,11 @@ static void gpiolib_dbg_show(struct seq_file *s, struct gpio_chip *chip) chip->get ? (chip->get(chip, i) ? "hi" : "lo") : "? "); - if (is_irq) + if (is_irq) { seq_printf(s, " IRQ-%d", gpiod_to_irq(gdesc)); + if (!test_bit(FLAG_REQUESTED, &gdesc->flags)) + seq_puts(s, " "); + } seq_printf(s, "\n"); } } -- 1.9.1