€•ß$Œ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/w1/masters/w1-uart”Œ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/w1/masters/w1-uart”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/it_IT/w1/masters/w1-uart”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/ja_JP/w1/masters/w1-uart”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/ko_KR/w1/masters/w1-uart”Œ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/w1/masters/w1-uart”Œ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-or-later”h]”hŒ)SPDX-License-Identifier: GPL-2.0-or-later”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒ@/var/lib/git/docbuild/linux/Documentation/w1/masters/w1-uart.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒKernel driver w1-uart”h]”hŒKernel driver w1-uart”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒ paragraph”“”)”}”(hŒ6Author: Christoph Winklhofer ”h]”(hŒAuthor: Christoph Winklhofer <”…””}”(hhËhžhhŸNh NubhŒ reference”“”)”}”(hŒcj.winklhofer@gmail.com”h]”hŒcj.winklhofer@gmail.com”…””}”(hhÕhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:cj.winklhofer@gmail.com”uh1hÓhhËubhŒ>”…””}”(hhËhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhµ)”}”(hhh]”(hº)”}”(hŒ Description”h]”hŒ Description”…””}”(hhòhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhïhžhhŸh³h K ubhÊ)”}”(hŒÎUART 1-Wire bus driver. The driver utilizes the UART interface via the Serial Device Bus to create the 1-Wire timing patterns as described in the document `"Using a UART to Implement a 1-Wire Bus Master"`_.”h]”(hŒ›UART 1-Wire bus driver. The driver utilizes the UART interface via the Serial Device Bus to create the 1-Wire timing patterns as described in the document ”…””}”(hjhžhhŸNh NubhÔ)”}”(hŒ2`"Using a UART to Implement a 1-Wire Bus Master"`_”h]”hŒ3“Using a UART to Implement a 1-Wire Bus Master—…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ/"Using a UART to Implement a 1-Wire Bus Master"”Œrefuri”Œ^https://www.analog.com/en/technical-articles/using-a-uart-to-implement-a-1wire-bus-master.html”uh1hÓhjŒresolved”KubhŒ.”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K hhïhžhubhŒtarget”“”)”}”(hŒ“.. _"Using a UART to Implement a 1-Wire Bus Master": https://www.analog.com/en/technical-articles/using-a-uart-to-implement-a-1wire-bus-master.html”h]”h}”(h]”Œ-using-a-uart-to-implement-a-1-wire-bus-master”ah ]”h"]”Œ/"using a uart to implement a 1-wire bus master"”ah$]”h&]”jjuh1j%h KhhïhžhhŸh³Œ referenced”KubhÊ)”}”(hŒ÷In short, the UART peripheral must support full-duplex and operate in open-drain mode. The timing patterns are generated by a specific combination of baud-rate and transmitted byte, which corresponds to a 1-Wire read bit, write bit or reset pulse.”h]”hŒ÷In short, the UART peripheral must support full-duplex and operate in open-drain mode. The timing patterns are generated by a specific combination of baud-rate and transmitted byte, which corresponds to a 1-Wire read bit, write bit or reset pulse.”…””}”(hj4hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhïhžhubhÊ)”}”(hXŒFor instance the timing pattern for a 1-Wire reset and presence detect uses the baud-rate 9600, i.e. 104.2 us per bit. The transmitted byte 0xf0 over UART (least significant bit first, start-bit low) sets the reset low time for 1-Wire to 521 us. A present 1-Wire device changes the received byte by pulling the line low, which is used by the driver to evaluate the result of the 1-Wire operation.”h]”hXŒFor instance the timing pattern for a 1-Wire reset and presence detect uses the baud-rate 9600, i.e. 104.2 us per bit. The transmitted byte 0xf0 over UART (least significant bit first, start-bit low) sets the reset low time for 1-Wire to 521 us. A present 1-Wire device changes the received byte by pulling the line low, which is used by the driver to evaluate the result of the 1-Wire operation.”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhïhžhubhÊ)”}”(hŒðSimilar for a 1-Wire read bit or write bit, which uses the baud-rate 115200, i.e. 8.7 us per bit. The transmitted byte 0x80 is used for a Write-0 operation (low time 69.6us) and the byte 0xff for Read-0, Read-1 and Write-1 (low time 8.7us).”h]”hŒðSimilar for a 1-Wire read bit or write bit, which uses the baud-rate 115200, i.e. 8.7 us per bit. The transmitted byte 0x80 is used for a Write-0 operation (low time 69.6us) and the byte 0xff for Read-0, Read-1 and Write-1 (low time 8.7us).”…””}”(hjPhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhïhžhubhÊ)”}”(hŒùThe default baud-rate for reset and presence detection is 9600 and for a 1-Wire read or write operation 115200. In case the actual baud-rate is different from the requested one, the transmitted byte is adapted to generate the 1-Wire timing patterns.”h]”hŒùThe default baud-rate for reset and presence detection is 9600 and for a 1-Wire read or write operation 115200. In case the actual baud-rate is different from the requested one, the transmitted byte is adapted to generate the 1-Wire timing patterns.”…””}”(hj^hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K$hhïhžhubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1h´hh¶hžhhŸh³h K ubhµ)”}”(hhh]”(hº)”}”(hŒUsage”h]”hŒUsage”…””}”(hjwhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjthžhhŸh³h K+ubhÊ)”}”(hŒ‚Specify the UART 1-wire bus in the device tree by adding the single child onewire to the serial node (e.g. uart0). For example: ::”h]”hŒSpecify the UART 1-wire bus in the device tree by adding the single child onewire to the serial node (e.g. uart0). For example:”…””}”(hj…hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K-hjthžhubhŒ literal_block”“”)”}”(hŒ>@uart0 { ... onewire { compatible = "w1-uart"; }; };”h]”hŒ>@uart0 { ... onewire { compatible = "w1-uart"; }; };”…””}”hj•sbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1j“hŸh³h K1hjthžhubeh}”(h]”Œusage”ah ]”h"]”Œusage”ah$]”h&]”uh1h´hh¶hžhhŸh³h K+ubeh}”(h]”Œkernel-driver-w1-uart”ah ]”h"]”Œkernel driver w1-uart”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”}”Œ/"using a uart to implement a 1-wire bus master"”]”jasŒrefids”}”Œnameids”}”(j°j­jqjnj0j-j¨j¥uŒ nametypes”}”(j°‰jq‰j0ˆj¨‰uh}”(j­h¶jnhïj-j'j¥jtuŒ 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.