Documentation / driver-api


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
.. SPDX-License-Identifier: GPL-2.0

==============================
Driver implementer's API guide
==============================

The kernel offers a wide variety of interfaces to support the development
of device drivers.  This document is an only somewhat organized collection
of some of those interfaces — it will hopefully get better over time!  The
available subsections can be seen below.


General information for driver authors
======================================

This section contains documentation that should, at some point or other, be
of interest to most developers working on device drivers.

.. toctree::
   :maxdepth: 1

   basics
   driver-model/index
   device_link
   infrastructure
   ioctl
   pm/index

Useful support libraries
========================

This section contains documentation that should, at some point or other, be
of interest to most developers working on device drivers.

.. toctree::
   :maxdepth: 1

   early-userspace/index
   connector
   device-io
   devfreq
   dma-buf
   component
   io-mapping
   io_ordering
   uio-howto
   vfio-mediated-device
   vfio
   vfio-pci-device-specific-driver-acceptance

Bus-level documentation
=======================

.. toctree::
   :maxdepth: 1

   auxiliary_bus
   cxl/index
   eisa
   firewire
   i3c/index
   isa
   men-chameleon-bus
   pci/index
   rapidio/index
   slimbus
   usb/index
   virtio/index
   vme
   w1
   xillybus


Subsystem-specific APIs
=======================

.. toctree::
   :maxdepth: 1

   80211/index
   acpi/index
   backlight/lp855x-driver.rst
   clk
   console
   crypto/index
   dmaengine/index
   dpll
   edac
   firmware/index
   fpga/index
   frame-buffer
   aperture
   generic-counter
   gpio/index
   hsi
   hte/index
   i2c
   iio/index
   infiniband
   input
   interconnect
   ipmb
   ipmi
   libata
   mailbox
   md/index
   media/index
   mei/index
   memory-devices/index
   message-based
   misc_devices
   miscellaneous
   mmc/index
   mtd/index
   mtdnand
   nfc/index
   ntb
   nvdimm/index
   nvmem
   parport-lowlevel
   phy/index
   pin-control
   pldmfw/index
   pps
   ptp
   pwm
   regulator
   reset
   rfkill
   s390-drivers
   scsi
   serial/index
   sm501
   soundwire/index
   spi
   surface_aggregator/index
   switchtec
   sync_file
   target
   tee
   thermal/index
   tty/index
   wbrf
   wmi
   xilinx/index
   zorro

.. only::  subproject and html

   Indices
   =======

   * :ref:`genindex`