gpiochip 445 drivers/gpio/gpiolib-sysfs.c ATTRIBUTE_GROUPS(gpiochip); gpiochip 85 drivers/gpio/gpiolib.c static int gpiochip_add_irqchip(struct gpio_chip *gpiochip, gpiochip 88 drivers/gpio/gpiolib.c static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip); gpiochip 89 drivers/gpio/gpiolib.c static int gpiochip_irqchip_init_hw(struct gpio_chip *gpiochip); gpiochip 90 drivers/gpio/gpiolib.c static int gpiochip_irqchip_init_valid_mask(struct gpio_chip *gpiochip); gpiochip 91 drivers/gpio/gpiolib.c static void gpiochip_irqchip_free_valid_mask(struct gpio_chip *gpiochip); gpiochip 395 drivers/gpio/gpiolib.c static void gpiochip_free_valid_mask(struct gpio_chip *gpiochip) gpiochip 397 drivers/gpio/gpiolib.c bitmap_free(gpiochip->valid_mask); gpiochip 398 drivers/gpio/gpiolib.c gpiochip->valid_mask = NULL; gpiochip 401 drivers/gpio/gpiolib.c bool gpiochip_line_is_valid(const struct gpio_chip *gpiochip, gpiochip 405 drivers/gpio/gpiolib.c if (likely(!gpiochip->valid_mask)) gpiochip 407 drivers/gpio/gpiolib.c return test_bit(offset, gpiochip->valid_mask); gpiochip 1665 drivers/gpio/gpiolib.c static void gpiochip_irqchip_free_valid_mask(struct gpio_chip *gpiochip) gpiochip 1667 drivers/gpio/gpiolib.c bitmap_free(gpiochip->irq.valid_mask); gpiochip 1668 drivers/gpio/gpiolib.c gpiochip->irq.valid_mask = NULL; gpiochip 1671 drivers/gpio/gpiolib.c bool gpiochip_irqchip_irq_valid(const struct gpio_chip *gpiochip, gpiochip 1674 drivers/gpio/gpiolib.c if (!gpiochip_line_is_valid(gpiochip, offset)) gpiochip 1677 drivers/gpio/gpiolib.c if (likely(!gpiochip->irq.valid_mask)) gpiochip 1679 drivers/gpio/gpiolib.c return test_bit(offset, gpiochip->irq.valid_mask); gpiochip 1738 drivers/gpio/gpiolib.c void gpiochip_set_chained_irqchip(struct gpio_chip *gpiochip, gpiochip 1743 drivers/gpio/gpiolib.c if (gpiochip->irq.threaded) { gpiochip 1744 drivers/gpio/gpiolib.c chip_err(gpiochip, "tried to chain a threaded gpiochip\n"); gpiochip 1748 drivers/gpio/gpiolib.c gpiochip_set_cascaded_irqchip(gpiochip, parent_irq, parent_handler); gpiochip 1759 drivers/gpio/gpiolib.c void gpiochip_set_nested_irqchip(struct gpio_chip *gpiochip, gpiochip 1763 drivers/gpio/gpiolib.c gpiochip_set_cascaded_irqchip(gpiochip, parent_irq, NULL); gpiochip 2211 drivers/gpio/gpiolib.c static void gpiochip_set_irq_hooks(struct gpio_chip *gpiochip) gpiochip 2213 drivers/gpio/gpiolib.c struct irq_chip *irqchip = gpiochip->irq.chip; gpiochip 2220 drivers/gpio/gpiolib.c if (WARN_ON(gpiochip->irq.irq_enable)) gpiochip 2228 drivers/gpio/gpiolib.c chip_info(gpiochip, gpiochip 2232 drivers/gpio/gpiolib.c gpiochip->irq.irq_enable = irqchip->irq_enable; gpiochip 2233 drivers/gpio/gpiolib.c gpiochip->irq.irq_disable = irqchip->irq_disable; gpiochip 2244 drivers/gpio/gpiolib.c static int gpiochip_add_irqchip(struct gpio_chip *gpiochip, gpiochip 2248 drivers/gpio/gpiolib.c struct irq_chip *irqchip = gpiochip->irq.chip; gpiochip 2257 drivers/gpio/gpiolib.c if (gpiochip->irq.parent_handler && gpiochip->can_sleep) { gpiochip 2258 drivers/gpio/gpiolib.c chip_err(gpiochip, "you cannot have chained interrupts on a chip that may sleep\n"); gpiochip 2262 drivers/gpio/gpiolib.c np = gpiochip->gpiodev->dev.of_node; gpiochip 2263 drivers/gpio/gpiolib.c type = gpiochip->irq.default_type; gpiochip 2274 drivers/gpio/gpiolib.c if (has_acpi_companion(gpiochip->parent) && type != IRQ_TYPE_NONE) { gpiochip 2275 drivers/gpio/gpiolib.c acpi_handle_warn(ACPI_HANDLE(gpiochip->parent), gpiochip 2280 drivers/gpio/gpiolib.c gpiochip->to_irq = gpiochip_to_irq; gpiochip 2281 drivers/gpio/gpiolib.c gpiochip->irq.default_type = type; gpiochip 2282 drivers/gpio/gpiolib.c gpiochip->irq.lock_key = lock_key; gpiochip 2283 drivers/gpio/gpiolib.c gpiochip->irq.request_key = request_key; gpiochip 2286 drivers/gpio/gpiolib.c if (gpiochip_hierarchy_is_hierarchical(gpiochip)) { gpiochip 2287 drivers/gpio/gpiolib.c int ret = gpiochip_hierarchy_add_domain(gpiochip); gpiochip 2292 drivers/gpio/gpiolib.c if (gpiochip->irq.domain_ops) gpiochip 2293 drivers/gpio/gpiolib.c ops = gpiochip->irq.domain_ops; gpiochip 2297 drivers/gpio/gpiolib.c gpiochip->irq.domain = irq_domain_add_simple(np, gpiochip 2298 drivers/gpio/gpiolib.c gpiochip->ngpio, gpiochip 2299 drivers/gpio/gpiolib.c gpiochip->irq.first, gpiochip 2300 drivers/gpio/gpiolib.c ops, gpiochip); gpiochip 2301 drivers/gpio/gpiolib.c if (!gpiochip->irq.domain) gpiochip 2305 drivers/gpio/gpiolib.c if (gpiochip->irq.parent_handler) { gpiochip 2306 drivers/gpio/gpiolib.c void *data = gpiochip->irq.parent_handler_data ?: gpiochip; gpiochip 2308 drivers/gpio/gpiolib.c for (i = 0; i < gpiochip->irq.num_parents; i++) { gpiochip 2314 drivers/gpio/gpiolib.c irq_set_chained_handler_and_data(gpiochip->irq.parents[i], gpiochip 2315 drivers/gpio/gpiolib.c gpiochip->irq.parent_handler, gpiochip 2320 drivers/gpio/gpiolib.c gpiochip_set_irq_hooks(gpiochip); gpiochip 2322 drivers/gpio/gpiolib.c acpi_gpiochip_request_interrupts(gpiochip); gpiochip 2333 drivers/gpio/gpiolib.c static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip) gpiochip 2335 drivers/gpio/gpiolib.c struct irq_chip *irqchip = gpiochip->irq.chip; gpiochip 2338 drivers/gpio/gpiolib.c acpi_gpiochip_free_interrupts(gpiochip); gpiochip 2340 drivers/gpio/gpiolib.c if (irqchip && gpiochip->irq.parent_handler) { gpiochip 2341 drivers/gpio/gpiolib.c struct gpio_irq_chip *irq = &gpiochip->irq; gpiochip 2350 drivers/gpio/gpiolib.c if (gpiochip->irq.domain) { gpiochip 2353 drivers/gpio/gpiolib.c for (offset = 0; offset < gpiochip->ngpio; offset++) { gpiochip 2354 drivers/gpio/gpiolib.c if (!gpiochip_irqchip_irq_valid(gpiochip, offset)) gpiochip 2357 drivers/gpio/gpiolib.c irq = irq_find_mapping(gpiochip->irq.domain, offset); gpiochip 2361 drivers/gpio/gpiolib.c irq_domain_remove(gpiochip->irq.domain); gpiochip 2370 drivers/gpio/gpiolib.c irqchip->irq_enable = gpiochip->irq.irq_enable; gpiochip 2371 drivers/gpio/gpiolib.c irqchip->irq_disable = gpiochip->irq.irq_disable; gpiochip 2374 drivers/gpio/gpiolib.c gpiochip->irq.irq_enable = NULL; gpiochip 2375 drivers/gpio/gpiolib.c gpiochip->irq.irq_disable = NULL; gpiochip 2376 drivers/gpio/gpiolib.c gpiochip->irq.chip = NULL; gpiochip 2378 drivers/gpio/gpiolib.c gpiochip_irqchip_free_valid_mask(gpiochip); gpiochip 2408 drivers/gpio/gpiolib.c int gpiochip_irqchip_add_key(struct gpio_chip *gpiochip, gpiochip 2419 drivers/gpio/gpiolib.c if (!gpiochip || !irqchip) gpiochip 2422 drivers/gpio/gpiolib.c if (!gpiochip->parent) { gpiochip 2426 drivers/gpio/gpiolib.c gpiochip->irq.threaded = threaded; gpiochip 2427 drivers/gpio/gpiolib.c of_node = gpiochip->parent->of_node; gpiochip 2434 drivers/gpio/gpiolib.c if (gpiochip->of_node) gpiochip 2435 drivers/gpio/gpiolib.c of_node = gpiochip->of_node; gpiochip 2445 drivers/gpio/gpiolib.c if (has_acpi_companion(gpiochip->parent) && type != IRQ_TYPE_NONE) { gpiochip 2446 drivers/gpio/gpiolib.c acpi_handle_warn(ACPI_HANDLE(gpiochip->parent), gpiochip 2451 drivers/gpio/gpiolib.c gpiochip->irq.chip = irqchip; gpiochip 2452 drivers/gpio/gpiolib.c gpiochip->irq.handler = handler; gpiochip 2453 drivers/gpio/gpiolib.c gpiochip->irq.default_type = type; gpiochip 2454 drivers/gpio/gpiolib.c gpiochip->to_irq = gpiochip_to_irq; gpiochip 2455 drivers/gpio/gpiolib.c gpiochip->irq.lock_key = lock_key; gpiochip 2456 drivers/gpio/gpiolib.c gpiochip->irq.request_key = request_key; gpiochip 2457 drivers/gpio/gpiolib.c gpiochip->irq.domain = irq_domain_add_simple(of_node, gpiochip 2458 drivers/gpio/gpiolib.c gpiochip->ngpio, first_irq, gpiochip 2459 drivers/gpio/gpiolib.c &gpiochip_domain_ops, gpiochip); gpiochip 2460 drivers/gpio/gpiolib.c if (!gpiochip->irq.domain) { gpiochip 2461 drivers/gpio/gpiolib.c gpiochip->irq.chip = NULL; gpiochip 2465 drivers/gpio/gpiolib.c gpiochip_set_irq_hooks(gpiochip); gpiochip 2467 drivers/gpio/gpiolib.c acpi_gpiochip_request_interrupts(gpiochip); gpiochip 2475 drivers/gpio/gpiolib.c static inline int gpiochip_add_irqchip(struct gpio_chip *gpiochip, gpiochip 2481 drivers/gpio/gpiolib.c static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip) {} gpiochip 2483 drivers/gpio/gpiolib.c static inline int gpiochip_irqchip_init_hw(struct gpio_chip *gpiochip) gpiochip 2488 drivers/gpio/gpiolib.c static inline int gpiochip_irqchip_init_valid_mask(struct gpio_chip *gpiochip) gpiochip 2492 drivers/gpio/gpiolib.c static inline void gpiochip_irqchip_free_valid_mask(struct gpio_chip *gpiochip) gpiochip 49 drivers/i2c/muxes/i2c-mux-ltc4306.c struct gpio_chip gpiochip; gpiochip 159 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.label = dev_name(dev); gpiochip 160 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.base = -1; gpiochip 161 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.ngpio = data->chip->num_gpios; gpiochip 162 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.parent = dev; gpiochip 163 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.can_sleep = true; gpiochip 164 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.get_direction = ltc4306_gpio_get_direction; gpiochip 165 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.direction_input = ltc4306_gpio_direction_input; gpiochip 166 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.direction_output = ltc4306_gpio_direction_output; gpiochip 167 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.get = ltc4306_gpio_get; gpiochip 168 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.set = ltc4306_gpio_set; gpiochip 169 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.set_config = ltc4306_gpio_set_config; gpiochip 170 drivers/i2c/muxes/i2c-mux-ltc4306.c data->gpiochip.owner = THIS_MODULE; gpiochip 175 drivers/i2c/muxes/i2c-mux-ltc4306.c return devm_gpiochip_add_data(dev, &data->gpiochip, data); gpiochip 134 drivers/iio/dac/ad5592r-base.c st->gpiochip.label = dev_name(st->dev); gpiochip 135 drivers/iio/dac/ad5592r-base.c st->gpiochip.base = -1; gpiochip 136 drivers/iio/dac/ad5592r-base.c st->gpiochip.ngpio = 8; gpiochip 137 drivers/iio/dac/ad5592r-base.c st->gpiochip.parent = st->dev; gpiochip 138 drivers/iio/dac/ad5592r-base.c st->gpiochip.can_sleep = true; gpiochip 139 drivers/iio/dac/ad5592r-base.c st->gpiochip.direction_input = ad5592r_gpio_direction_input; gpiochip 140 drivers/iio/dac/ad5592r-base.c st->gpiochip.direction_output = ad5592r_gpio_direction_output; gpiochip 141 drivers/iio/dac/ad5592r-base.c st->gpiochip.get = ad5592r_gpio_get; gpiochip 142 drivers/iio/dac/ad5592r-base.c st->gpiochip.set = ad5592r_gpio_set; gpiochip 143 drivers/iio/dac/ad5592r-base.c st->gpiochip.request = ad5592r_gpio_request; gpiochip 144 drivers/iio/dac/ad5592r-base.c st->gpiochip.owner = THIS_MODULE; gpiochip 148 drivers/iio/dac/ad5592r-base.c return gpiochip_add_data(&st->gpiochip, st); gpiochip 154 drivers/iio/dac/ad5592r-base.c gpiochip_remove(&st->gpiochip); gpiochip 53 drivers/iio/dac/ad5592r-base.h struct gpio_chip gpiochip; gpiochip 580 include/linux/gpio/driver.h void gpiochip_set_chained_irqchip(struct gpio_chip *gpiochip, gpiochip 585 include/linux/gpio/driver.h void gpiochip_set_nested_irqchip(struct gpio_chip *gpiochip, gpiochip 589 include/linux/gpio/driver.h int gpiochip_irqchip_add_key(struct gpio_chip *gpiochip, gpiochip 598 include/linux/gpio/driver.h bool gpiochip_irqchip_irq_valid(const struct gpio_chip *gpiochip, gpiochip 609 include/linux/gpio/driver.h static inline int gpiochip_irqchip_add(struct gpio_chip *gpiochip, gpiochip 618 include/linux/gpio/driver.h return gpiochip_irqchip_add_key(gpiochip, irqchip, first_irq, gpiochip 623 include/linux/gpio/driver.h static inline int gpiochip_irqchip_add_nested(struct gpio_chip *gpiochip, gpiochip 633 include/linux/gpio/driver.h return gpiochip_irqchip_add_key(gpiochip, irqchip, first_irq, gpiochip 638 include/linux/gpio/driver.h static inline int gpiochip_irqchip_add(struct gpio_chip *gpiochip, gpiochip 644 include/linux/gpio/driver.h return gpiochip_irqchip_add_key(gpiochip, irqchip, first_irq, gpiochip 648 include/linux/gpio/driver.h static inline int gpiochip_irqchip_add_nested(struct gpio_chip *gpiochip, gpiochip 654 include/linux/gpio/driver.h return gpiochip_irqchip_add_key(gpiochip, irqchip, first_irq,