blob: d3a58f77328ebe8640638485415a21740e90da08 [file] [log] [blame]
Jonathan Corbetdcec3c82016-08-20 13:17:32 -06001========================================
2The Linux driver implementer's API guide
3========================================
4
5The kernel offers a wide variety of interfaces to support the development
6of device drivers. This document is an only somewhat organized collection
7of some of those interfaces — it will hopefully get better over time! The
8available subsections can be seen below.
9
10.. class:: toc-title
11
12 Table of contents
13
14.. toctree::
15 :maxdepth: 2
16
Mauro Carvalho Chehabfe34c892019-06-18 12:34:59 -030017 driver-model/index
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060018 basics
19 infrastructure
Jonathan Corbet6505a182020-03-02 15:26:38 -070020 ioctl
Mauro Carvalho Chehabec4b78a2019-06-18 15:00:25 -030021 early-userspace/index
Rafael J. Wysocki2728b2d2017-02-02 01:32:13 +010022 pm/index
Mauro Carvalho Chehab18bcaa42018-05-07 06:35:44 -030023 clk
Jonathan Corbet8a8a6022017-01-27 15:43:01 -070024 device-io
Daniel Vetter868c97a2016-12-09 19:53:05 +010025 dma-buf
Lukas Wunneraad800402016-12-04 13:10:04 +010026 device_link
Daniel Vetter4d69c802019-02-08 00:27:56 +010027 component
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060028 message-based
rd.dunlab@gmail.com75e70ad2019-10-09 20:52:51 -070029 infiniband
Thomas Zimmermann7283f862022-06-22 16:01:33 +020030 aperture
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060031 frame-buffer
Jonathan Corbet028f2532017-01-27 16:50:34 -070032 regulator
Philipp Zabel907d1f12020-12-01 12:57:54 +010033 reset
Jonathan Cameron49b2fd62017-01-01 12:32:45 +000034 iio/index
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060035 input
Mauro Carvalho Chehab4ad4b212017-04-05 10:22:57 -030036 usb/index
Randy Dunlapea2ae0e2018-09-04 17:02:24 -070037 firewire
Logan Gunthorpefcc78f92018-10-04 15:27:39 -060038 pci/index
Dan Williams4cdadfd2021-02-16 20:09:50 -080039 cxl/index
Jonathan Corbet5e995782016-09-06 07:15:24 -060040 spi
41 i2c
Mauro Carvalho Chehabac499fb2019-06-29 07:36:46 -030042 ipmb
Mauro Carvalho Chehabb25fc492020-05-01 17:37:48 +020043 ipmi
Boris Brezillonbd360e82017-12-12 11:00:07 +010044 i3c/index
Mauro Carvalho Chehab9b1f44022019-06-18 17:15:10 -030045 interconnect
Leonard Crestez83ededd2019-11-19 18:38:56 +020046 devfreq
Jonathan Corbet5e995782016-09-06 07:15:24 -060047 hsi
Mauro Carvalho Chehab6634fbb2016-10-26 14:14:45 -020048 edac
Mauro Carvalho Chehab60202362017-05-12 09:59:02 -030049 scsi
Mauro Carvalho Chehab0ec88412017-05-12 08:14:47 -030050 libata
Randy Dunlap6a59fd72018-04-14 10:51:06 -070051 target
Mauro Carvalho Chehabd8451df2020-06-23 15:31:37 +020052 mailbox
Mauro Carvalho Chehab609f2122017-05-13 07:10:44 -030053 mtdnand
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060054 miscellaneous
Tomas Winkler7e527e12019-06-03 12:14:00 +030055 mei/index
Mauro Carvalho Chehab43f6c072019-06-18 16:40:16 -030056 mtd/index
Mauro Carvalho Chehab19024c02019-06-18 16:48:15 -030057 mmc/index
Mauro Carvalho Chehabae4a0502019-06-18 16:32:31 -030058 nvdimm/index
Mauro Carvalho Chehabb4c10642017-05-12 10:28:13 -030059 w1
Mauro Carvalho Chehabd2bdd482019-06-18 16:03:23 -030060 rapidio/index
Mauro Carvalho Chehabbcb1a872017-05-12 08:57:50 -030061 s390-drivers
Martyn Welch75a163c2016-10-21 22:15:27 +010062 vme
Jonathan Corbet0bb33e22016-11-18 16:04:48 -070063 80211/index
Alexander Dahlcadf81062017-01-28 10:45:32 +010064 uio-howto
Luis R. Rodriguez113ccc32016-12-16 03:10:36 -080065 firmware/index
Drew Fustini5513b412021-03-01 21:30:58 -080066 pin-control
Jonathan Neuschäfer7e633252018-03-09 00:40:18 +010067 gpio/index
Mauro Carvalho Chehabc0b11a52019-06-18 16:50:07 -030068 md/index
Mauro Carvalho Chehabd29e1ef2020-03-10 13:57:48 +010069 media/index
Mauro Carvalho Chehabc7e2c062017-03-31 18:17:00 -030070 misc_devices
Mauro Carvalho Chehabe253d2c552019-06-18 16:46:30 -030071 nfc/index
Vinod Koul8a0698c2017-11-03 10:19:37 +053072 dmaengine/index
Sagar Dharia202318d2017-12-11 23:42:55 +000073 slimbus
Sanyog Kale8ecf4262017-12-14 11:19:32 +053074 soundwire/index
Mauro Carvalho Chehabeaf7b462019-07-26 09:51:12 -030075 thermal/index
Alan Tull66c472c2018-05-16 18:50:02 -050076 fpga/index
Changbin Du680e6ff2019-04-25 23:30:54 +080077 acpi/index
Dave Ertman7de36972020-12-02 16:54:24 -080078 auxiliary_bus
Mauro Carvalho Chehab56198352019-06-18 11:44:24 -030079 backlight/lp855x-driver.rst
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030080 connector
81 console
82 dcdbas
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030083 eisa
84 isa
85 isapnp
Pragat Pandyafcd68072020-03-03 10:33:00 +053086 io-mapping
Pragat Pandyad1ce35002020-03-03 10:33:01 +053087 io_ordering
William Breathitt Gray09e7d4e2019-04-02 15:30:38 +090088 generic-counter
Mauro Carvalho Chehab652a49b2019-06-18 15:03:13 -030089 memory-devices/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030090 men-chameleon-bus
91 ntb
92 nvmem
93 parport-lowlevel
Mauro Carvalho Chehabc92992f2019-04-22 16:49:11 -030094 pps
95 ptp
Mauro Carvalho Chehab4745dc8a2019-06-27 16:36:04 -030096 phy/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030097 pwm
Jacob Kellerb8265622020-07-23 17:21:59 -070098 pldmfw/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030099 rfkill
Mauro Carvalho Chehab65388da2019-06-27 16:31:35 -0300100 serial/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -0300101 sm501
Maximilian Luz8d779282020-12-21 19:39:57 +0100102 surface_aggregator/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -0300103 switchtec
104 sync_file
Jiri Slaby2a72b1b2022-04-19 09:43:02 +0200105 tty/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -0300106 vfio-mediated-device
107 vfio
Alex Williamsonf621eb12022-03-15 11:29:57 -0600108 vfio-pci-device-specific-driver-acceptance
Mauro Carvalho Chehabfb8c5322019-06-13 14:40:42 -0300109 xilinx/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -0300110 xillybus
111 zorro
Jonathan Corbet9c73e1e2022-06-06 08:40:55 -0600112 hte/index
Markus Heiser241a8022016-10-26 08:23:15 +0200113
114.. only:: subproject and html
115
116 Indices
117 =======
118
119 * :ref:`genindex`