Jonathan Corbet | dcec3c8 | 2016-08-20 13:17:32 -0600 | [diff] [blame] | 1 | ======================================== |
2 | The Linux driver implementer's API guide | ||||
3 | ======================================== | ||||
4 | |||||
5 | The kernel offers a wide variety of interfaces to support the development | ||||
6 | of device drivers. This document is an only somewhat organized collection | ||||
7 | of some of those interfaces — it will hopefully get better over time! The | ||||
8 | available subsections can be seen below. | ||||
9 | |||||
10 | .. class:: toc-title | ||||
11 | |||||
12 | Table of contents | ||||
13 | |||||
14 | .. toctree:: | ||||
15 | :maxdepth: 2 | ||||
16 | |||||
Mauro Carvalho Chehab | fe34c89 | 2019-06-18 12:34:59 -0300 | [diff] [blame] | 17 | driver-model/index |
Jonathan Corbet | dcec3c8 | 2016-08-20 13:17:32 -0600 | [diff] [blame] | 18 | basics |
19 | infrastructure | ||||
Jonathan Corbet | 6505a18 | 2020-03-02 15:26:38 -0700 | [diff] [blame] | 20 | ioctl |
Mauro Carvalho Chehab | ec4b78a | 2019-06-18 15:00:25 -0300 | [diff] [blame] | 21 | early-userspace/index |
Rafael J. Wysocki | 2728b2d | 2017-02-02 01:32:13 +0100 | [diff] [blame] | 22 | pm/index |
Mauro Carvalho Chehab | 18bcaa4 | 2018-05-07 06:35:44 -0300 | [diff] [blame] | 23 | clk |
Jonathan Corbet | 8a8a602 | 2017-01-27 15:43:01 -0700 | [diff] [blame] | 24 | device-io |
Mauro Carvalho Chehab | 2d93404 | 2018-05-07 06:35:39 -0300 | [diff] [blame] | 25 | device_connection |
Daniel Vetter | 868c97a | 2016-12-09 19:53:05 +0100 | [diff] [blame] | 26 | dma-buf |
Lukas Wunner | aad80040 | 2016-12-04 13:10:04 +0100 | [diff] [blame] | 27 | device_link |
Daniel Vetter | 4d69c80 | 2019-02-08 00:27:56 +0100 | [diff] [blame] | 28 | component |
Jonathan Corbet | dcec3c8 | 2016-08-20 13:17:32 -0600 | [diff] [blame] | 29 | message-based |
rd.dunlab@gmail.com | 75e70ad | 2019-10-09 20:52:51 -0700 | [diff] [blame] | 30 | infiniband |
Jonathan Corbet | dcec3c8 | 2016-08-20 13:17:32 -0600 | [diff] [blame] | 31 | sound |
32 | frame-buffer | ||||
Jonathan Corbet | 028f253 | 2017-01-27 16:50:34 -0700 | [diff] [blame] | 33 | regulator |
Jonathan Cameron | 49b2fd6 | 2017-01-01 12:32:45 +0000 | [diff] [blame] | 34 | iio/index |
Jonathan Corbet | dcec3c8 | 2016-08-20 13:17:32 -0600 | [diff] [blame] | 35 | input |
Mauro Carvalho Chehab | 4ad4b21 | 2017-04-05 10:22:57 -0300 | [diff] [blame] | 36 | usb/index |
Randy Dunlap | ea2ae0e | 2018-09-04 17:02:24 -0700 | [diff] [blame] | 37 | firewire |
Logan Gunthorpe | fcc78f9 | 2018-10-04 15:27:39 -0600 | [diff] [blame] | 38 | pci/index |
Jonathan Corbet | 5e99578 | 2016-09-06 07:15:24 -0600 | [diff] [blame] | 39 | spi |
40 | i2c | ||||
Mauro Carvalho Chehab | ac499fb | 2019-06-29 07:36:46 -0300 | [diff] [blame] | 41 | ipmb |
Mauro Carvalho Chehab | b25fc49 | 2020-05-01 17:37:48 +0200 | [diff] [blame] | 42 | ipmi |
Boris Brezillon | bd360e8 | 2017-12-12 11:00:07 +0100 | [diff] [blame] | 43 | i3c/index |
Mauro Carvalho Chehab | 9b1f4402 | 2019-06-18 17:15:10 -0300 | [diff] [blame] | 44 | interconnect |
Leonard Crestez | 83ededd | 2019-11-19 18:38:56 +0200 | [diff] [blame] | 45 | devfreq |
Jonathan Corbet | 5e99578 | 2016-09-06 07:15:24 -0600 | [diff] [blame] | 46 | hsi |
Mauro Carvalho Chehab | 6634fbb | 2016-10-26 14:14:45 -0200 | [diff] [blame] | 47 | edac |
Mauro Carvalho Chehab | 6020236 | 2017-05-12 09:59:02 -0300 | [diff] [blame] | 48 | scsi |
Mauro Carvalho Chehab | 0ec8841 | 2017-05-12 08:14:47 -0300 | [diff] [blame] | 49 | libata |
Randy Dunlap | 6a59fd7 | 2018-04-14 10:51:06 -0700 | [diff] [blame] | 50 | target |
Mauro Carvalho Chehab | d8451df | 2020-06-23 15:31:37 +0200 | [diff] [blame] | 51 | mailbox |
Mauro Carvalho Chehab | 609f212 | 2017-05-13 07:10:44 -0300 | [diff] [blame] | 52 | mtdnand |
Jonathan Corbet | dcec3c8 | 2016-08-20 13:17:32 -0600 | [diff] [blame] | 53 | miscellaneous |
Tomas Winkler | 7e527e1 | 2019-06-03 12:14:00 +0300 | [diff] [blame] | 54 | mei/index |
Mauro Carvalho Chehab | 43f6c07 | 2019-06-18 16:40:16 -0300 | [diff] [blame] | 55 | mtd/index |
Mauro Carvalho Chehab | 19024c0 | 2019-06-18 16:48:15 -0300 | [diff] [blame] | 56 | mmc/index |
Mauro Carvalho Chehab | ae4a050 | 2019-06-18 16:32:31 -0300 | [diff] [blame] | 57 | nvdimm/index |
Mauro Carvalho Chehab | b4c1064 | 2017-05-12 10:28:13 -0300 | [diff] [blame] | 58 | w1 |
Mauro Carvalho Chehab | d2bdd48 | 2019-06-18 16:03:23 -0300 | [diff] [blame] | 59 | rapidio/index |
Mauro Carvalho Chehab | bcb1a87 | 2017-05-12 08:57:50 -0300 | [diff] [blame] | 60 | s390-drivers |
Martyn Welch | 75a163c | 2016-10-21 22:15:27 +0100 | [diff] [blame] | 61 | vme |
Jonathan Corbet | 0bb33e2 | 2016-11-18 16:04:48 -0700 | [diff] [blame] | 62 | 80211/index |
Alexander Dahl | cadf8106 | 2017-01-28 10:45:32 +0100 | [diff] [blame] | 63 | uio-howto |
Luis R. Rodriguez | 113ccc3 | 2016-12-16 03:10:36 -0800 | [diff] [blame] | 64 | firmware/index |
Mauro Carvalho Chehab | 5a9b738 | 2017-06-17 12:03:01 -0300 | [diff] [blame] | 65 | pinctl |
Jonathan Neuschäfer | 7e63325 | 2018-03-09 00:40:18 +0100 | [diff] [blame] | 66 | gpio/index |
Mauro Carvalho Chehab | c0b11a5 | 2019-06-18 16:50:07 -0300 | [diff] [blame] | 67 | md/index |
Mauro Carvalho Chehab | d29e1ef | 2020-03-10 13:57:48 +0100 | [diff] [blame] | 68 | media/index |
Mauro Carvalho Chehab | c7e2c06 | 2017-03-31 18:17:00 -0300 | [diff] [blame] | 69 | misc_devices |
Mauro Carvalho Chehab | e253d2c | 2019-06-18 16:46:30 -0300 | [diff] [blame] | 70 | nfc/index |
Vinod Koul | 8a0698c | 2017-11-03 10:19:37 +0530 | [diff] [blame] | 71 | dmaengine/index |
Sagar Dharia | 202318d | 2017-12-11 23:42:55 +0000 | [diff] [blame] | 72 | slimbus |
Sanyog Kale | 8ecf426 | 2017-12-14 11:19:32 +0530 | [diff] [blame] | 73 | soundwire/index |
Mauro Carvalho Chehab | eaf7b46 | 2019-07-26 09:51:12 -0300 | [diff] [blame] | 74 | thermal/index |
Alan Tull | 66c472c | 2018-05-16 18:50:02 -0500 | [diff] [blame] | 75 | fpga/index |
Changbin Du | 680e6ff | 2019-04-25 23:30:54 +0800 | [diff] [blame] | 76 | acpi/index |
Mauro Carvalho Chehab | 5619835 | 2019-06-18 11:44:24 -0300 | [diff] [blame] | 77 | backlight/lp855x-driver.rst |
Mauro Carvalho Chehab | baa293e | 2019-06-27 15:39:22 -0300 | [diff] [blame] | 78 | connector |
79 | console | ||||
80 | dcdbas | ||||
Mauro Carvalho Chehab | baa293e | 2019-06-27 15:39:22 -0300 | [diff] [blame] | 81 | eisa |
Mauro Carvalho Chehab | f6ae22d | 2019-07-26 09:51:19 -0300 | [diff] [blame] | 82 | ipmb |
Mauro Carvalho Chehab | baa293e | 2019-06-27 15:39:22 -0300 | [diff] [blame] | 83 | isa |
84 | isapnp | ||||
Pragat Pandya | fcd6807 | 2020-03-03 10:33:00 +0530 | [diff] [blame] | 85 | io-mapping |
Pragat Pandya | d1ce3500 | 2020-03-03 10:33:01 +0530 | [diff] [blame] | 86 | io_ordering |
William Breathitt Gray | 09e7d4e | 2019-04-02 15:30:38 +0900 | [diff] [blame] | 87 | generic-counter |
Mauro Carvalho Chehab | baa293e | 2019-06-27 15:39:22 -0300 | [diff] [blame] | 88 | lightnvm-pblk |
Mauro Carvalho Chehab | 652a49b | 2019-06-18 15:03:13 -0300 | [diff] [blame] | 89 | memory-devices/index |
Mauro Carvalho Chehab | baa293e | 2019-06-27 15:39:22 -0300 | [diff] [blame] | 90 | men-chameleon-bus |
91 | ntb | ||||
92 | nvmem | ||||
93 | parport-lowlevel | ||||
Mauro Carvalho Chehab | c92992f | 2019-04-22 16:49:11 -0300 | [diff] [blame] | 94 | pps |
95 | ptp | ||||
Mauro Carvalho Chehab | 4745dc8a | 2019-06-27 16:36:04 -0300 | [diff] [blame] | 96 | phy/index |
Mauro Carvalho Chehab | baa293e | 2019-06-27 15:39:22 -0300 | [diff] [blame] | 97 | pti_intel_mid |
98 | pwm | ||||
99 | rfkill | ||||
Mauro Carvalho Chehab | 65388da | 2019-06-27 16:31:35 -0300 | [diff] [blame] | 100 | serial/index |
Mauro Carvalho Chehab | baa293e | 2019-06-27 15:39:22 -0300 | [diff] [blame] | 101 | sm501 |
102 | smsc_ece1099 | ||||
103 | switchtec | ||||
104 | sync_file | ||||
105 | vfio-mediated-device | ||||
106 | vfio | ||||
Mauro Carvalho Chehab | fb8c532 | 2019-06-13 14:40:42 -0300 | [diff] [blame] | 107 | xilinx/index |
Mauro Carvalho Chehab | baa293e | 2019-06-27 15:39:22 -0300 | [diff] [blame] | 108 | xillybus |
109 | zorro | ||||
Markus Heiser | 241a802 | 2016-10-26 08:23:15 +0200 | [diff] [blame] | 110 | |
111 | .. only:: subproject and html | ||||
112 | |||||
113 | Indices | ||||
114 | ======= | ||||
115 | |||||
116 | * :ref:`genindex` |