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