blob: f357f3eb400c8174d16dd0308f568df0b941405b [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
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060030 frame-buffer
Jonathan Corbet028f2532017-01-27 16:50:34 -070031 regulator
Jonathan Cameron49b2fd62017-01-01 12:32:45 +000032 iio/index
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060033 input
Mauro Carvalho Chehab4ad4b212017-04-05 10:22:57 -030034 usb/index
Randy Dunlapea2ae0e2018-09-04 17:02:24 -070035 firewire
Logan Gunthorpefcc78f92018-10-04 15:27:39 -060036 pci/index
Jonathan Corbet5e995782016-09-06 07:15:24 -060037 spi
38 i2c
Mauro Carvalho Chehabac499fb2019-06-29 07:36:46 -030039 ipmb
Mauro Carvalho Chehabb25fc492020-05-01 17:37:48 +020040 ipmi
Boris Brezillonbd360e82017-12-12 11:00:07 +010041 i3c/index
Mauro Carvalho Chehab9b1f44022019-06-18 17:15:10 -030042 interconnect
Leonard Crestez83ededd2019-11-19 18:38:56 +020043 devfreq
Jonathan Corbet5e995782016-09-06 07:15:24 -060044 hsi
Mauro Carvalho Chehab6634fbb2016-10-26 14:14:45 -020045 edac
Mauro Carvalho Chehab60202362017-05-12 09:59:02 -030046 scsi
Mauro Carvalho Chehab0ec88412017-05-12 08:14:47 -030047 libata
Randy Dunlap6a59fd72018-04-14 10:51:06 -070048 target
Mauro Carvalho Chehabd8451df2020-06-23 15:31:37 +020049 mailbox
Mauro Carvalho Chehab609f2122017-05-13 07:10:44 -030050 mtdnand
Jonathan Corbetdcec3c82016-08-20 13:17:32 -060051 miscellaneous
Tomas Winkler7e527e12019-06-03 12:14:00 +030052 mei/index
Mauro Carvalho Chehab43f6c072019-06-18 16:40:16 -030053 mtd/index
Mauro Carvalho Chehab19024c02019-06-18 16:48:15 -030054 mmc/index
Mauro Carvalho Chehabae4a0502019-06-18 16:32:31 -030055 nvdimm/index
Mauro Carvalho Chehabb4c10642017-05-12 10:28:13 -030056 w1
Mauro Carvalho Chehabd2bdd482019-06-18 16:03:23 -030057 rapidio/index
Mauro Carvalho Chehabbcb1a872017-05-12 08:57:50 -030058 s390-drivers
Martyn Welch75a163c2016-10-21 22:15:27 +010059 vme
Jonathan Corbet0bb33e22016-11-18 16:04:48 -070060 80211/index
Alexander Dahlcadf81062017-01-28 10:45:32 +010061 uio-howto
Luis R. Rodriguez113ccc32016-12-16 03:10:36 -080062 firmware/index
Mauro Carvalho Chehab5a9b7382017-06-17 12:03:01 -030063 pinctl
Jonathan Neuschäfer7e633252018-03-09 00:40:18 +010064 gpio/index
Mauro Carvalho Chehabc0b11a52019-06-18 16:50:07 -030065 md/index
Mauro Carvalho Chehabd29e1ef2020-03-10 13:57:48 +010066 media/index
Mauro Carvalho Chehabc7e2c062017-03-31 18:17:00 -030067 misc_devices
Mauro Carvalho Chehabe253d2c2019-06-18 16:46:30 -030068 nfc/index
Vinod Koul8a0698c2017-11-03 10:19:37 +053069 dmaengine/index
Sagar Dharia202318d2017-12-11 23:42:55 +000070 slimbus
Sanyog Kale8ecf4262017-12-14 11:19:32 +053071 soundwire/index
Mauro Carvalho Chehabeaf7b462019-07-26 09:51:12 -030072 thermal/index
Alan Tull66c472c2018-05-16 18:50:02 -050073 fpga/index
Changbin Du680e6ff2019-04-25 23:30:54 +080074 acpi/index
Mauro Carvalho Chehab56198352019-06-18 11:44:24 -030075 backlight/lp855x-driver.rst
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030076 connector
77 console
78 dcdbas
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030079 eisa
80 isa
81 isapnp
Pragat Pandyafcd68072020-03-03 10:33:00 +053082 io-mapping
Pragat Pandyad1ce35002020-03-03 10:33:01 +053083 io_ordering
William Breathitt Gray09e7d4e2019-04-02 15:30:38 +090084 generic-counter
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030085 lightnvm-pblk
Mauro Carvalho Chehab652a49b2019-06-18 15:03:13 -030086 memory-devices/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030087 men-chameleon-bus
88 ntb
89 nvmem
90 parport-lowlevel
Mauro Carvalho Chehabc92992f2019-04-22 16:49:11 -030091 pps
92 ptp
Mauro Carvalho Chehab4745dc8a2019-06-27 16:36:04 -030093 phy/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030094 pti_intel_mid
95 pwm
Jacob Kellerb8265622020-07-23 17:21:59 -070096 pldmfw/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030097 rfkill
Mauro Carvalho Chehab65388da2019-06-27 16:31:35 -030098 serial/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -030099 sm501
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -0300100 switchtec
101 sync_file
102 vfio-mediated-device
103 vfio
Mauro Carvalho Chehabfb8c5322019-06-13 14:40:42 -0300104 xilinx/index
Mauro Carvalho Chehabbaa293e2019-06-27 15:39:22 -0300105 xillybus
106 zorro
Markus Heiser241a8022016-10-26 08:23:15 +0200107
108.. only:: subproject and html
109
110 Indices
111 =======
112
113 * :ref:`genindex`