€•®-Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ$/translations/zh_CN/driver-api/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/zh_TW/driver-api/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/it_IT/driver-api/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ja_JP/driver-api/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ko_KR/driver-api/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/sp_SP/driver-api/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒ>/var/lib/git/docbuild/linux/Documentation/driver-api/index.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒDriver implementer's API guide”h]”hŒ Driver implementer’s API guide”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒ paragraph”“”)”}”(hX The kernel offers a wide variety of interfaces to support the development of device drivers. This document is an only somewhat organized collection of some of those interfaces — it will hopefully get better over time! The available subsections can be seen below.”h]”hX The kernel offers a wide variety of interfaces to support the development of device drivers. This document is an only somewhat organized collection of some of those interfaces — it will hopefully get better over time! The available subsections can be seen below.”…””}”(hhËhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhµ)”}”(hhh]”(hº)”}”(hŒ&General information for driver authors”h]”hŒ&General information for driver authors”…””}”(hhÜhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhÙhžhhŸh³h KubhÊ)”}”(hŒ…This section contains documentation that should, at some point or other, be of interest to most developers working on device drivers.”h]”hŒ…This section contains documentation that should, at some point or other, be of interest to most developers working on device drivers.”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhÙhžhubhŒcompound”“”)”}”(hhh]”hŒtoctree”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”hŒdriver-api/index”Œentries”]”(NŒdriver-api/basics”†”NŒdriver-api/driver-model/index”†”NŒdriver-api/device_link”†”NŒdriver-api/infrastructure”†”NŒdriver-api/ioctl”†”NŒdriver-api/pm/index”†”eŒ includefiles”]”(j j jjjjeŒmaxdepth”KŒcaption”NŒglob”‰Œhidden”‰Œ includehidden”‰Œnumbered”KŒ titlesonly”‰Œ rawentries”]”uh1hýhŸh³h Khhúubah}”(h]”h ]”Œtoctree-wrapper”ah"]”h$]”h&]”uh1høhhÙhžhhŸh³h Nubeh}”(h]”Œ&general-information-for-driver-authors”ah ]”h"]”Œ&general information for driver authors”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒUseful support libraries”h]”hŒUseful support libraries”…””}”(hj4hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj1hžhhŸh³h KubhÊ)”}”(hŒ…This section contains documentation that should, at some point or other, be of interest to most developers working on device drivers.”h]”hŒ…This section contains documentation that should, at some point or other, be of interest to most developers working on device drivers.”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K hj1hžhubhù)”}”(hhh]”hþ)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”hjj ]”(NŒ driver-api/early-userspace/index”†”NŒdriver-api/connector”†”NŒdriver-api/device-io”†”NŒdriver-api/devfreq”†”NŒdriver-api/dma-buf”†”NŒdriver-api/component”†”NŒdriver-api/io-mapping”†”NŒdriver-api/io_ordering”†”NŒdriver-api/uio-howto”†”NŒdriver-api/vfio-mediated-device”†”NŒdriver-api/vfio”†”NŒ5driver-api/vfio-pci-device-specific-driver-acceptance”†”ej]”(j]j_jajcjejgjijkjmjojqjsejKjNj‰j‰j‰jKj‰j ]”uh1hýhŸh³h K#hjPubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1høhj1hžhhŸh³h Nubeh}”(h]”Œuseful-support-libraries”ah ]”h"]”Œuseful support libraries”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒBus-level documentation”h]”hŒBus-level documentation”…””}”(hjˆhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj…hžhhŸh³h K4ubhù)”}”(hhh]”hþ)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”hjj ]”(NŒdriver-api/auxiliary_bus”†”NŒdriver-api/cxl/index”†”NŒdriver-api/eisa”†”NŒdriver-api/firewire”†”NŒdriver-api/i3c/index”†”NŒdriver-api/isa”†”NŒdriver-api/men-chameleon-bus”†”NŒdriver-api/pci/index”†”NŒdriver-api/rapidio/index”†”NŒdriver-api/slimbus”†”NŒdriver-api/usb/index”†”NŒdriver-api/virtio/index”†”NŒdriver-api/vme”†”NŒ driver-api/w1”†”NŒdriver-api/xillybus”†”ej]”(j£j¥j§j©j«j­j¯j±j³jµj·j¹j»j½j¿ejKjNj‰j‰j‰jKj‰j ]”uh1hýhŸh³h K6hj–ubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1høhj…hžhhŸh³h Nubeh}”(h]”Œbus-level-documentation”ah ]”h"]”Œbus-level documentation”ah$]”h&]”uh1h´hh¶hžhhŸh³h K4ubhµ)”}”(hhh]”(hº)”}”(hŒSubsystem-specific APIs”h]”hŒSubsystem-specific APIs”…””}”(hjÔhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjÑhžhhŸh³h KKubhù)”}”(hhh]”hþ)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”hjj ]”(NŒdriver-api/80211/index”†”NŒdriver-api/acpi/index”†”NŒ"driver-api/backlight/lp855x-driver”†”NŒdriver-api/clk”†”NŒdriver-api/console”†”NŒdriver-api/crypto/index”†”NŒdriver-api/dmaengine/index”†”NŒdriver-api/dpll”†”NŒdriver-api/edac”†”NŒdriver-api/extcon”†”NŒdriver-api/firmware/index”†”NŒdriver-api/fpga/index”†”NŒdriver-api/frame-buffer”†”NŒdriver-api/aperture”†”NŒdriver-api/generic-counter”†”NŒdriver-api/gpio/index”†”NŒdriver-api/hsi”†”NŒdriver-api/hte/index”†”NŒdriver-api/i2c”†”NŒdriver-api/iio/index”†”NŒdriver-api/infiniband”†”NŒdriver-api/input”†”NŒdriver-api/interconnect”†”NŒdriver-api/ipmb”†”NŒdriver-api/ipmi”†”NŒdriver-api/libata”†”NŒdriver-api/mailbox”†”NŒdriver-api/md/index”†”NŒdriver-api/media/index”†”NŒdriver-api/mei/index”†”NŒdriver-api/memory-devices/index”†”NŒdriver-api/message-based”†”NŒdriver-api/misc_devices”†”NŒdriver-api/miscellaneous”†”NŒdriver-api/mmc/index”†”NŒdriver-api/mtd/index”†”NŒdriver-api/mtdnand”†”NŒdriver-api/nfc/index”†”NŒdriver-api/ntb”†”NŒdriver-api/nvdimm/index”†”NŒdriver-api/nvmem”†”NŒdriver-api/parport-lowlevel”†”NŒdriver-api/phy/index”†”NŒdriver-api/pin-control”†”NŒdriver-api/pldmfw/index”†”NŒdriver-api/pps”†”NŒdriver-api/ptp”†”NŒdriver-api/pwm”†”NŒdriver-api/pwrseq”†”NŒdriver-api/regulator”†”NŒdriver-api/reset”†”NŒdriver-api/rfkill”†”NŒdriver-api/s390-drivers”†”NŒdriver-api/scsi”†”NŒdriver-api/serial/index”†”NŒdriver-api/sm501”†”NŒdriver-api/soundwire/index”†”NŒdriver-api/spi”†”NŒ#driver-api/surface_aggregator/index”†”NŒdriver-api/switchtec”†”NŒdriver-api/sync_file”†”NŒdriver-api/target”†”NŒdriver-api/tee”†”NŒdriver-api/thermal/index”†”NŒdriver-api/tty/index”†”NŒdriver-api/wbrf”†”NŒdriver-api/wmi”†”NŒdriver-api/xilinx/index”†”NŒdriver-api/zorro”†”ej]”(jïjñjójõj÷jùjûjýjÿjjjjj j j jjjjjjjjjj!j#j%j'j)j+j-j/j1j3j5j7j9j;j=j?jAjCjEjGjIjKjMjOjQjSjUjWjYj[j]j_jajcjejgjijkjmjojqjsjujwejKjNj‰j‰j‰jKj‰j ]”uh1hýhŸh³h KMhjâubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1høhjÑhžhhŸh³h Nubeh}”(h]”Œsubsystem-specific-apis”ah ]”h"]”Œsubsystem-specific apis”ah$]”h&]”uh1h´hh¶hžhhŸh³h KKubhŒonly”“”)”}”(hhh]”hµ)”}”(hhh]”(hº)”}”(hŒIndices”h]”hŒIndices”…””}”(hj‘hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjŽhžhhŸh³h K™ubhŒ bullet_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒ:ref:`genindex`”h]”hÊ)”}”(hj¨h]”h)”}”(hj¨h]”hŒinline”“”)”}”(hj¨h]”hŒgenindex”…””}”(hj²hžhhŸNh Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1j°hj­ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j½Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆŒ reftarget”Œgenindex”uh1hhŸh³h K›hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K›hj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤hj¡hžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jŸhŸh³h K›hjŽhžhubeh}”(h]”Œindices”ah ]”h"]”Œindices”ah$]”h&]”uh1h´hj‹hžhhŸh³h K™ubah}”(h]”h ]”h"]”h$]”h&]”Œexpr”Œsubproject and html”uh1j‰hžhhŸh³h K–hh¶ubeh}”(h]”Œdriver-implementer-s-api-guide”ah ]”h"]”Œdriver implementer's api guide”ah$]”h&]”uh1h´hhhžhhŸh³h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¹NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jùjöj.j+j‚jjÎjËj†jƒjéjæuŒ nametypes”}”(jù‰j.‰j‚‰jΉj†‰jé‰uh}”(jöh¶j+hÙjj1jËj…jƒjÑjæjŽuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.