mirror-linux/Documentation/driver-api
Linus Torvalds 500920fa76 gpio updates for v6.19-rc1
GPIO core:
 - add proper support for shared GPIOs that's aiming to replace the
   current sharing mechanism (which provides no synchronization ot enable
   counting) and enable it for Qualcomm platforms
 - improve the software node GPIO lookup by using the fwnode
   representation instead of the software node's name which was prone to
   bugs (GPIO controllers don't have to use the software node's name as
   their kernel label)
 - remove the last user of legacy-of-mm-gpiochip.h and drop the header
 - move closer to removing the legacy gpio_request_one() routine
 - rename some symbols for consistency
 - shrink GPIO printk() helpers by reusing existing code
 - remove some redundant kernel messages
 - use min() instead of min_t() in GPIO ACPI code
 - use system_percpu_wq instead of system_wq in GPIO character device code
 
 New drivers:
 - add a driver for the QIXIS FPGA GPIO controller
 
 Driver improvements:
 - use modernized variants of power management macros across a wide array
   of drivers in order to avoid having to use the __maybe_unused attribute
 - convert gpio-elkhartlake and reset-gpio to using the auxiliary bus
   instead of the platform bus as they are not really described in
   firmware
 - use lock guards and update symbol prefixes in gpio-mmio
 - support the bryx radio interface kit in gpio-mpsse + refactor the
   driver
 - use software nodes for configuring the reset-gpio driver, including
   setting up the reference to the shared "reset" pin
 - check and propagate the return value of gpiod_set_value() to user-space
   in gpio-virtuser (this was previously not possible as this function
   returned void)
 - extend the gpio-regmap helper with more features (bypass cache for
   aliased inputs, force writes for aliased data registers, add a new
   configuration parameter)
 - remove unneeded includes from gpio-aspeed and gpio-latch
 - add support for Tegra410 to gpio-tegra186
 - replace PCI-specific PM with generic device-level PM in gpio-bt8xx
 - use dynamic GPIO range allocation in gpio-loongson-64bit
 - improve handling of level-triggered interrupts in gpio-pca953x
 - add suspend/resume support to gpio-fxl6408
 - add support for more models to gpio-menz127
 - optimize gpio-mvebu interrupt handling by avoiding unnecessary calls
   to mvebu_gpio_irq_handler()
 - make locking more consistent in gpio-grgpio
 
 Device-tree bindings:
 - document new NXP and Microchip models
 
 Documentation:
 - add a comprehensive compatibility and feature list for gpio-pca953x,
   which is a great addition as it's probably the most commonly used GPIO
   expander driver
 - kernel-doc tweaks
 
 Late fixes:
 - use BYTE_CTRL_MODE for 2K2000/3000 models in gpio-loongson
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmktpZkACgkQBZ0uy/82
 hMPRNg/+PEhBT1Sm9GZDL2c3urSfEyIIA97nxvV6rad75Xfj8IVy+orvyhJHJgni
 ksjlvLUQLYQ1j82TlCIZDlj3dAmk3rkb6wwbcUubOb7G/xkvWHQztrnmDk4bvSdr
 0vR/dEGOUDRLJxPjeQdFzEoDqLrCqy5QwugH3hd6NASBy+n/g7j2Gb4Pc8IA14wL
 ogkBlP8nXVv2w7GMFESjNldWvxFnOasGuzIfM7mIBDBSjLzEANcuH/E5dNXPFIO7
 kNN8eSnSfMGH0Z0DjdU9tkaAiLypw9FHqSwU6JKNjE/nzzcGV3OzDMM2vgKLETin
 z9tNPBtvXOSBuFbxydWUgX20AmNo5ZEfqGXCwinTHOLwABGZPigi7Ogwxeox0SZ4
 OKm37GUtZlO+dJC8bWUA82l9CwM9GDcxn7/Fv4s4vLaULUfeZHXn1OP4JZ4WmuZi
 J7D5lMIiXKI9EBH95AX3c/r5drZQh1T4Rr7GJ4GG9uceYGTzsE65idI0KXTT1mbx
 nMfQYvNSHGk123rN1bLQov1jZE7foXE9mQ+MzMNSWI3C1WdCGRBorqN8+wMrBU29
 OLS66UorNwSCIl0XY+lIgdiW6OXBTc65jF1v+EdSZaFknEYHQm9TIxQNH+tQDYfz
 irl2dhxz/iaekxO7p516iY3NeqO9Af4SfITVmAX4xDvak3tcYsU=
 =Mw+x
 -----END PGP SIGNATURE-----

