• Home
  • Raw
  • Download

Lines Matching +full:has +full:- +full:chip +full:- +full:id

1 // SPDX-License-Identifier: GPL-2.0
22 #include "gpiolib-acpi.h"
24 static int run_edge_events_on_boot = -1;
27 "Run edge _AEI event-handlers at boot: 0=no, 1=yes, -1=auto");
41 * struct acpi_gpio_event - ACPI GPIO event handler data
43 * @node: list-entry of the events list of the struct acpi_gpio_chip
50 * @irq_requested:True if request_irq() has been done
80 struct gpio_chip *chip; member
90 * for which the acpi_gpiochip_request_irqs() call has been deferred.
98 if (!gc->parent) in acpi_gpiochip_find()
101 return ACPI_HANDLE(gc->parent) == data; in acpi_gpiochip_find()
105 * acpi_get_gpiod() - Translate ACPI GPIO pin to GPIO descriptor usable with GPIO API
107 * @pin: ACPI GPIO pin number (0-based, controller-relative)
110 * error value. Specifically returns %-EPROBE_DEFER if the referenced GPIO
111 * controller does not have GPIO chip registered at the moment. This is to
116 struct gpio_chip *chip; in acpi_get_gpiod() local
122 return ERR_PTR(-ENODEV); in acpi_get_gpiod()
124 chip = gpiochip_find(handle, acpi_gpiochip_find); in acpi_get_gpiod()
125 if (!chip) in acpi_get_gpiod()
126 return ERR_PTR(-EPROBE_DEFER); in acpi_get_gpiod()
128 return gpiochip_get_desc(chip, pin); in acpi_get_gpiod()
135 acpi_evaluate_object(event->handle, NULL, NULL, NULL); in acpi_gpio_irq_handler()
144 acpi_execute_simple_method(event->handle, NULL, event->pin); in acpi_gpio_irq_handler_evt()
159 if (ares->type != ACPI_RESOURCE_TYPE_GPIO) in acpi_gpio_get_irq_resource()
162 gpio = &ares->data.gpio; in acpi_gpio_get_irq_resource()
163 if (gpio->connection_type != ACPI_RESOURCE_GPIO_TYPE_INT) in acpi_gpio_get_irq_resource()
176 ret = request_threaded_irq(event->irq, NULL, event->handler, in acpi_gpiochip_request_irq()
177 event->irqflags | IRQF_ONESHOT, "ACPI:Event", event); in acpi_gpiochip_request_irq()
179 dev_err(acpi_gpio->chip->parent, in acpi_gpiochip_request_irq()
181 event->irq); in acpi_gpiochip_request_irq()
185 if (event->irq_is_wake) in acpi_gpiochip_request_irq()
186 enable_irq_wake(event->irq); in acpi_gpiochip_request_irq()
188 event->irq_requested = true; in acpi_gpiochip_request_irq()
190 /* Make sure we trigger the initial state of edge-triggered IRQs */ in acpi_gpiochip_request_irq()
192 (event->irqflags & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING))) { in acpi_gpiochip_request_irq()
193 value = gpiod_get_raw_value_cansleep(event->desc); in acpi_gpiochip_request_irq()
194 if (((event->irqflags & IRQF_TRIGGER_RISING) && value == 1) || in acpi_gpiochip_request_irq()
195 ((event->irqflags & IRQF_TRIGGER_FALLING) && value == 0)) in acpi_gpiochip_request_irq()
196 event->handler(event->irq, event); in acpi_gpiochip_request_irq()
204 list_for_each_entry(event, &acpi_gpio->events, node) in acpi_gpiochip_request_irqs()
220 len = pin_str - controller; in acpi_gpio_in_ignore_list()
246 int pin = agpio->pin_table[0]; in acpi_gpio_irq_is_wake()
248 if (agpio->wake_capable != ACPI_WAKE_CAPABLE) in acpi_gpio_irq_is_wake()
264 struct gpio_chip *chip = acpi_gpio->chip; in acpi_gpiochip_alloc_event() local
275 handle = ACPI_HANDLE(chip->parent); in acpi_gpiochip_alloc_event()
276 pin = agpio->pin_table[0]; in acpi_gpiochip_alloc_event()
281 agpio->triggering == ACPI_EDGE_SENSITIVE ? 'E' : 'L', in acpi_gpiochip_alloc_event()
293 desc = gpiochip_request_own_desc(chip, pin, "ACPI:Event", in acpi_gpiochip_alloc_event()
296 dev_err(chip->parent, in acpi_gpiochip_alloc_event()
302 ret = gpiochip_lock_as_irq(chip, pin); in acpi_gpiochip_alloc_event()
304 dev_err(chip->parent, in acpi_gpiochip_alloc_event()
312 dev_err(chip->parent, in acpi_gpiochip_alloc_event()
322 event->irqflags = IRQF_ONESHOT; in acpi_gpiochip_alloc_event()
323 if (agpio->triggering == ACPI_LEVEL_SENSITIVE) { in acpi_gpiochip_alloc_event()
324 if (agpio->polarity == ACPI_ACTIVE_HIGH) in acpi_gpiochip_alloc_event()
325 event->irqflags |= IRQF_TRIGGER_HIGH; in acpi_gpiochip_alloc_event()
327 event->irqflags |= IRQF_TRIGGER_LOW; in acpi_gpiochip_alloc_event()
329 switch (agpio->polarity) { in acpi_gpiochip_alloc_event()
331 event->irqflags |= IRQF_TRIGGER_RISING; in acpi_gpiochip_alloc_event()
334 event->irqflags |= IRQF_TRIGGER_FALLING; in acpi_gpiochip_alloc_event()
337 event->irqflags |= IRQF_TRIGGER_RISING | in acpi_gpiochip_alloc_event()
343 event->handle = evt_handle; in acpi_gpiochip_alloc_event()
344 event->handler = handler; in acpi_gpiochip_alloc_event()
345 event->irq = irq; in acpi_gpiochip_alloc_event()
346 event->irq_is_wake = acpi_gpio_irq_is_wake(chip->parent, agpio); in acpi_gpiochip_alloc_event()
347 event->pin = pin; in acpi_gpiochip_alloc_event()
348 event->desc = desc; in acpi_gpiochip_alloc_event()
350 list_add_tail(&event->node, &acpi_gpio->events); in acpi_gpiochip_alloc_event()
355 gpiochip_unlock_as_irq(chip, pin); in acpi_gpiochip_alloc_event()
363 * acpi_gpiochip_request_interrupts() - Register isr for gpio chip ACPI events
364 * @chip: GPIO chip
368 * chip's interrupt handler. acpi_gpiochip_request_interrupts() finds out which
372 void acpi_gpiochip_request_interrupts(struct gpio_chip *chip) in acpi_gpiochip_request_interrupts() argument
379 if (!chip->parent || !chip->to_irq) in acpi_gpiochip_request_interrupts()
382 handle = ACPI_HANDLE(chip->parent); in acpi_gpiochip_request_interrupts()
396 list_add(&acpi_gpio->deferred_req_irqs_list_entry, in acpi_gpiochip_request_interrupts()
408 * acpi_gpiochip_free_interrupts() - Free GPIO ACPI event interrupts.
409 * @chip: GPIO chip
412 * GPIO chip.
414 void acpi_gpiochip_free_interrupts(struct gpio_chip *chip) in acpi_gpiochip_free_interrupts() argument
421 if (!chip->parent || !chip->to_irq) in acpi_gpiochip_free_interrupts()
424 handle = ACPI_HANDLE(chip->parent); in acpi_gpiochip_free_interrupts()
433 if (!list_empty(&acpi_gpio->deferred_req_irqs_list_entry)) in acpi_gpiochip_free_interrupts()
434 list_del_init(&acpi_gpio->deferred_req_irqs_list_entry); in acpi_gpiochip_free_interrupts()
437 list_for_each_entry_safe_reverse(event, ep, &acpi_gpio->events, node) { in acpi_gpiochip_free_interrupts()
438 if (event->irq_requested) { in acpi_gpiochip_free_interrupts()
439 if (event->irq_is_wake) in acpi_gpiochip_free_interrupts()
440 disable_irq_wake(event->irq); in acpi_gpiochip_free_interrupts()
442 free_irq(event->irq, event); in acpi_gpiochip_free_interrupts()
445 gpiochip_unlock_as_irq(chip, event->pin); in acpi_gpiochip_free_interrupts()
446 gpiochip_free_own_desc(event->desc); in acpi_gpiochip_free_interrupts()
447 list_del(&event->node); in acpi_gpiochip_free_interrupts()
457 adev->driver_gpios = gpios; in acpi_dev_add_driver_gpios()
460 return -EINVAL; in acpi_dev_add_driver_gpios()
467 adev->driver_gpios = NULL; in acpi_dev_remove_driver_gpios()
484 return -ENOMEM; in devm_acpi_dev_add_driver_gpios()
509 if (!adev->driver_gpios) in acpi_get_driver_gpio_data()
512 for (gm = adev->driver_gpios; gm->name; gm++) in acpi_get_driver_gpio_data()
513 if (!strcmp(name, gm->name) && gm->data && index < gm->size) { in acpi_get_driver_gpio_data()
514 const struct acpi_gpio_params *par = gm->data + index; in acpi_get_driver_gpio_data()
516 args->fwnode = acpi_fwnode_handle(adev); in acpi_get_driver_gpio_data()
517 args->args[0] = par->crs_entry_index; in acpi_get_driver_gpio_data()
518 args->args[1] = par->line_index; in acpi_get_driver_gpio_data()
519 args->args[2] = par->active_low; in acpi_get_driver_gpio_data()
520 args->nargs = 3; in acpi_get_driver_gpio_data()
522 *quirks = gm->quirks; in acpi_get_driver_gpio_data()
532 switch (agpio->io_restriction) { in acpi_gpio_to_gpiod_flags()
543 switch (agpio->pin_config) { in acpi_gpio_to_gpiod_flags()
556 * Assume that the BIOS has configured the direction and pull in acpi_gpio_to_gpiod_flags()
571 * Check if the BIOS has IoRestriction with explicitly set direction in __acpi_gpio_update_gpiod_flags()
582 * Return %-EINVAL to notify that firmware has different in __acpi_gpio_update_gpiod_flags()
587 ret = -EINVAL; in __acpi_gpio_update_gpiod_flags()
596 struct device *dev = &info->adev->dev; in acpi_gpio_update_gpiod_flags()
600 ret = __acpi_gpio_update_gpiod_flags(&old, info->flags); in acpi_gpio_update_gpiod_flags()
601 if (info->quirks & ACPI_GPIO_QUIRK_NO_IO_RESTRICTION) { in acpi_gpio_update_gpiod_flags()
616 switch (info->pin_config) { in acpi_gpio_update_gpiod_lookup_flags()
627 if (info->polarity == GPIO_ACTIVE_LOW) in acpi_gpio_update_gpiod_lookup_flags()
646 if (ares->type != ACPI_RESOURCE_TYPE_GPIO) in acpi_populate_gpio_lookup()
649 if (!lookup->desc) { in acpi_populate_gpio_lookup()
650 const struct acpi_resource_gpio *agpio = &ares->data.gpio; in acpi_populate_gpio_lookup()
651 bool gpioint = agpio->connection_type == ACPI_RESOURCE_GPIO_TYPE_INT; in acpi_populate_gpio_lookup()
655 if (lookup->info.quirks & ACPI_GPIO_QUIRK_ONLY_GPIOIO && gpioint) in acpi_populate_gpio_lookup()
656 lookup->index++; in acpi_populate_gpio_lookup()
658 if (lookup->n++ != lookup->index) in acpi_populate_gpio_lookup()
661 pin_index = lookup->pin_index; in acpi_populate_gpio_lookup()
662 if (pin_index >= agpio->pin_table_length) in acpi_populate_gpio_lookup()
665 if (lookup->info.quirks & ACPI_GPIO_QUIRK_ABSOLUTE_NUMBER) in acpi_populate_gpio_lookup()
666 desc = gpio_to_desc(agpio->pin_table[pin_index]); in acpi_populate_gpio_lookup()
668 desc = acpi_get_gpiod(agpio->resource_source.string_ptr, in acpi_populate_gpio_lookup()
669 agpio->pin_table[pin_index]); in acpi_populate_gpio_lookup()
670 lookup->desc = desc; in acpi_populate_gpio_lookup()
671 lookup->info.pin_config = agpio->pin_config; in acpi_populate_gpio_lookup()
672 lookup->info.gpioint = gpioint; in acpi_populate_gpio_lookup()
678 * - ACPI_ACTIVE_LOW == GPIO_ACTIVE_LOW in acpi_populate_gpio_lookup()
679 * - ACPI_ACTIVE_HIGH == GPIO_ACTIVE_HIGH in acpi_populate_gpio_lookup()
681 if (lookup->info.gpioint) { in acpi_populate_gpio_lookup()
682 lookup->info.flags = GPIOD_IN; in acpi_populate_gpio_lookup()
683 lookup->info.polarity = agpio->polarity; in acpi_populate_gpio_lookup()
684 lookup->info.triggering = agpio->triggering; in acpi_populate_gpio_lookup()
686 lookup->info.flags = acpi_gpio_to_gpiod_flags(agpio); in acpi_populate_gpio_lookup()
687 lookup->info.polarity = lookup->active_low; in acpi_populate_gpio_lookup()
697 struct acpi_device *adev = lookup->info.adev; in acpi_gpio_resource_lookup()
711 if (!lookup->desc) in acpi_gpio_resource_lookup()
712 return -ENOENT; in acpi_gpio_resource_lookup()
715 *info = lookup->info; in acpi_gpio_resource_lookup()
745 return -EINVAL; in acpi_gpio_property_lookup()
747 return -EPROTO; in acpi_gpio_property_lookup()
749 lookup->index = args.args[0]; in acpi_gpio_property_lookup()
750 lookup->pin_index = args.args[1]; in acpi_gpio_property_lookup()
751 lookup->active_low = !!args.args[2]; in acpi_gpio_property_lookup()
753 lookup->info.adev = to_acpi_device_node(args.fwnode); in acpi_gpio_property_lookup()
754 lookup->info.quirks = quirks; in acpi_gpio_property_lookup()
760 * acpi_get_gpiod_by_index() - get a GPIO descriptor from device resources
778 * Note: if the GPIO resource has multiple entries in the pin list, this
789 return ERR_PTR(-ENODEV); in acpi_get_gpiod_by_index()
795 dev_dbg(&adev->dev, "GPIO: looking up %s\n", propname); in acpi_get_gpiod_by_index()
802 dev_dbg(&adev->dev, "GPIO: _DSD returned %s %d %d %u\n", in acpi_get_gpiod_by_index()
803 dev_name(&lookup.info.adev->dev), lookup.index, in acpi_get_gpiod_by_index()
806 dev_dbg(&adev->dev, "GPIO: looking up %d in _CRS\n", index); in acpi_get_gpiod_by_index()
817 /* Never allow fallback if the device has properties */ in acpi_can_fallback_to_crs()
818 if (acpi_dev_has_props(adev) || adev->driver_gpios) in acpi_can_fallback_to_crs()
839 snprintf(propname, sizeof(propname), "%s-%s", in acpi_find_gpio()
849 if (PTR_ERR(desc) == -EPROBE_DEFER) in acpi_find_gpio()
856 return ERR_PTR(-ENOENT); in acpi_find_gpio()
866 return ERR_PTR(-ENOENT); in acpi_find_gpio()
875 * acpi_node_get_gpiod() - get a GPIO descriptor from ACPI resources
882 * Otherwise (i.e. it is a data-only non-device object), use the property-based
902 return ERR_PTR(-ENODEV); in acpi_node_get_gpiod()
905 return ERR_PTR(-EINVAL); in acpi_node_get_gpiod()
919 * acpi_dev_gpio_irq_get_by() - Find GpioInt and translate it to Linux IRQ number
924 * If the device has one or more GpioInt resources, this function can be
931 * The function takes optional @name parameter. If the resource has a property
948 /* Ignore -EPROBE_DEFER, it only matters if idx matches */ in acpi_dev_gpio_irq_get_by()
949 if (IS_ERR(desc) && PTR_ERR(desc) != -EPROBE_DEFER) in acpi_dev_gpio_irq_get_by()
981 dev_dbg(&adev->dev, "IRQ %d already in use\n", irq); in acpi_dev_gpio_irq_get_by()
988 return -ENOENT; in acpi_dev_gpio_irq_get_by()
998 struct gpio_chip *chip = achip->chip; in acpi_gpio_adr_space_handler() local
1006 status = acpi_buffer_to_resource(achip->conn_info.connection, in acpi_gpio_adr_space_handler()
1007 achip->conn_info.length, &ares); in acpi_gpio_adr_space_handler()
1011 if (WARN_ON(ares->type != ACPI_RESOURCE_TYPE_GPIO)) { in acpi_gpio_adr_space_handler()
1016 agpio = &ares->data.gpio; in acpi_gpio_adr_space_handler()
1018 if (WARN_ON(agpio->io_restriction == ACPI_IO_RESTRICT_INPUT && in acpi_gpio_adr_space_handler()
1024 length = min(agpio->pin_table_length, (u16)(pin_index + bits)); in acpi_gpio_adr_space_handler()
1026 int pin = agpio->pin_table[i]; in acpi_gpio_adr_space_handler()
1031 mutex_lock(&achip->conn_lock); in acpi_gpio_adr_space_handler()
1034 list_for_each_entry(conn, &achip->conns, node) { in acpi_gpio_adr_space_handler()
1035 if (conn->pin == pin) { in acpi_gpio_adr_space_handler()
1037 desc = conn->desc; in acpi_gpio_adr_space_handler()
1047 if (!found && agpio->shareable == ACPI_SHARED && in acpi_gpio_adr_space_handler()
1051 list_for_each_entry(event, &achip->events, node) { in acpi_gpio_adr_space_handler()
1052 if (event->pin == pin) { in acpi_gpio_adr_space_handler()
1053 desc = event->desc; in acpi_gpio_adr_space_handler()
1064 desc = gpiochip_request_own_desc(chip, pin, label, in acpi_gpio_adr_space_handler()
1069 mutex_unlock(&achip->conn_lock); in acpi_gpio_adr_space_handler()
1077 mutex_unlock(&achip->conn_lock); in acpi_gpio_adr_space_handler()
1081 conn->pin = pin; in acpi_gpio_adr_space_handler()
1082 conn->desc = desc; in acpi_gpio_adr_space_handler()
1083 list_add_tail(&conn->node, &achip->conns); in acpi_gpio_adr_space_handler()
1086 mutex_unlock(&achip->conn_lock); in acpi_gpio_adr_space_handler()
1102 struct gpio_chip *chip = achip->chip; in acpi_gpiochip_request_regions() local
1103 acpi_handle handle = ACPI_HANDLE(chip->parent); in acpi_gpiochip_request_regions()
1106 INIT_LIST_HEAD(&achip->conns); in acpi_gpiochip_request_regions()
1107 mutex_init(&achip->conn_lock); in acpi_gpiochip_request_regions()
1112 dev_err(chip->parent, in acpi_gpiochip_request_regions()
1118 struct gpio_chip *chip = achip->chip; in acpi_gpiochip_free_regions() local
1119 acpi_handle handle = ACPI_HANDLE(chip->parent); in acpi_gpiochip_free_regions()
1126 dev_err(chip->parent, in acpi_gpiochip_free_regions()
1131 list_for_each_entry_safe_reverse(conn, tmp, &achip->conns, node) { in acpi_gpiochip_free_regions()
1132 gpiochip_free_own_desc(conn->desc); in acpi_gpiochip_free_regions()
1133 list_del(&conn->node); in acpi_gpiochip_free_regions()
1145 struct gpio_chip *chip = achip->chip; in acpi_gpiochip_parse_own_gpio() local
1159 desc = gpiochip_get_desc(chip, gpios[0]); in acpi_gpiochip_parse_own_gpio()
1168 else if (fwnode_property_present(fwnode, "output-low")) in acpi_gpiochip_parse_own_gpio()
1170 else if (fwnode_property_present(fwnode, "output-high")) in acpi_gpiochip_parse_own_gpio()
1173 return ERR_PTR(-EINVAL); in acpi_gpiochip_parse_own_gpio()
1175 fwnode_property_read_string(fwnode, "line-name", name); in acpi_gpiochip_parse_own_gpio()
1182 struct gpio_chip *chip = achip->chip; in acpi_gpiochip_scan_gpios() local
1185 device_for_each_child_node(chip->parent, fwnode) { in acpi_gpiochip_scan_gpios()
1192 if (!fwnode_property_present(fwnode, "gpio-hog")) in acpi_gpiochip_scan_gpios()
1202 dev_err(chip->parent, "Failed to hog GPIO\n"); in acpi_gpiochip_scan_gpios()
1209 void acpi_gpiochip_add(struct gpio_chip *chip) in acpi_gpiochip_add() argument
1215 if (!chip || !chip->parent) in acpi_gpiochip_add()
1218 handle = ACPI_HANDLE(chip->parent); in acpi_gpiochip_add()
1224 dev_err(chip->parent, in acpi_gpiochip_add()
1225 "Failed to allocate memory for ACPI GPIO chip\n"); in acpi_gpiochip_add()
1229 acpi_gpio->chip = chip; in acpi_gpiochip_add()
1230 INIT_LIST_HEAD(&acpi_gpio->events); in acpi_gpiochip_add()
1231 INIT_LIST_HEAD(&acpi_gpio->deferred_req_irqs_list_entry); in acpi_gpiochip_add()
1235 dev_err(chip->parent, "Failed to attach ACPI GPIO chip\n"); in acpi_gpiochip_add()
1245 void acpi_gpiochip_remove(struct gpio_chip *chip) in acpi_gpiochip_remove() argument
1251 if (!chip || !chip->parent) in acpi_gpiochip_remove()
1254 handle = ACPI_HANDLE(chip->parent); in acpi_gpiochip_remove()
1260 dev_warn(chip->parent, "Failed to retrieve ACPI GPIO chip\n"); in acpi_gpiochip_remove()
1272 const union acpi_object *element = obj->package.elements; in acpi_gpio_package_count()
1273 const union acpi_object *end = element + obj->package.count; in acpi_gpio_package_count()
1277 switch (element->type) { in acpi_gpio_package_count()
1287 return -EPROTO; in acpi_gpio_package_count()
1298 if (ares->type == ACPI_RESOURCE_TYPE_GPIO) in acpi_find_gpio_count()
1299 *count += ares->data.gpio.pin_table_length; in acpi_find_gpio_count()
1305 * acpi_gpio_count - count the GPIOs associated with a device / function
1306 * @dev: GPIO consumer, can be %NULL for system-global GPIOs
1310 * The number of GPIOs associated with a device / function or %-ENOENT,
1311 * if no GPIO has been assigned to the requested function.
1318 int count = -ENOENT; in acpi_gpio_count()
1326 snprintf(propname, sizeof(propname), "%s-%s", in acpi_gpio_count()
1335 if (obj->type == ACPI_TYPE_LOCAL_REFERENCE) in acpi_gpio_count()
1337 else if (obj->type == ACPI_TYPE_PACKAGE) in acpi_gpio_count()
1339 } else if (adev->driver_gpios) { in acpi_gpio_count()
1340 for (gm = adev->driver_gpios; gm->name; gm++) in acpi_gpio_count()
1341 if (strcmp(propname, gm->name) == 0) { in acpi_gpio_count()
1342 count = gm->size; in acpi_gpio_count()
1365 return count ? count : -ENOENT; in acpi_gpio_count()
1390 * The Minix Neo Z83-4 has a micro-USB-B id-pin handler for
1391 * a non existing micro-USB-B connector which puts the HDMI
1396 DMI_MATCH(DMI_PRODUCT_NAME, "Z83-4"),
1404 * The Terra Pad 1061 has a micro-USB-B id-pin handler, which
1405 * instead of controlling the actual micro-USB-B turns the 5V
1406 * boost for its USB-A connector off. The actual micro-USB-B
1420 * external embedded-controller connected via I2C + an ACPI GPIO
1434 * external embedded-controller connected via I2C + an ACPI GPIO
1441 * to press the power-button to wakeup the system. The
1446 DMI_MATCH(DMI_PRODUCT_NAME, "HP x2 Detachable 10-p0XX"),
1455 * external embedded-controller connected via I2C + an ACPI GPIO
1459 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
1470 * external embedded-controller connected via I2C + an ACPI GPIO
1488 const struct dmi_system_id *id; in acpi_gpio_setup_params() local
1490 id = dmi_first_match(gpiolib_acpi_quirks); in acpi_gpio_setup_params()
1491 if (id) in acpi_gpio_setup_params()
1492 quirk = id->driver_data; in acpi_gpio_setup_params()
1495 if (quirk && quirk->no_edge_events_on_boot) in acpi_gpio_setup_params()
1501 if (ignore_wake == NULL && quirk && quirk->ignore_wake) in acpi_gpio_setup_params()
1502 ignore_wake = quirk->ignore_wake; in acpi_gpio_setup_params()