14f46ae9fSSeongJae Park.. SPDX-License-Identifier: GPL-2.0 24f46ae9fSSeongJae Park 3941c95fdSSeongJae Park============================== 4941c95fdSSeongJae ParkDriver implementer's API guide 5941c95fdSSeongJae Park============================== 6dcec3c8cSJonathan Corbet 7dcec3c8cSJonathan CorbetThe kernel offers a wide variety of interfaces to support the development 8dcec3c8cSJonathan Corbetof device drivers. This document is an only somewhat organized collection 9dcec3c8cSJonathan Corbetof some of those interfaces — it will hopefully get better over time! The 10dcec3c8cSJonathan Corbetavailable subsections can be seen below. 11dcec3c8cSJonathan Corbet 12dcec3c8cSJonathan Corbet 130c17bb5eSJonathan CorbetGeneral information for driver authors 140c17bb5eSJonathan Corbet====================================== 150c17bb5eSJonathan Corbet 160c17bb5eSJonathan CorbetThis section contains documentation that should, at some point or other, be 170c17bb5eSJonathan Corbetof interest to most developers working on device drivers. 180c17bb5eSJonathan Corbet 190c17bb5eSJonathan Corbet.. toctree:: 200c17bb5eSJonathan Corbet :maxdepth: 1 210c17bb5eSJonathan Corbet 22dcec3c8cSJonathan Corbet basics 230c17bb5eSJonathan Corbet driver-model/index 240c17bb5eSJonathan Corbet device_link 25dcec3c8cSJonathan Corbet infrastructure 266505a18eSJonathan Corbet ioctl 272728b2d2SRafael J. Wysocki pm/index 280c17bb5eSJonathan Corbet 290c17bb5eSJonathan CorbetUseful support libraries 300c17bb5eSJonathan Corbet======================== 310c17bb5eSJonathan Corbet 320c17bb5eSJonathan CorbetThis section contains documentation that should, at some point or other, be 330c17bb5eSJonathan Corbetof interest to most developers working on device drivers. 340c17bb5eSJonathan Corbet 350c17bb5eSJonathan Corbet.. toctree:: 360c17bb5eSJonathan Corbet :maxdepth: 1 370c17bb5eSJonathan Corbet 380c17bb5eSJonathan Corbet early-userspace/index 39baa293e9SMauro Carvalho Chehab connector 400c17bb5eSJonathan Corbet device-io 410c17bb5eSJonathan Corbet devfreq 420c17bb5eSJonathan Corbet dma-buf 430c17bb5eSJonathan Corbet component 44fcd68072SPragat Pandya io-mapping 45d1ce3500SPragat Pandya io_ordering 460c17bb5eSJonathan Corbet uio-howto 47baa293e9SMauro Carvalho Chehab vfio-mediated-device 48baa293e9SMauro Carvalho Chehab vfio 49f621eb13SAlex Williamson vfio-pci-device-specific-driver-acceptance 500c17bb5eSJonathan Corbet 510c17bb5eSJonathan CorbetBus-level documentation 520c17bb5eSJonathan Corbet======================= 530c17bb5eSJonathan Corbet 540c17bb5eSJonathan Corbet.. toctree:: 550c17bb5eSJonathan Corbet :maxdepth: 1 560c17bb5eSJonathan Corbet 570c17bb5eSJonathan Corbet auxiliary_bus 580c17bb5eSJonathan Corbet cxl/index 590c17bb5eSJonathan Corbet eisa 600c17bb5eSJonathan Corbet firewire 610c17bb5eSJonathan Corbet i3c/index 620c17bb5eSJonathan Corbet isa 630c17bb5eSJonathan Corbet men-chameleon-bus 640c17bb5eSJonathan Corbet pci/index 650c17bb5eSJonathan Corbet rapidio/index 660c17bb5eSJonathan Corbet slimbus 670c17bb5eSJonathan Corbet usb/index 68d16c0cd2SRicardo Cañuelo virtio/index 690c17bb5eSJonathan Corbet vme 700c17bb5eSJonathan Corbet w1 71baa293e9SMauro Carvalho Chehab xillybus 720c17bb5eSJonathan Corbet 730c17bb5eSJonathan Corbet 740c17bb5eSJonathan CorbetSubsystem-specific APIs 750c17bb5eSJonathan Corbet======================= 760c17bb5eSJonathan Corbet 770c17bb5eSJonathan Corbet.. toctree:: 780c17bb5eSJonathan Corbet :maxdepth: 1 790c17bb5eSJonathan Corbet 800c17bb5eSJonathan Corbet 80211/index 810c17bb5eSJonathan Corbet acpi/index 820c17bb5eSJonathan Corbet backlight/lp855x-driver.rst 830c17bb5eSJonathan Corbet clk 840c17bb5eSJonathan Corbet console 858ccc257bSTom Zanussi crypto/index 860c17bb5eSJonathan Corbet dmaengine/index 870c17bb5eSJonathan Corbet dpll 880c17bb5eSJonathan Corbet edac 890c17bb5eSJonathan Corbet firmware/index 900c17bb5eSJonathan Corbet fpga/index 910c17bb5eSJonathan Corbet frame-buffer 920c17bb5eSJonathan Corbet aperture 930c17bb5eSJonathan Corbet generic-counter 940c17bb5eSJonathan Corbet gpio/index 950c17bb5eSJonathan Corbet hsi 960c17bb5eSJonathan Corbet hte/index 970c17bb5eSJonathan Corbet i2c 980c17bb5eSJonathan Corbet iio/index 990c17bb5eSJonathan Corbet infiniband 1000c17bb5eSJonathan Corbet input 1010c17bb5eSJonathan Corbet interconnect 1020c17bb5eSJonathan Corbet ipmb 1030c17bb5eSJonathan Corbet ipmi 1040c17bb5eSJonathan Corbet libata 1050c17bb5eSJonathan Corbet mailbox 1060c17bb5eSJonathan Corbet md/index 1070c17bb5eSJonathan Corbet media/index 1080c17bb5eSJonathan Corbet mei/index 1090c17bb5eSJonathan Corbet memory-devices/index 1100c17bb5eSJonathan Corbet message-based 1110c17bb5eSJonathan Corbet misc_devices 1120c17bb5eSJonathan Corbet miscellaneous 1130c17bb5eSJonathan Corbet mmc/index 1140c17bb5eSJonathan Corbet mtd/index 1150c17bb5eSJonathan Corbet mtdnand 1160c17bb5eSJonathan Corbet nfc/index 1170c17bb5eSJonathan Corbet ntb 1180c17bb5eSJonathan Corbet nvdimm/index 1190c17bb5eSJonathan Corbet nvmem 1200c17bb5eSJonathan Corbet parport-lowlevel 1210c17bb5eSJonathan Corbet phy/index 1220c17bb5eSJonathan Corbet pin-control 1230c17bb5eSJonathan Corbet pldmfw/index 1240c17bb5eSJonathan Corbet pps 1250c17bb5eSJonathan Corbet ptp 1260c17bb5eSJonathan Corbet pwm 127*8b7e0a6cSBartosz Golaszewski pwrseq 1280c17bb5eSJonathan Corbet regulator 1290c17bb5eSJonathan Corbet reset 1300c17bb5eSJonathan Corbet rfkill 1310c17bb5eSJonathan Corbet s390-drivers 1320c17bb5eSJonathan Corbet scsi 1330c17bb5eSJonathan Corbet serial/index 1340c17bb5eSJonathan Corbet sm501 1350c17bb5eSJonathan Corbet soundwire/index 1360c17bb5eSJonathan Corbet spi 1370c17bb5eSJonathan Corbet surface_aggregator/index 1380c17bb5eSJonathan Corbet switchtec 1390c17bb5eSJonathan Corbet sync_file 1400c17bb5eSJonathan Corbet target 14150709576SSumit Garg tee 1420c17bb5eSJonathan Corbet thermal/index 1430c17bb5eSJonathan Corbet tty/index 1440c17bb5eSJonathan Corbet wbrf 1450c17bb5eSJonathan Corbet wmi 1460c17bb5eSJonathan Corbet xilinx/index 1470c17bb5eSJonathan Corbet zorro 148241a8021SMarkus Heiser 149241a8021SMarkus Heiser.. only:: subproject and html 150241a8021SMarkus Heiser 151241a8021SMarkus Heiser Indices 152241a8021SMarkus Heiser ======= 153241a8021SMarkus Heiser 154241a8021SMarkus Heiser * :ref:`genindex` 155