gpio: Slightly more helpful debugfs
authorLinus Walleij <linus.walleij@linaro.org>
Mon, 1 Oct 2018 21:06:17 +0000 (23:06 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 2 Oct 2018 08:06:29 +0000 (10:06 +0200)
This at least makes debugfs print if the line is active
high or low. That is pretty helpful as what we display
as "lo" or "hi" is the raw physical level of the line.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c

index 83c6ec7..02660bf 100644 (file)
@@ -4584,8 +4584,9 @@ static void gpiolib_dbg_show(struct seq_file *s, struct gpio_device *gdev)
        struct gpio_chip        *chip = gdev->chip;
        unsigned                gpio = gdev->base;
        struct gpio_desc        *gdesc = &gdev->descs[0];
-       int                     is_out;
-       int                     is_irq;
+       bool                    is_out;
+       bool                    is_irq;
+       bool                    active_low;
 
        for (i = 0; i < gdev->ngpio; i++, gpio++, gdesc++) {
                if (!test_bit(FLAG_REQUESTED, &gdesc->flags)) {
@@ -4599,11 +4600,13 @@ static void gpiolib_dbg_show(struct seq_file *s, struct gpio_device *gdev)
                gpiod_get_direction(gdesc);
                is_out = test_bit(FLAG_IS_OUT, &gdesc->flags);
                is_irq = test_bit(FLAG_USED_AS_IRQ, &gdesc->flags);
-               seq_printf(s, " gpio-%-3d (%-20.20s|%-20.20s) %s %s %s",
+               active_low = test_bit(FLAG_ACTIVE_LOW, &gdesc->flags);
+               seq_printf(s, " gpio-%-3d (%-20.20s|%-20.20s) %s %s %s%s",
                        gpio, gdesc->name ? gdesc->name : "", gdesc->label,
                        is_out ? "out" : "in ",
                        chip->get ? (chip->get(chip, i) ? "hi" : "lo") : "?  ",
-                       is_irq ? "IRQ" : "   ");
+                       is_irq ? "IRQ " : "",
+                       active_low ? "ACTIVE LOW" : "");
                seq_printf(s, "\n");
        }
 }