Merge tag 'gpio-updates-for-v6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull gpio updates from Bartosz Golaszewski:
 "There's one new driver, lots of various updates to existing ones, some
  refactoring support for new models and misc tweaks and fixes.

  The biggest new feature in GPIO core is adding support for managed,
  enable-counted sharing of GPIO pins, something that - until now - was
  only hacked around with the GPIOD_FLAGS_BIT_NONEXCLUSIVE request flag
  which basically allowed drivers to "fight it out" for the descriptor
  and provided no synchronization. It was enabled on Qualcomm platforms
  (and thus is enabled on arm64 defconfig) and I plan on removing
  GPIOD_FLAGS_BIT_NONEXCLUSIVE once all drivers using it are switched to
  the new mechanism.

  GPIO core:
   - add proper support for shared GPIOs that's aiming to replace the
     current sharing mechanism (which provides no synchronization ot
     enable counting) and enable it for Qualcomm platforms
   - improve the software node GPIO lookup by using the fwnode
     representation instead of the software node's name which was prone
     to bugs (GPIO controllers don't have to use the software node's
     name as their kernel label)
   - remove the last user of legacy-of-mm-gpiochip.h and drop the header
   - move closer to removing the legacy gpio_request_one() routine
   - rename some symbols for consistency
   - shrink GPIO printk() helpers by reusing existing code
   - remove some redundant kernel messages
   - use min() instead of min_t() in GPIO ACPI code
   - use system_percpu_wq instead of system_wq in GPIO character device
     code

  New drivers:
   - add a driver for the QIXIS FPGA GPIO controller

  Driver improvements:
   - use modernized variants of power management macros across a wide
     array of drivers in order to avoid having to use the __maybe_unused
     attribute
   - convert gpio-elkhartlake and reset-gpio to using the auxiliary bus
     instead of the platform bus as they are not really described in
     firmware
   - use lock guards and update symbol prefixes in gpio-mmio
   - support the bryx radio interface kit in gpio-mpsse + refactor the
     driver
   - use software nodes for configuring the reset-gpio driver, including
     setting up the reference to the shared "reset" pin
   - check and propagate the return value of gpiod_set_value() to
     user-space in gpio-virtuser (this was previously not possible as
     this function returned void)
   - extend the gpio-regmap helper with more features (bypass cache for
     aliased inputs, force writes for aliased data registers, add a new
     configuration parameter)
   - remove unneeded includes from gpio-aspeed and gpio-latch
   - add support for Tegra410 to gpio-tegra186
   - replace PCI-specific PM with generic device-level PM in gpio-bt8xx
   - use dynamic GPIO range allocation in gpio-loongson-64bit
   - improve handling of level-triggered interrupts in gpio-pca953x
   - add suspend/resume support to gpio-fxl6408
   - add support for more models to gpio-menz127
   - optimize gpio-mvebu interrupt handling by avoiding unnecessary
     calls to mvebu_gpio_irq_handler()
   - make locking more consistent in gpio-grgpio

  Device-tree bindings:
   - document new NXP and Microchip models

  Documentation:
   - add a comprehensive compatibility and feature list for
     gpio-pca953x, which is a great addition as it's probably the most
     commonly used GPIO expander driver
   - kernel-doc tweaks

  Late fixes:
   - use BYTE_CTRL_MODE for 2K2000/3000 models in gpio-loongson"

* tag 'gpio-updates-for-v6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (80 commits)
  gpio: loongson: Switch 2K2000/3000 GPIO to BYTE_CTRL_MODE
  gpio: regmap: fix kernel-doc notation
  gpio: shared: fix a deadlock
  gpio: shared-proxy: set suppress_bind_attrs
  gpio: shared: ignore GPIO hogs when traversing the device tree
  gpio: shared: ignore special __symbols__ node when traversing device tree
  gpio: shared: handle the reset-gpios corner case
  gpio: zynq: Use modern PM macros
  gpio: xilinx: Use modern PM macros
  gpio: xgene: Use modern PM macros
  gpio: uniphier: Use modern PM macros
  gpio: tqmx86: Use modern PM macros
  gpio: pch: Use modern PM macros
  gpio: omap: Use modern PM macros
  gpio: msc313: Use modern PM macros
  gpio: mlxbf2: Use modern PM macros
  gpio: ml-ioh: Use modern PM macros
  gpio: pl061: Use modern PM macros
  gpio: htc-egpio: Use modern PM macros
  gpio: brcmstb: Use modern PM macros
  ...
