€•a(Œ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/thermal/exynos_thermal_emulation”Œ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/thermal/exynos_thermal_emulation”Œ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/thermal/exynos_thermal_emulation”Œ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/thermal/exynos_thermal_emulation”Œ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/thermal/exynos_thermal_emulation”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ?/translations/pt_BR/driver-api/thermal/exynos_thermal_emulation”Œ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/thermal/exynos_thermal_emulation”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒExynos Emulation Mode”h]”hŒExynos Emulation Mode”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒY/var/lib/git/docbuild/linux/Documentation/driver-api/thermal/exynos_thermal_emulation.rst”h´KubhŒ paragraph”“”)”}”(hŒ&Copyright (C) 2012 Samsung Electronics”h]”hŒ&Copyright (C) 2012 Samsung Electronics”…””}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hŒ1Written by Jonghwa Lee ”h]”(hŒWritten by Jonghwa Lee <”…””}”(hhÛh²hh³Nh´NubhŒ reference”“”)”}”(hŒjonghwa3.lee@samsung.com”h]”hŒjonghwa3.lee@samsung.com”…””}”(hhåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:jonghwa3.lee@samsung.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”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhÿh²hh³hÊh´K ubhÌ)”}”(hX!Exynos 4x12 (4212, 4412) and 5 series provide emulation mode for thermal management unit. Thermal emulation mode supports software debug for TMU's operation. User can set temperature manually with software code and TMU will read current temperature from user value not from sensor's value.”h]”hX%Exynos 4x12 (4212, 4412) and 5 series provide emulation mode for thermal management unit. Thermal emulation mode supports software debug for TMU’s operation. User can set temperature manually with software code and TMU will read current temperature from user value not from sensor’s value.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hhÿh²hubhÌ)”}”(hŒ¹Enabling CONFIG_THERMAL_EMULATION option will make this support available. When it's enabled, sysfs node will be created as /sys/devices/virtual/thermal/thermal_zone'zone id'/emul_temp.”h]”hŒ¿Enabling CONFIG_THERMAL_EMULATION option will make this support available. When it’s enabled, sysfs node will be created as /sys/devices/virtual/thermal/thermal_zone’zone id’/emul_temp.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhÿh²hubhÌ)”}”(hŒáThe sysfs node, 'emul_node', will contain value 0 for the initial state. When you input any temperature you want to update to sysfs node, it automatically enable emulation mode and current temperature will be changed into it.”h]”hŒåThe sysfs node, ‘emul_node’, will contain value 0 for the initial state. When you input any temperature you want to update to sysfs node, it automatically enable emulation mode and current temperature will be changed into it.”…””}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhÿh²hubhÌ)”}”(hŒ¬(Exynos also supports user changeable delay time which would be used to delay of changing temperature. However, this node only uses same delay of real sensing time, 938us.)”h]”hŒ¬(Exynos also supports user changeable delay time which would be used to delay of changing temperature. However, this node only uses same delay of real sensing time, 938us.)”…””}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhÿh²hubhÌ)”}”(hXèExynos emulation mode requires that value changes and enabling are performed synchronously. This means that when you want to update any value, such as the delay or the next temperature, you must enable emulation mode at the same time (or keep the mode enabled). If you do not, the value will fail to update and the last successful value will continue to be used. For this reason, this node only allows users to change the temperature. Providing a single interface makes it simpler to use.”h]”hXèExynos emulation mode requires that value changes and enabling are performed synchronously. This means that when you want to update any value, such as the delay or the next temperature, you must enable emulation mode at the same time (or keep the mode enabled). If you do not, the value will fail to update and the last successful value will continue to be used. For this reason, this node only allows users to change the temperature. Providing a single interface makes it simpler to use.”…””}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhÿh²hubhÌ)”}”(hŒEDisabling emulation mode only requires writing value 0 to sysfs node.”h]”hŒEDisabling emulation mode only requires writing value 0 to sysfs node.”…””}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K'hhÿh²hubhŒ literal_block”“”)”}”(hXLTEMP 120 | | 100 | | 80 | | +----------- 60 | | | | +-------------| | 40 | | | | | | | | 20 | | | +---------- | | | | | 0 |______________|_____________|__________|__________|_________ A A A A TIME |<----->| |<----->| |<----->| | | 938us | | | | | | emulation : 0 50 | 70 | 20 | 0 current temp: sensor 50 70 20 sensor”h]”hXLTEMP 120 | | 100 | | 80 | | +----------- 60 | | | | +-------------| | 40 | | | | | | | | 20 | | | +---------- | | | | | 0 |______________|_____________|__________|__________|_________ A A A A TIME |<----->| |<----->| |<----->| | | 938us | | | | | | emulation : 0 50 | 70 | 20 | 0 current temp: sensor 50 70 20 sensor”…””}”hjfsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jdh³hÊh´K,hhÿh²hubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubeh}”(h]”Œexynos-emulation-mode”ah ]”h"]”Œexynos emulation mode”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{jxuŒ nametypes”}”(jƒ‰j{‰uh}”(j€h·jxhÿ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.