1.. SPDX-License-Identifier: GPL-2.0
2
3==============================
4Driver implementer's API guide
5==============================
6
7The kernel offers a wide variety of interfaces to support the development
8of device drivers.  This document is an only somewhat organized collection
9of some of those interfaces — it will hopefully get better over time!  The
10available subsections can be seen below.
11
12
13General information for driver authors
14======================================
15
16This section contains documentation that should, at some point or other, be
17of interest to most developers working on device drivers.
18
19.. toctree::
20   :maxdepth: 1
21
22   basics
23   driver-model/index
24   device_link
25   infrastructure
26   ioctl
27   pm/index
28
29Useful support libraries
30========================
31
32This section contains documentation that should, at some point or other, be
33of interest to most developers working on device drivers.
34
35.. toctree::
36   :maxdepth: 1
37
38   early-userspace/index
39   connector
40   device-io
41   devfreq
42   dma-buf
43   component
44   io-mapping
45   io_ordering
46   uio-howto
47   vfio-mediated-device
48   vfio
49   vfio-pci-device-specific-driver-acceptance
50
51Bus-level documentation
52=======================
53
54.. toctree::
55   :maxdepth: 1
56
57   auxiliary_bus
58   cxl/index
59   eisa
60   firewire
61   i3c/index
62   isa
63   men-chameleon-bus
64   pci/index
65   rapidio/index
66   slimbus
67   usb/index
68   virtio/index
69   vme
70   w1
71   xillybus
72
73
74Subsystem-specific APIs
75=======================
76
77.. toctree::
78   :maxdepth: 1
79
80   80211/index
81   acpi/index
82   backlight/lp855x-driver.rst
83   clk
84   coco/index
85   console
86   crypto/index
87   dmaengine/index
88   dpll
89   edac
90   extcon
91   firmware/index
92   fpga/index
93   frame-buffer
94   aperture
95   generic-counter
96   gpio/index
97   hsi
98   hte/index
99   i2c
100   iio/index
101   infiniband
102   input
103   interconnect
104   ipmb
105   ipmi
106   libata
107   mailbox
108   md/index
109   media/index
110   mei/index
111   memory-devices/index
112   message-based
113   misc_devices
114   miscellaneous
115   mmc/index
116   mtd/index
117   mtdnand
118   nfc/index
119   ntb
120   nvdimm/index
121   nvmem
122   parport-lowlevel
123   phy/index
124   pin-control
125   pldmfw/index
126   pps
127   ptp
128   pwm
129   pwrseq
130   regulator
131   reset
132   rfkill
133   s390-drivers
134   scsi
135   serial/index
136   sm501
137   soundwire/index
138   spi
139   surface_aggregator/index
140   switchtec
141   sync_file
142   target
143   tee
144   thermal/index
145   tty/index
146   wbrf
147   wmi
148   xilinx/index
149   zorro
150
151.. only::  subproject and html
152
153   Indices
154   =======
155
156   * :ref:`genindex`
157