2025-12-04 12:33:38 -08:00
..
80211
acpi
backlight
coco Merge branch 'for-6.16/tsm-mr' into tsm-next 2025-05-12 22:12:44 -07:00
crypto mm: remove unused zpool layer 2025-09-21 14:21:59 -07:00
cxl CXL changes for v6.18 2025-10-04 12:02:50 -07:00
dmaengine dmaengine updates for v6.16 2025-06-05 08:49:30 -07:00
driver-model docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
early-userspace docs: initramfs: file data alignment via name padding 2025-08-20 16:02:56 -07:00
firmware docs: driver-api: firmware: clarify userspace requirements 2025-03-17 17:04:32 -06:00
fpga fpga: region: add owner module and take its refcount 2024-04-23 15:37:20 +08:00
gpio Documentation: gpio: Add a compatibility and feature list for PCA953x 2025-11-19 12:07:39 +01:00
hte
i3c docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
iio docs: iio: Allow creating cross-references ABI 2025-02-18 13:42:46 -07:00
md
media media: Documentation: kapi: Add v4l2 generic ISP support 2025-11-14 15:48:49 +01:00
mei docs: driver-api: properly format ToC headings 2023-11-17 13:05:26 -07:00
memory-devices
mmc Documentation: mmc: Add mmc-test doc 2024-09-05 12:13:39 +02:00
mtd Docs: typos/spelling 2024-05-02 10:02:29 -06:00
nfc
nvdimm docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
pci PCI/TPH: Add TPH documentation 2024-10-21 16:19:32 -05:00
phy phy: core: Remove unused phy_pm_runtime_(allow|forbid) 2025-03-10 12:58:07 +05:30
pldmfw Documentation: pldmfw: Demote library overview section 2025-11-05 11:29:30 -07:00
pm docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
rapidio
serial serial: Remove unused uart_get_console 2025-06-19 13:24:16 +02:00
soundwire soundwire: update Intel BPT message length limitation 2025-06-09 21:42:18 +05:30
surface_aggregator lib: crc_ccitt_false() is identical to crc_itu_t() 2023-12-29 12:22:26 -08:00
thermal docs: driver-api/thermal/intel_dptf: Add new workload type hint 2025-11-20 21:32:52 +01:00
tty tty: fix tty_port_tty_*hangup() kernel-doc 2025-06-24 15:32:56 +01:00
usb Documentation: treewide: Replace marc.info links with lore 2025-11-03 16:21:31 -07:00
virtio virtio: store owner from modules with register_virtio_driver() 2024-04-08 04:11:04 -04:00
xilinx
aperture.rst
auxiliary_bus.rst drivers/base: Remove unused auxiliary_find_device 2024-10-14 08:21:09 +02:00
basics.rst Docs: driver-api/basics: add kobject_event interfaces 2025-05-19 08:02:14 -06:00
clk.rst
component.rst
connector.rst
console.rst
devfreq.rst
device-io.rst docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
device_link.rst
dma-buf.rst doc: dma-buf: fix grammar typo 2024-04-18 16:20:48 +02:00
dpll.rst dpll: add phase-adjust-gran pin attribute 2025-10-31 17:59:17 -07:00
edac.rst
eisa.rst docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
extcon.rst Documentation: extcon: add documentation for Extcon subsystem 2024-12-08 21:59:40 +09:00
firewire.rst firewire: core: expose kernel API to schedule work item to process isochronous context 2024-09-08 13:05:48 +09:00
frame-buffer.rst
generic-counter.rst docs: arm: generic-counter: Allow creating cross-references for ABI 2025-02-18 13:42:46 -07:00
hsi.rst
i2c.rst
index.rst tsm-mr: Add TVM Measurement Register support 2025-05-08 19:17:33 -07:00
infiniband.rst docs: driver-api/infiniband.rst: fix Kerneldoc markup 2025-03-04 09:47:38 -07:00
infrastructure.rst driver core: add a faux bus for use when a simple device/bus is needed 2025-02-13 16:58:51 +01:00
input.rst Add libps2 to the input section of driver-api 2024-07-03 16:20:49 -06:00
interconnect.rst
io-mapping.rst
io_ordering.rst
ioctl.rst
ipmb.rst
ipmi.rst docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
isa.rst
libata.rst Documentation: driver-api: Update libata error handler information 2025-07-16 09:31:43 +02:00
mailbox.rst
men-chameleon-bus.rst
message-based.rst
misc_devices.rst
miscellaneous.rst
mtdnand.rst
ntb.rst Documentation: NTB: Fix typo 2025-05-19 09:04:21 -06:00
nvmem.rst nvmem: Remove unused nvmem cell table support 2025-05-21 14:28:27 +02:00
parport-lowlevel.rst Documentation: parport-lowlevel: Separate function listing code blocks 2025-11-10 12:47:36 -07:00
pin-control.rst pci-v6.18-changes 2025-10-06 10:41:03 -07:00
pps.rst Documentation: driver-api: pps: Add Intel Timed I/O PPS generator 2025-02-21 10:46:49 +01:00
ptp.rst
pwm.rst docs: pwm: Adapt Locking paragraph to reality 2025-07-07 08:39:36 +02:00
pwrseq.rst Documentation: pwrseq: Fix trivial misspellings 2024-11-22 10:36:53 -07:00
regulator.rst
reset.rst
rfkill.rst
s390-drivers.rst
scsi.rst docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
slimbus.rst
sm501.rst
spi.rst docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
switchtec.rst
sync_file.rst
target.rst
tee.rst Documentation: Destage TEE subsystem documentation 2023-12-08 15:45:10 -07:00
uio-howto.rst
vfio-mediated-device.rst
vfio-pci-device-specific-driver-acceptance.rst
vfio.rst vfio: remove an extra semicolon 2024-05-10 11:15:21 -06:00
vme.rst
w1.rst
wbrf.rst Docs: typos/spelling 2024-05-02 10:02:29 -06:00
wmi.rst platform/x86: wmi: Update WMI driver API documentation 2024-10-06 12:48:52 +02:00
xillybus.rst
zorro.rst