aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpiolib.c
AgeCommit message (Expand)AuthorFilesLines
2025-11-03gpiolib: fix invalid pointer access in debugfsBartosz Golaszewski1-1/+7
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
2023-10-13gpiolib: provide gpiod_to_gpio_device()Bartosz Golaszewski1-0/+21
2023-10-13gpiolib: provide gpio_device_to_device()Bartosz Golaszewski1-0/+17
2023-10-12gpiolib: provide gpio_device_find_by_fwnode()Andy Shevchenko1-0/+20
2023-10-04gpiolib: replace find_chip_by_name() with gpio_device_find_by_label()Bartosz Golaszewski1-22/+11
2023-10-04gpiolib: reluctantly provide gpio_device_get_chip()Bartosz Golaszewski1-0/+21
2023-10-04gpiolib: provide gpio_device_get_desc()Bartosz Golaszewski1-9/+31
2023-10-04gpiolib: provide gpio_device_find_by_label()Bartosz Golaszewski1-0/+21
2023-10-04gpiolib: provide gpio_device_find()Bartosz Golaszewski1-18/+53
2023-10-04gpiolib: make gpio_device_get() and gpio_device_put() publicBartosz Golaszewski1-0/+24
2023-10-02gpiolib: extend the critical sections of lookup tablesBartosz Golaszewski1-15/+15
2023-09-11gpiolib: unexport gpiod_set_transitory()Bartosz Golaszewski1-1/+0
2023-08-29Merge tag 'gpio-updates-for-v6.6' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds1-90/+113
2023-08-22gpiolib: provide and use gpiod_line_state_notify()Bartosz Golaszewski1-4/+8
2023-08-21gpiolib: add a second blocking notifier to struct gpio_deviceBartosz Golaszewski1-0/+1
2023-08-21gpiolib: rename the gpio_device notifierBartosz Golaszewski1-3/+3
2023-08-16gpiolib: fix reference leaks when removing GPIO chips still in useBartosz Golaszewski1-5/+11
2023-07-18gpio: mmio: handle "ngpios" properly in bgpio_init()Asmaa Mnebhi1-31/+37
2023-07-10gpiolib: Replace open coded gpiochip_irqchip_add_allocated_domain()Andy Shevchenko1-13/+7
2023-07-10gpiolib: Split out gpiochip_irqchip_add_allocated_domain() helperAndy Shevchenko1-16/+23
2023-07-10gpiolib: Do not assign error pointer to the GPIO IRQ chip domainAndy Shevchenko1-6/+6
2023-07-10gpiolib: Factor out gpiochip_simple_create_domain()Andy Shevchenko1-7/+16
2023-07-10gpiolib: Make gpiochip_hierarchy_add_domain() return domainAndy Shevchenko1-11/+13
2023-07-10gpiolib: Do not alter GPIO chip fwnode memberAndy Shevchenko1-8/+8
2023-06-29Merge tag 'gpio-updates-for-v6.5' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds1-26/+18
2023-06-19gpiolib: Drop unused domain_ops memeber of GPIO IRQ chipAndy Shevchenko1-2/+1
2023-06-19gpiolib: Fix irq_domain resource tracking for gpiochip_irqchip_add_domain()Michael Walle1-1/+2
2023-06-13gpiolib: Fix GPIO chip IRQ initialization restrictionJiawen Wu1-0/+8
2023-06-09gpiolib: Do not unexport GPIO on freeingAndy Shevchenko1-2/+0
2023-06-07gpiolib: demote the hogging log messages to debugBartosz Golaszewski1-1/+1
2023-06-01gpiolib: Unify allocation and initialization of GPIO valid maskAndy Shevchenko1-17/+8
2023-06-01gpiolib: Consolidate the allocated mask freeing APIsAndy Shevchenko1-4/+8
2023-05-17gpiolib: fix allocation of mixed dynamic/static GPIOsAndreas Kemnade1-0/+2
2023-04-11gpio: gpiolib: Simplify gpiochip_add_data_with_key() fwnodeLinus Walleij1-7/+6
2023-04-03gpiolib: Add gpiochip_set_data() helperAndy Shevchenko1-3/+9
2023-04-03gpiolib: Move gpiochip_get_data() higher in the codeAndy Shevchenko1-13/+13
2023-03-29gpiolib: Check array_info for NULL only once in gpiod_get_array()Andy Shevchenko1-7/+9
2023-03-29gpiolib: Replace open coded krealloc()Andy Shevchenko1-9/+8
2023-03-15gpiolib: Use IRQ hardware number getter instead of direct accessAndy Shevchenko1-11/+18
2023-03-15gpiolib: Remove duplicative check in gpiod_find_and_request()Andy Shevchenko1-5/+2
2023-03-15gpiolib: Move gpiodevice_*() to gpiodev namespaceAndy Shevchenko1-2/+2
2023-03-15gpiolib: Get rid of devprop prefix in one functionAndy Shevchenko1-3/+3
2023-03-08gpiolib: Get rid of gpio_bus_match() forward declarationAndy Shevchenko1-15/+14