blob: 3eb0085d5e4259fe1f04020c717c79a9cf393c63 [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
Mauro Carvalho Chehab2d934042018-05-07 06:35:39 -030025 device_connection
Daniel Vetter868c97a2016-12-09 19:53:05 +010026 dma-buf
Lukas Wunneraad800402016-12-04 13:10:04 +010027 device_link
Daniel Vetter4d69c802019-02-08 00:27:56 +010028 component
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060029 message-based
rd.dunlab@gmail.com75e70ad2019-10-09 20:52:51 -070030 infiniband
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060031 sound
32 frame-buffer
Jonathan Corbet028f2532017-01-27 16:50:34 -070033 regulator
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
Jonathan Corbet5e995782016-09-06 07:15:24 -060039 spi
40 i2c
Mauro Carvalho Chehabac499fb2019-06-29 07:36:46 -030041 ipmb
Mauro Carvalho Chehabb25fc492020-05-01 17:37:48 +020042 ipmi
Boris Brezillonbd360e82017-12-12 11:00:07 +010043 i3c/index
Mauro Carvalho Chehab9b1f44022019-06-18 17:15:10 -030044 interconnect
Leonard Crestez83ededd2019-11-19 18:38:56 +020045 devfreq
Jonathan Corbet5e995782016-09-06 07:15:24 -060046 hsi
Mauro Carvalho Chehab6634fbb2016-10-26 14:14:45 -020047 edac
Mauro Carvalho Chehab60202362017-05-12 09:59:02 -030048 scsi
Mauro Carvalho Chehab0ec88412017-05-12 08:14:47 -030049 libata
Randy Dunlap6a59fd72018-04-14 10:51:06 -070050 target
Mauro Carvalho Chehabd8451df2020-06-23 15:31:37 +020051 mailbox
Mauro Carvalho Chehab609f2122017-05-13 07:10:44 -030052 mtdnand
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060053 miscellaneous
Tomas Winkler7e527e12019-06-03 12:14:00 +030054 mei/index
Mauro Carvalho Chehab43f6c072019-06-18 16:40:16 -030055 mtd/index
Mauro Carvalho Chehab19024c02019-06-18 16:48:15 -030056 mmc/index
Mauro Carvalho Chehabae4a0502019-06-18 16:32:31 -030057 nvdimm/index
Mauro Carvalho Chehabb4c10642017-05-12 10:28:13 -030058 w1
Mauro Carvalho Chehabd2bdd482019-06-18 16:03:23 -030059 rapidio/index
Mauro Carvalho Chehabbcb1a872017-05-12 08:57:50 -030060 s390-drivers
Martyn Welch75a163c2016-10-21 22:15:27 +010061 vme
Jonathan Corbet0bb33e22016-11-18 16:04:48 -070062 80211/index
Alexander Dahlcadf81062017-01-28 10:45:32 +010063 uio-howto
Luis R. Rodriguez113ccc32016-12-16 03:10:36 -080064 firmware/index
Mauro Carvalho Chehab5a9b7382017-06-17 12:03:01 -030065 pinctl
Jonathan Neuschäfer7e633252018-03-09 00:40:18 +010066 gpio/index
Mauro Carvalho Chehabc0b11a52019-06-18 16:50:07 -030067 md/index
Mauro Carvalho Chehabd29e1ef2020-03-10 13:57:48 +010068 media/index
Mauro Carvalho Chehabc7e2c062017-03-31 18:17:00 -030069 misc_devices
Mauro Carvalho Chehabe253d2c2019-06-18 16:46:30 -030070 nfc/index
Vinod Koul8a0698c2017-11-03 10:19:37 +053071 dmaengine/index
Sagar Dharia202318d2017-12-11 23:42:55 +000072 slimbus
Sanyog Kale8ecf4262017-12-14 11:19:32 +053073 soundwire/index
Mauro Carvalho Chehabeaf7b462019-07-26 09:51:12 -030074 thermal/index
Alan Tull66c472c2018-05-16 18:50:02 -050075 fpga/index
Changbin Du680e6ff2019-04-25 23:30:54 +080076 acpi/index
Mauro Carvalho Chehab56198352019-06-18 11:44:24 -030077 backlight/lp855x-driver.rst
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030078 connector
79 console
80 dcdbas
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030081 eisa
Mauro Carvalho Chehabf6ae22d2019-07-26 09:51:19 -030082 ipmb
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030083 isa
84 isapnp
Pragat Pandyafcd68072020-03-03 10:33:00 +053085 io-mapping
Pragat Pandyad1ce35002020-03-03 10:33:01 +053086 io_ordering
William Breathitt Gray09e7d4e2019-04-02 15:30:38 +090087 generic-counter
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030088 lightnvm-pblk
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 pti_intel_mid
98 pwm
99 rfkill
Mauro Carvalho Chehab65388da2019-06-27 16:31:35 -0300100 serial/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -0300101 sm501
102 smsc_ece1099
103 switchtec
104 sync_file
105 vfio-mediated-device
106 vfio
Mauro Carvalho Chehabfb8c5322019-06-13 14:40:42 -0300107 xilinx/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -0300108 xillybus
109 zorro
Markus Heiser241a8022016-10-26 08:23:15 +0200110
111.. only:: subproject and html
112
113 Indices
114 =======
115
116 * :ref:`genindex`