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.. class:: toc-title 13dcec3c8cSJonathan Corbet 14dcec3c8cSJonathan Corbet Table of contents 15dcec3c8cSJonathan Corbet 16dcec3c8cSJonathan Corbet.. toctree:: 17dcec3c8cSJonathan Corbet :maxdepth: 2 18dcec3c8cSJonathan Corbet 19fe34c89dSMauro Carvalho Chehab driver-model/index 20dcec3c8cSJonathan Corbet basics 21dcec3c8cSJonathan Corbet infrastructure 226505a18eSJonathan Corbet ioctl 23ec4b78a0SMauro Carvalho Chehab early-userspace/index 242728b2d2SRafael J. Wysocki pm/index 2518bcaa4eSMauro Carvalho Chehab clk 268a8a602fSJonathan Corbet device-io 27868c97a8SDaniel Vetter dma-buf 28aad80040SLukas Wunner device_link 294d69c80eSDaniel Vetter component 30dcec3c8cSJonathan Corbet message-based 3175e70addSrd.dunlab@gmail.com infiniband 327283f862SThomas Zimmermann aperture 33dcec3c8cSJonathan Corbet frame-buffer 34028f2533SJonathan Corbet regulator 35907d1f14SPhilipp Zabel reset 3649b2fd6eSJonathan Cameron iio/index 37dcec3c8cSJonathan Corbet input 384ad4b21bSMauro Carvalho Chehab usb/index 39ea2ae0ecSRandy Dunlap firewire 40fcc78f9cSLogan Gunthorpe pci/index 414cdadfd5SDan Williams cxl/index 425e995786SJonathan Corbet spi 435e995786SJonathan Corbet i2c 44ac499fbaSMauro Carvalho Chehab ipmb 45b25fc491SMauro Carvalho Chehab ipmi 46bd360e81SBoris Brezillon i3c/index 479b1f4402SMauro Carvalho Chehab interconnect 4883ededdbSLeonard Crestez devfreq 495e995786SJonathan Corbet hsi 506634fbb6SMauro Carvalho Chehab edac 5160202365SMauro Carvalho Chehab scsi 520ec88413SMauro Carvalho Chehab libata 536a59fd77SRandy Dunlap target 54d8451dfcSMauro Carvalho Chehab mailbox 55609f212fSMauro Carvalho Chehab mtdnand 56dcec3c8cSJonathan Corbet miscellaneous 577e527e11STomas Winkler mei/index 5843f6c078SMauro Carvalho Chehab mtd/index 5919024c09SMauro Carvalho Chehab mmc/index 60ae4a0502SMauro Carvalho Chehab nvdimm/index 61b4c1064aSMauro Carvalho Chehab w1 62d2bdd48aSMauro Carvalho Chehab rapidio/index 63bcb1a87aSMauro Carvalho Chehab s390-drivers 6475a163c4SMartyn Welch vme 650bb33e25SJonathan Corbet 80211/index 66cadf8106SAlexander Dahl uio-howto 67113ccc38SLuis R. Rodriguez firmware/index 685513b411SDrew Fustini pin-control 697e633259SJonathan Neuschäfer gpio/index 70c0b11a50SMauro Carvalho Chehab md/index 71d29e1ef4SMauro Carvalho Chehab media/index 72c7e2c064SMauro Carvalho Chehab misc_devices 73e253d2c5SMauro Carvalho Chehab nfc/index 748a0698c1SVinod Koul dmaengine/index 75202318d3SSagar Dharia slimbus 768ecf4264SSanyog Kale soundwire/index 77eaf7b460SMauro Carvalho Chehab thermal/index 7866c472cdSAlan Tull fpga/index 79680e6ffaSChangbin Du acpi/index 807de3697eSDave Ertman auxiliary_bus 8156198359SMauro Carvalho Chehab backlight/lp855x-driver.rst 82baa293e9SMauro Carvalho Chehab connector 83baa293e9SMauro Carvalho Chehab console 84baa293e9SMauro Carvalho Chehab dcdbas 85baa293e9SMauro Carvalho Chehab eisa 86baa293e9SMauro Carvalho Chehab isa 87baa293e9SMauro Carvalho Chehab isapnp 88fcd68072SPragat Pandya io-mapping 89d1ce3500SPragat Pandya io_ordering 9009e7d4edSWilliam Breathitt Gray generic-counter 91652a49bcSMauro Carvalho Chehab memory-devices/index 92baa293e9SMauro Carvalho Chehab men-chameleon-bus 93baa293e9SMauro Carvalho Chehab ntb 94baa293e9SMauro Carvalho Chehab nvmem 95baa293e9SMauro Carvalho Chehab parport-lowlevel 96c92992fcSMauro Carvalho Chehab pps 97c92992fcSMauro Carvalho Chehab ptp 984745dc8aSMauro Carvalho Chehab phy/index 99baa293e9SMauro Carvalho Chehab pwm 100b8265621SJacob Keller pldmfw/index 101baa293e9SMauro Carvalho Chehab rfkill 10265388dadSMauro Carvalho Chehab serial/index 103baa293e9SMauro Carvalho Chehab sm501 1048d779282SMaximilian Luz surface_aggregator/index 105baa293e9SMauro Carvalho Chehab switchtec 106baa293e9SMauro Carvalho Chehab sync_file 1072a72b1b2SJiri Slaby tty/index 108baa293e9SMauro Carvalho Chehab vfio-mediated-device 109baa293e9SMauro Carvalho Chehab vfio 110f621eb13SAlex Williamson vfio-pci-device-specific-driver-acceptance 111d16c0cd2SRicardo Cañuelo virtio/index 112fb8c5327SMauro Carvalho Chehab xilinx/index 113baa293e9SMauro Carvalho Chehab xillybus 114baa293e9SMauro Carvalho Chehab zorro 1159c73e1e0SJonathan Corbet hte/index 116*e8f8b448SArmin Wolf wmi 117241a8021SMarkus Heiser 118241a8021SMarkus Heiser.. only:: subproject and html 119241a8021SMarkus Heiser 120241a8021SMarkus Heiser Indices 121241a8021SMarkus Heiser ======= 122241a8021SMarkus Heiser 123241a8021SMarkus Heiser * :ref:`genindex` 124