Loading arch/arm/plat-orion/gpio.c +2 −6 Original line number Diff line number Diff line Loading @@ -442,6 +442,7 @@ static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) struct orion_gpio_chip *ochip = gpiochip_get_data(chip); u32 out, io_conf, blink, in_pol, data_in, cause, edg_msk, lvl_msk; const char *label; int i; out = readl_relaxed(GPIO_OUT(ochip)); Loading @@ -453,15 +454,10 @@ static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) edg_msk = readl_relaxed(GPIO_EDGE_MASK(ochip)); lvl_msk = readl_relaxed(GPIO_LEVEL_MASK(ochip)); for (i = 0; i < chip->ngpio; i++) { const char *label; for_each_requested_gpio(chip, i, label) { u32 msk; bool is_out; label = gpiochip_is_requested(chip, i); if (!label) continue; msk = 1 << i; is_out = !(io_conf & msk); Loading drivers/gpio/gpio-mvebu.c +2 −6 Original line number Diff line number Diff line Loading @@ -846,6 +846,7 @@ static void mvebu_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) { struct mvebu_gpio_chip *mvchip = gpiochip_get_data(chip); u32 out, io_conf, blink, in_pol, data_in, cause, edg_msk, lvl_msk; const char *label; int i; regmap_read(mvchip->regs, GPIO_OUT_OFF + mvchip->offset, &out); Loading @@ -857,15 +858,10 @@ static void mvebu_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) edg_msk = mvebu_gpio_read_edge_mask(mvchip); lvl_msk = mvebu_gpio_read_level_mask(mvchip); for (i = 0; i < chip->ngpio; i++) { const char *label; for_each_requested_gpio(chip, i, label) { u32 msk; bool is_out; label = gpiochip_is_requested(chip, i); if (!label) continue; msk = BIT(i); is_out = !(io_conf & msk); Loading drivers/gpio/gpio-xra1403.c +2 −6 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ static void xra1403_dbg_show(struct seq_file *s, struct gpio_chip *chip) struct xra1403 *xra = gpiochip_get_data(chip); int value[XRA_LAST]; int i; const char *label; unsigned int gcr; unsigned int gsr; Loading @@ -136,12 +137,7 @@ static void xra1403_dbg_show(struct seq_file *s, struct gpio_chip *chip) gcr = value[XRA_GCR + 1] << 8 | value[XRA_GCR]; gsr = value[XRA_GSR + 1] << 8 | value[XRA_GSR]; for (i = 0; i < chip->ngpio; i++) { const char *label = gpiochip_is_requested(chip, i); if (!label) continue; for_each_requested_gpio(chip, i, label) { seq_printf(s, " gpio-%-3d (%-12s) %s %s\n", chip->base + i, label, (gcr & BIT(i)) ? "in" : "out", Loading drivers/pinctrl/pinctrl-at91.c +2 −5 Original line number Diff line number Diff line Loading @@ -1486,14 +1486,11 @@ static void at91_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) int i; struct at91_gpio_chip *at91_gpio = gpiochip_get_data(chip); void __iomem *pio = at91_gpio->regbase; const char *gpio_label; for (i = 0; i < chip->ngpio; i++) { for_each_requested_gpio(chip, i, gpio_label) { unsigned mask = pin_to_mask(i); const char *gpio_label; gpio_label = gpiochip_is_requested(chip, i); if (!gpio_label) continue; mode = at91_gpio->ops->get_periph(pio, mask); seq_printf(s, "[%s] GPIO%s%d: ", gpio_label, chip->label, i); Loading include/linux/gpio/driver.h +16 −0 Original line number Diff line number Diff line Loading @@ -474,6 +474,22 @@ struct gpio_chip { extern const char *gpiochip_is_requested(struct gpio_chip *gc, unsigned int offset); /** * for_each_requested_gpio_in_range - iterates over requested GPIOs in a given range * @chip: the chip to query * @i: loop variable * @base: first GPIO in the range * @size: amount of GPIOs to check starting from @base * @label: label of current GPIO */ #define for_each_requested_gpio_in_range(chip, i, base, size, label) \ for (i = 0; i < size; i++) \ if ((label = gpiochip_is_requested(chip, base + i)) == NULL) {} else /* Iterates over all requested GPIO of the given @chip */ #define for_each_requested_gpio(chip, i, label) \ for_each_requested_gpio_in_range(chip, i, 0, chip->ngpio, label) /* add/remove chips */ extern int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data, struct lock_class_key *lock_key, Loading Loading
arch/arm/plat-orion/gpio.c +2 −6 Original line number Diff line number Diff line Loading @@ -442,6 +442,7 @@ static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) struct orion_gpio_chip *ochip = gpiochip_get_data(chip); u32 out, io_conf, blink, in_pol, data_in, cause, edg_msk, lvl_msk; const char *label; int i; out = readl_relaxed(GPIO_OUT(ochip)); Loading @@ -453,15 +454,10 @@ static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) edg_msk = readl_relaxed(GPIO_EDGE_MASK(ochip)); lvl_msk = readl_relaxed(GPIO_LEVEL_MASK(ochip)); for (i = 0; i < chip->ngpio; i++) { const char *label; for_each_requested_gpio(chip, i, label) { u32 msk; bool is_out; label = gpiochip_is_requested(chip, i); if (!label) continue; msk = 1 << i; is_out = !(io_conf & msk); Loading
drivers/gpio/gpio-mvebu.c +2 −6 Original line number Diff line number Diff line Loading @@ -846,6 +846,7 @@ static void mvebu_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) { struct mvebu_gpio_chip *mvchip = gpiochip_get_data(chip); u32 out, io_conf, blink, in_pol, data_in, cause, edg_msk, lvl_msk; const char *label; int i; regmap_read(mvchip->regs, GPIO_OUT_OFF + mvchip->offset, &out); Loading @@ -857,15 +858,10 @@ static void mvebu_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) edg_msk = mvebu_gpio_read_edge_mask(mvchip); lvl_msk = mvebu_gpio_read_level_mask(mvchip); for (i = 0; i < chip->ngpio; i++) { const char *label; for_each_requested_gpio(chip, i, label) { u32 msk; bool is_out; label = gpiochip_is_requested(chip, i); if (!label) continue; msk = BIT(i); is_out = !(io_conf & msk); Loading
drivers/gpio/gpio-xra1403.c +2 −6 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ static void xra1403_dbg_show(struct seq_file *s, struct gpio_chip *chip) struct xra1403 *xra = gpiochip_get_data(chip); int value[XRA_LAST]; int i; const char *label; unsigned int gcr; unsigned int gsr; Loading @@ -136,12 +137,7 @@ static void xra1403_dbg_show(struct seq_file *s, struct gpio_chip *chip) gcr = value[XRA_GCR + 1] << 8 | value[XRA_GCR]; gsr = value[XRA_GSR + 1] << 8 | value[XRA_GSR]; for (i = 0; i < chip->ngpio; i++) { const char *label = gpiochip_is_requested(chip, i); if (!label) continue; for_each_requested_gpio(chip, i, label) { seq_printf(s, " gpio-%-3d (%-12s) %s %s\n", chip->base + i, label, (gcr & BIT(i)) ? "in" : "out", Loading
drivers/pinctrl/pinctrl-at91.c +2 −5 Original line number Diff line number Diff line Loading @@ -1486,14 +1486,11 @@ static void at91_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) int i; struct at91_gpio_chip *at91_gpio = gpiochip_get_data(chip); void __iomem *pio = at91_gpio->regbase; const char *gpio_label; for (i = 0; i < chip->ngpio; i++) { for_each_requested_gpio(chip, i, gpio_label) { unsigned mask = pin_to_mask(i); const char *gpio_label; gpio_label = gpiochip_is_requested(chip, i); if (!gpio_label) continue; mode = at91_gpio->ops->get_periph(pio, mask); seq_printf(s, "[%s] GPIO%s%d: ", gpio_label, chip->label, i); Loading
include/linux/gpio/driver.h +16 −0 Original line number Diff line number Diff line Loading @@ -474,6 +474,22 @@ struct gpio_chip { extern const char *gpiochip_is_requested(struct gpio_chip *gc, unsigned int offset); /** * for_each_requested_gpio_in_range - iterates over requested GPIOs in a given range * @chip: the chip to query * @i: loop variable * @base: first GPIO in the range * @size: amount of GPIOs to check starting from @base * @label: label of current GPIO */ #define for_each_requested_gpio_in_range(chip, i, base, size, label) \ for (i = 0; i < size; i++) \ if ((label = gpiochip_is_requested(chip, base + i)) == NULL) {} else /* Iterates over all requested GPIO of the given @chip */ #define for_each_requested_gpio(chip, i, label) \ for_each_requested_gpio_in_range(chip, i, 0, chip->ngpio, label) /* add/remove chips */ extern int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data, struct lock_class_key *lock_key, Loading