aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpiolib.c
AgeCommit message (Expand)AuthorFilesLines
5 daysgpio: gpiolib: use seq_puts() for plain stringsChen Jung Ku1-2/+2
6 daysgpiolib: Mark gpio_devt, gpiolib_initialized and gpio_stub_drv as __ro_after_...Len Bao1-3/+3
2026-05-11gpiolib: add gpiod_is_single_ended() helperJie Li1-0/+22
2026-04-13Merge tag 'gpio-updates-for-v7.1-rc1' of git://git.kernel.org/pub/scm/linux/k...Linus Torvalds1-82/+140
2026-04-03gpiolib: Make deferral warnings debug messagesJon Hunter1-4/+4
2026-03-30gpiolib: fix hogs with multiple linesBartosz Golaszewski1-38/+54
2026-03-23gpio: shared: handle pins shared by child nodes of devicesBartosz Golaszewski1-2/+2
2026-03-23gpio: shared: call gpio_chip::of_xlate() if setBartosz Golaszewski1-1/+1
2026-03-16Merge branch 'gpio/dev-init-rework' into gpio/for-currentBartosz Golaszewski1-53/+48
2026-03-16Revert "gpio: Access `gpio_bus_type` in gpiochip_setup_dev()"Tzung-Bi Shih1-4/+3
2026-03-16gpiolib: Update gpiochip_find_base_unlocked() kerneldocLinus Walleij1-1/+9
2026-03-16gpio: remove machine hogsBartosz Golaszewski1-71/+0
2026-03-16gpio: move hogs into GPIO coreBartosz Golaszewski1-2/+96
2026-03-11gpiolib: clear requested flag if line is invalidBarnabás Pőcze1-2/+4
2026-02-27gpio: Ensure struct gpio_chip for gpiochip_setup_dev()Tzung-Bi Shih1-7/+17
2026-02-27gpio: sysfs: Remove redundant check for struct gpio_chipTzung-Bi Shih1-1/+1
2026-02-27gpio: Remove redundant check for struct gpio_chipTzung-Bi Shih1-11/+2
2026-02-27gpio: Access `gpio_bus_type` in gpiochip_setup_dev()Tzung-Bi Shih1-3/+4
2026-02-27Merge branch 'gpio/dev-init-rework' into gpio/for-nextBartosz Golaszewski1-53/+48
2026-02-27gpio: Fix resource leaks on errors in gpiochip_add_data_with_key()Tzung-Bi Shih1-53/+48
2026-02-27gpiolib: match secondary fwnode too in gpio_device_find_by_fwnode()Bartosz Golaszewski1-1/+11
2026-02-23gpiolib: normalize the return value of gc->get() on behalf of buggy driversBartosz Golaszewski1-2/+6
2026-02-21Convert 'alloc_flex' family to use the new default GFP_KERNEL argumentLinus Torvalds1-1/+1
2026-02-21Convert 'alloc_obj' family to use the new default GFP_KERNEL argumentLinus Torvalds1-3/+3
2026-02-21treewide: Replace kmalloc with kmalloc_obj for non-scalar typesKees Cook1-5/+4
2026-02-11Merge tag 'gpio-updates-for-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/k...Linus Torvalds1-18/+12
2026-01-21gpio: shared: propagate configuration to pinctrlBartosz Golaszewski1-2/+2
2026-01-12Merge tag 'v6.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/torval...Bartosz Golaszewski1-57/+79
2026-01-12gpiolib: remove redundant callback checkBartosz Golaszewski1-3/+0
2026-01-08gpiolib: fix lookup table matchingBartosz Golaszewski1-2/+2
2026-01-02gpiolib: fix race condition for gdev->srcuPaweł Narewski1-20/+20
2026-01-02gpio: shared: verify con_id when adding proxy lookupBartosz Golaszewski1-1/+2
2026-01-02gpiolib: allow multiple lookup tables per consumerBartosz Golaszewski1-35/+56
2025-12-17gpio: stub: Drop empty probe functionUwe Kleine-König1-18/+12
2025-11-20Merge tag 'reset-gpio-for-v6.19' of https://git.pengutronix.de/git/pza/linux ...Bartosz Golaszewski1-1/+7
2025-11-17Merge tag 'gpio/shared-gpios-for-v6.19-rc1' of git://git.kernel.org/pub/scm/l...Bartosz Golaszewski1-9/+61
2025-11-17gpio: provide gpiod_is_shared()Bartosz Golaszewski1-0/+20
2025-11-17gpiolib: support shared GPIOs in core subsystem codeBartosz Golaszewski1-9/+41
2025-11-03gpiolib: fix invalid pointer access in debugfsBartosz Golaszewski1-1/+7
2025-10-21gpio: export gpiod_hwgpio()Bartosz Golaszewski1-0/+13
2025-10-21gpio: rename gpio_chip_hwgpio() to gpiod_hwgpio()Bartosz Golaszewski1-23/+23
2025-10-13gpiolib: rename GPIO chip printk macrosBartosz Golaszewski1-41/+39
2025-10-13gpiolib: remove unnecessary 'out of memory' messagesBartosz Golaszewski1-6/+2
2025-10-01Merge tag 'gpio-updates-for-v6.18-rc1' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-92/+103
2025-09-22gpiolib: Extend software-node support to support secondary software-nodesHans de Goede1-2/+19
2025-09-12gpiolib: add a common prefix to GPIO descriptor flagsBartosz Golaszewski1-83/+83
2025-08-11gpiolib: add support to register sparse pin rangeThomas Richard1-9/+20
2025-08-07treewide: rename GPIO set callbacks back to their original namesBartosz Golaszewski1-5/+5
2025-08-07gpio: remove legacy GPIO line value setter callbacksBartosz Golaszewski1-21/+6
2025-07-28Merge tag 'gpio-updates-for-v6.17-rc1' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-17/+30
2025-07-13gpiolib: don't use GPIO global numbers in debugfs outputBartosz Golaszewski1-3/+2
2025-07-04gpiolib: fix performance regression when using gpio_chip_get_multiple()Hugo Villeneuve1-2/+3
2025-06-30gpio: make gpiod_is_equal() arguments stricterBartosz Golaszewski1-14/+15
2025-06-30gpio: constify arguments of gpiod_is_equal()Bartosz Golaszewski1-1/+1
2025-06-10gpiolib: Move GPIO_DYNAMIC_* constants to its only userAndy Shevchenko1-0/+13
2025-05-27Merge tag 'gpio-updates-for-v6.16-rc1' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-76/+97
2025-05-20gpiolib: don't crash on enabling GPIO HOG pinsDmitry Baryshkov1-0/+6
2025-05-20gpiolib: remove unneeded #ifdefBartosz Golaszewski1-2/+0
2025-04-17gpiolib: Remove redundant assignment of return variableAndy Shevchenko1-7/+6
2025-04-17gpiolib: Reuse return variable in gpiod_to_irq()Andy Shevchenko1-5/+4
2025-04-17gpiolib: Call validate_desc() when VALIDATE_DESC() can't be usedAndy Shevchenko1-11/+5
2025-04-17gpiolib: Move validate_desc() and Co upper in the codeAndy Shevchenko1-31/+31
2025-04-17gpiolib: Revert "Don't WARN on gpiod_put() for optional GPIO"Andy Shevchenko1-2/+1
2025-04-17gpiolib: Print actual error when descriptor contains an error pointerAndy Shevchenko1-1/+1
2025-04-17gpiolib: Convert to use guard()() for gpio_machine_hogs_mutexAndy Shevchenko1-8/+4
2025-04-17gpiolib: Make taking gpio_lookup_lock consistentAndy Shevchenko1-6/+2
2025-04-14gpiolib: Allow to use setters with return value for output-only gpiosMathieu Dubois-Briand1-1/+1
2025-04-09Merge tag 'gpiod-is-equal-for-v6.16-rc1' of gitolite.kernel.org:pub/scm/linux...Bartosz Golaszewski1-0/+14
2025-04-09gpio: provide gpiod_is_equal()Bartosz Golaszewski1-0/+14
2025-04-08gpiolib: support parsing gpio three-cell interrupts schemeYixun Lan1-4/+18
2025-04-07gpiolib: don't allow setting values on input linesBartosz Golaszewski1-0/+12
2025-03-17Merge tag 'v6.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/torval...Bartosz Golaszewski1-3/+5
2025-03-13gpio: cdev: use raw notifier for line state eventsBartosz Golaszewski1-3/+5
2025-03-13gpiolib: don't check the retval of get_direction() when registering a chipBartosz Golaszewski1-16/+11
2025-03-05gpio: Hide valid_mask from direct assignmentsMatti Vaittinen1-8/+8
2025-03-05gpio: Add a valid_mask getterMatti Vaittinen1-0/+16
2025-03-05gpio: Respect valid_mask when requesting GPIOsMatti Vaittinen1-5/+5
2025-03-03gpiolib: update kerneldocs for value settersBartosz Golaszewski1-0/+15
2025-03-03gpiolib: remove unneeded WARN_ON() from gpiochip_set_multiple()Bartosz Golaszewski1-3/+0
2025-03-03Merge tag 'v6.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/torval...Bartosz Golaszewski1-10/+10
2025-02-28gpiolib: Fix Oops in gpiod_direction_input_nonotify()Dan Carpenter1-10/+10
2025-02-27gpiolib: don't double-check the gc->get callback's existenceBartosz Golaszewski1-4/+2
2025-02-27gpiolib: use a more explicit retval logic in gpiochip_get_direction()Bartosz Golaszewski1-1/+4
2025-02-27gpiolib: don't use gpiochip_get_direction() when registering a chipBartosz Golaszewski1-16/+11
2025-02-26gpiolib: introduce gpio_chip setters that return valuesBartosz Golaszewski1-2/+25
2025-02-26gpiolib: rework the wrapper around gpio_chip::set_multiple()Bartosz Golaszewski1-11/+29
2025-02-26gpiolib: wrap gpio_chip::set()Bartosz Golaszewski1-5/+16
2025-02-26gpiolib: make value setters have return valuesBartosz Golaszewski1-23/+30
2025-02-24gpiolib: read descriptor flags once in gpiolib_dbg_show()Bartosz Golaszewski1-4/+6
2025-02-24gpiolib: sanitize the return value of gpio_chip::get_direction()Bartosz Golaszewski1-6/+21
2025-02-24gpiolib: sanitize the return value of gpio_chip::direction_input()Bartosz Golaszewski1-4/+20
2025-02-24gpiolib: sanitize the return value of gpio_chip::direction_output()Bartosz Golaszewski1-4/+21
2025-02-24gpiolib: sanitize the return value of gpio_chip::get_multiple()Bartosz Golaszewski1-2/+8
2025-02-24gpiolib: sanitize the return value of gpio_chip::get()Bartosz Golaszewski1-2/+18
2025-02-24gpiolib: sanitize the return value of gpio_chip::set_config()Bartosz Golaszewski1-0/+3
2025-02-24gpiolib: sanitize the return value of gpio_chip::request()Bartosz Golaszewski1-0/+2
2025-02-24Merge tag 'v6.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/torval...Bartosz Golaszewski1-33/+73
2025-02-21gpiolib: Use fwnode instead of device in gpiochip_get_ngpios()Andy Shevchenko1-1/+2
2025-02-21gpiolib: Extract gpiochip_choose_fwnode() for wider useAndy Shevchenko1-8/+16
2025-02-20gpiolib: don't bail out if get_direction() fails in gpiochip_add_data()Bartosz Golaszewski1-1/+9
2025-02-18gpiolib: don't build HTE code with CONFIG_HTE disabledBartosz Golaszewski1-0/+2
2025-02-18gpiolib: protect gpio_chip with SRCU in array_info paths in multi get/setBartosz Golaszewski1-15/+33
2025-02-17gpiolib: check the return value of gpio_chip::get_direction()Bartosz Golaszewski1-15/+29
2025-02-13gpiolib: Fix crash on error in gpiochip_get_ngpios()Andy Shevchenko1-3/+3
2025-02-12gpiolib: Deduplicate gpiod_direction_input_nonotify() callAndy Shevchenko1-9/+7
2025-02-11gpiolib: Even more opportunities to use str_high_low() helperAndy Shevchenko1-2/+2
2025-02-03gpio: Use str_enable_disable-like helpersKrzysztof Kozlowski1-1/+2
2024-11-04gpiolib: clean up debugfs separator handlingJohan Hovold1-6/+6
2024-11-04Merge tag 'v6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/torval...Bartosz Golaszewski1-1/+3
2024-10-31gpiolib: fix debugfs dangling chip separatorJohan Hovold1-1/+1
2024-10-31gpiolib: fix debugfs newline separatorsJohan Hovold1-0/+2
2024-10-31gpiolib: remove leftover spinlock bitsBartosz Golaszewski1-6/+0
2024-10-24gpiolib: fix a NULL-pointer dereference when setting directionBartosz Golaszewski1-4/+4
2024-10-22gpiolib: notify user-space about in-kernel line state changesBartosz Golaszewski1-13/+76
2024-10-22gpiolib: switch the line state notifier to atomicBartosz Golaszewski1-3/+3
2024-10-22gpio: cdev: go back to storing debounce period in the GPIO descriptorBartosz Golaszewski1-2/+16
2024-10-22gpiolib: unduplicate chip guard in set_config pathBartosz Golaszewski1-14/+9
2024-10-22gpiolib: notify user-space when a driver requests its own descBartosz Golaszewski1-0/+2
2024-10-14Merge tag 'v6.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/torval...Bartosz Golaszewski1-2/+2
2024-10-08gpiolib: unify two loops initializing GPIO descriptorsBartosz Golaszewski1-3/+2
2024-10-08gpiolib: use v2 defines for line state change eventsBartosz Golaszewski1-2/+2
2024-10-03gpiolib: Fix potential NULL pointer dereference in gpiod_get_label()Lad Prabhakar1-2/+2
2024-09-30gpio: free irqs that are still requested when the chip is being removedBartosz Golaszewski1-0/+41
2024-09-02gpiolib: Update the kernel documentation - add Return sectionsAndy Shevchenko1-32/+125
2024-09-02gpio: Use IS_ERR_OR_NULL() helper functionHongbo Li1-2/+2
2024-08-20gpiolib: Replace gpio_suffix_count with NULL-terminated arrayAndy Shevchenko1-2/+1
2024-07-25Merge tag 'driver-core-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel...Linus Torvalds1-1/+1
2024-07-03driver core: have match() callback in struct bus_type take a const *Greg Kroah-Hartman1-1/+1
2024-07-02gpiolib: unexport gpiochip_get_desc()Bartosz Golaszewski1-1/+0
2024-06-14gpiolib: put gpio_suffixes in a single compilation unitBartosz Golaszewski1-0/+4
2024-06-04gpiolib: Show more info for interrupt only lines in debugfsAndy Shevchenko1-2/+2
2024-06-04gpiolib: Return label, if set, for IRQ only lineAndy Shevchenko1-6/+6
2024-06-03gpiolib: make gpiochip_set_desc_names() return voidBartosz Golaszewski1-8/+4
2024-05-27gpio: prevent potential speculation leaks in gpio_device_get_desc()Hagar Hemdan1-1/+2
2024-05-14Merge tag 'gpio-updates-for-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-12/+14
2024-05-09gpiolib: use a single SRCU struct for all GPIO descriptorsBartosz Golaszewski1-22/+19
2024-05-07gpiolib: fix the speed of descriptor label setting with SRCUBartosz Golaszewski1-7/+24
2024-04-17gpiolib: Get rid of never false gpio_is_valid() callsAndy Shevchenko1-10/+9
2024-04-03gpiolib: Do not mention legacy GPIOF_* in the codeAndy Shevchenko1-1/+4
2024-04-03gpiolib: Fix triggering "kobject: 'gpiochipX' is not initialized, yet" kobjec...Hans de Goede1-0/+3
2024-04-02gpiolib: use dev_err() when gpiod_configure_flags failedPeng Fan1-1/+1
2024-03-26gpiolib: Fix debug messaging in gpiod_find_and_request()Andy Shevchenko1-14/+18
2024-03-05gpiolib: Deduplicate cleanup for-loop in gpiochip_add_data_with_key()Andy Shevchenko1-15/+11
2024-03-05Merge tag 'v6.8-rc7' into gpio/for-nextBartosz Golaszewski1-5/+10
2024-03-01gpio: fix resource unwinding order in error pathBartosz Golaszewski1-4/+4
2024-03-01gpio: acpi: Make acpi_gpio_count() take firmware node as a parameterAndy Shevchenko1-1/+1
2024-03-01gpio: of: Make of_gpio_get_count() take firmware node as a parameterAndy Shevchenko1-1/+1
2024-03-01gpiolib: Fix the error path order in gpiochip_add_data_with_key()Andy Shevchenko1-1/+1
2024-02-27gpiolib: Pass consumer device through to core in devm_fwnode_gpiod_get_index()Stephen Boyd1-7/+7
2024-02-26gpio: don't warn about removing GPIO chips with active users anymoreBartosz Golaszewski1-18/+2
2024-02-20gpiolib: Handle no pin_ranges in gpiochip_generic_config()Emil Renner Berthing1-0/+5
2024-02-19gpio: fix memory leak in gpiod_request_commit()Xiaolei Wang1-6/+0
2024-02-17gpio: constify opaque pointer "data" in gpio_device_find()Krzysztof Kozlowski1-1/+1
2024-02-15gpio: don't let lockdep complain about inherently dangerous RCU usageBartosz Golaszewski1-2/+3
2024-02-15gpio: use srcu_dereference() with SRCU-protected pointersBartosz Golaszewski1-8/+8
2024-02-15gpio: take the SRCU read lock in gpiod_hog()Bartosz Golaszewski1-4/+7
2024-02-14gpio: initialize descriptor SRCU structure before adding OF-based chipsBartosz Golaszewski1-9/+9
2024-02-12gpio: mark unsafe gpio_chip manipulators as deprecatedBartosz Golaszewski1-0/+6
2024-02-12gpio: remove the RW semaphore from the GPIO deviceBartosz Golaszewski1-4/+0
2024-02-12gpio: protect the pointer to gpio_chip in gpio_device with SRCUBartosz Golaszewski1-84/+173
2024-02-12gpio: add SRCU infrastructure to struct gpio_deviceBartosz Golaszewski1-3/+10
2024-02-12gpio: add the can_sleep flag to struct gpio_deviceBartosz Golaszewski1-5/+6
2024-02-12gpio: remove unnecessary checks from gpiod_to_chip()Bartosz Golaszewski1-2/+2
2024-02-12gpio: reduce the functionality of validate_desc()Bartosz Golaszewski1-15/+3
2024-02-12gpio: don't dereference gdev->chip in gpiochip_setup_dev()Bartosz Golaszewski1-1/+1
2024-02-12gpio: remove unneeded code from gpio_device_get_desc()Bartosz Golaszewski1-10/+0
2024-02-12gpio: reinforce desc->flags handlingBartosz Golaszewski1-17/+25
2024-02-12gpio: remove gpio_lockBartosz Golaszewski1-74/+32
2024-02-12gpio: sysfs: use gpio_device_find() to iterate over existing devicesBartosz Golaszewski1-1/+1
2024-02-12gpio: protect the descriptor label with SRCUBartosz Golaszewski1-17/+30
2024-02-12gpio: add SRCU infrastructure to struct gpio_descBartosz Golaszewski1-2/+16
2024-02-12gpio: don't set label from irq helpersBartosz Golaszewski1-13/+8
2024-02-12gpio: provide and use gpiod_get_label()Bartosz Golaszewski1-2/+7
2024-02-12gpio: of: assign and read the hog pointer atomicallyBartosz Golaszewski1-1/+1
2024-02-12gpio: protect the list of GPIO devices with SRCUBartosz Golaszewski1-112/+135
2024-02-12gpio: constify opaque pointer in gpio_device_find() match functionKrzysztof Kozlowski1-3/+3
2024-02-12Merge tag 'v6.8-rc4' into gpio/for-nextBartosz Golaszewski1-4/+4
2024-02-08gpio: set device type for GPIO chipsBartosz Golaszewski1-4/+9
2024-02-08gpio: remove GPIO device from the list unconditionally in error pathBartosz Golaszewski1-4/+4
2024-02-05gpio: gpiolib: make gpio_bus_type constRicardo B. Marliere1-1/+1
2024-01-29gpio: unexport GPIO irq domain functions only used internallyBartosz Golaszewski1-51/+42
2024-01-17gpiolib: revert the attempt to protect the GPIO device list with an rwsemBartosz Golaszewski1-60/+73
2024-01-04gpiolib: replace the GPIO device mutex with a read-write semaphoreBartosz Golaszewski1-9/+9
2024-01-04gpiolib: remove the GPIO device from the list when it's unregisteredBartosz Golaszewski1-3/+3
2023-12-27gpiolib: drop tabs from local variable declarationsBartosz Golaszewski1-20/+18
2023-12-27gpiolib: remove extra_checksBartosz Golaszewski1-22/+9
2023-12-19gpiolib: remove debounce_period_us from struct gpio_descKent Gibson1-3/+0
2023-12-18gpiolib: use a mutex to protect the list of GPIO devicesBartosz Golaszewski1-76/+61
2023-12-18gpiolib: rename static functions that are called with the lock takenBartosz Golaszewski1-4/+4
2023-12-15gpiolib: allocate memory atomically with a spinlock heldBartosz Golaszewski1-1/+9
2023-12-08Merge tag 'gpio-remove-gpiochip_is_requested-for-v6.8-rc1' into gpio/for-nextBartosz Golaszewski1-14/+21
2023-12-08gpiolib: remove gpiochip_is_requested()Bartosz Golaszewski1-35/+13
2023-12-08gpiolib: provide gpiochip_dup_line_label()Bartosz Golaszewski1-0/+29
2023-11-24gpiolib: provide gpio_device_get_label()Bartosz Golaszewski1-0/+14
2023-11-04treewide: rename pinctrl_gpio_set_config_new()Bartosz Golaszewski1-1/+1
2023-11-04treewide: rename pinctrl_gpio_free_new()Bartosz Golaszewski1-1/+1
2023-11-04treewide: rename pinctrl_gpio_request_new()Bartosz Golaszewski1-1/+1
2023-11-04gpiolib: generic: use new pinctrl GPIO helpersBartosz Golaszewski1-3/+3
2023-11-04gpiolib: remove gpiochip_find()Bartosz Golaszewski1-22/+0
2023-10-13gpiolib: provide gpio_device_get_base()Bartosz Golaszewski1-0/+13