€•�nŒ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/hwmon/smsc47b397”Œ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/hwmon/smsc47b397”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/it_IT/hwmon/smsc47b397”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ja_JP/hwmon/smsc47b397”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ko_KR/hwmon/smsc47b397”Œ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/hwmon/smsc47b397”Œ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/hwmon/smsc47b397”Œ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ŒKernel driver smsc47b397”h]”hŒKernel driver smsc47b397”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ>/var/lib/git/docbuild/linux/Documentation/hwmon/smsc47b397.rst”h´KubhŒ paragraph”“”)�”}”(hŒSupported chips:”h]”hŒSupported chips:”…”�”}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒ block_quote”“”)�”}”(hŒ¯* SMSC LPC47B397-NC * SMSC SCH5307-NS * SMSC SCH5317 Prefix: 'smsc47b397' Addresses scanned: none, address read from Super I/O config space Datasheet: In this file ”h]”hŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒSMSC LPC47B397-NC ”h]”hÌ)�”}”(hŒSMSC LPC47B397-NC”h]”hŒSMSC LPC47B397-NC”…”�”}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhèubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhhãubhç)�”}”(hŒSMSC SCH5307-NS ”h]”hÌ)�”}”(hŒSMSC SCH5307-NS”h]”hŒSMSC SCH5307-NS”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhhãubhç)�”}”(hŒSMSC SCH5317 Prefix: 'smsc47b397' Addresses scanned: none, address read from Super I/O config space Datasheet: In this file ”h]”(hÌ)�”}”(hŒ SMSC SCH5317”h]”hŒ SMSC SCH5317”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hjubhÌ)�”}”(hŒPrefix: 'smsc47b397'”h]”hŒPrefix: ‘smsc47b397’”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hjubhÌ)�”}”(hŒAAddresses scanned: none, address read from Super I/O config space”h]”hŒAAddresses scanned: none, address read from Super I/O config space”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjubhÌ)�”}”(hŒDatasheet: In this file”h]”hŒDatasheet: In this file”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hæhhãubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1háh³hÊh´KhhÝubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛh³hÊh´Khh·h²hubhÌ)�”}”(hŒAuthors:”h]”hŒAuthors:”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÜ)�”}”(hŒD- Mark M. Hoffman - Utilitek Systems, Inc. ”h]”hâ)�”}”(hhh]”(hç)�”}”(hŒ(Mark M. Hoffman ”h]”hÌ)�”}”(hjh]”(hŒMark M. Hoffman <”…”�”}”(hj�h²hh³Nh´NubhŒ reference”“”)�”}”(hŒmhoffman@lightlink.com”h]”hŒmhoffman@lightlink.com”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:mhoffman@lightlink.com”uh1jˆhj�ubhŒ>”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjzubhç)�”}”(hŒUtilitek Systems, Inc. ”h]”hÌ)�”}”(hŒUtilitek Systems, Inc.”h]”hŒUtilitek Systems, Inc.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjªubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjzubeh}”(h]”h ]”h"]”h$]”h&]”j`Œ-”uh1háh³hÊh´Khjvubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛh³hÊh´Khh·h²hubhÌ)�”}”(hŒNovember 23, 2004”h]”hŒNovember 23, 2004”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hX The following specification describes the SMSC LPC47B397-NC [1]_ sensor chip (for which there is no public datasheet available). This document was provided by Craig Kelly (In-Store Broadcast Network) and edited/corrected by Mark M. Hoffman .”h]”(hŒ.”…”�”}”(hjÝh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒfootnote”“”)�”}”(hŒ_And SMSC SCH5307-NS and SCH5317, which have different device IDs but are otherwise compatible. ”h]”(hŒlabel”“”)�”}”(hŒ1”h]”hŒ1”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhÌ)�”}”(hŒ^And SMSC SCH5307-NS and SCH5317, which have different device IDs but are otherwise compatible.”h]”hŒ^And SMSC SCH5307-NS and SCH5317, which have different device IDs but are otherwise compatible.”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjubeh}”(h]”j÷ah ]”h"]”Œ1”ah$]”h&]”jñajøjùuh1jh³hÊh´Khh·h²hjúKubhŒ transition”“”)�”}”(hŒI-------------------------------------------------------------------------”h]”h}”(h]”h ]”h"]”h$]”h&]”uh1jDh³hÊh´K!hh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒIMethods for detecting the HP SIO and reading the thermal data on a dc7100”h]”hŒIMethods for detecting the HP SIO and reading the thermal data on a dc7100”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjPh²hh³hÊh´K$ubhÌ)�”}”(hXªThe thermal information on the dc7100 is contained in the SIO Hardware Monitor (HWM). The information is accessed through an index/data pair. The index/data pair is located at the HWM Base Address + 0 and the HWM Base Address + 1. The HWM Base address can be obtained from Logical Device 8, registers 0x60 (MSB) and 0x61 (LSB). Currently we are using 0x480 for the HWM Base Address and 0x480 and 0x481 for the index/data pair.”h]”hXªThe thermal information on the dc7100 is contained in the SIO Hardware Monitor (HWM). The information is accessed through an index/data pair. The index/data pair is located at the HWM Base Address + 0 and the HWM Base Address + 1. The HWM Base address can be obtained from Logical Device 8, registers 0x60 (MSB) and 0x61 (LSB). Currently we are using 0x480 for the HWM Base Address and 0x480 and 0x481 for the index/data pair.”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K&hjPh²hubhÌ)�”}”(hŒcReading temperature information. The temperature information is located in the following registers:”h]”hŒcReading temperature information. The temperature information is located in the following registers:”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K-hjPh²hubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j‡hj„ubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j‡hj„ubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K7uh1j‡hj„ubhŒtbody”“”)�”}”(hhh]”(hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÌ)�”}”(hŒTemp1”h]”hŒTemp1”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K1hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj®ubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x25”h]”hŒ0x25”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K1hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj®ubj²)�”}”(hhh]”hÌ)�”}”(hŒ7(Currently, this reflects the CPU temp on all systems).”h]”hŒ7(Currently, this reflects the CPU temp on all systems).”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K1hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¬hj©ubj­)�”}”(hhh]”(j²)�”}”(hhh]”hÌ)�”}”(hŒTemp2”h]”hŒTemp2”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K2hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjþubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x26”h]”hŒ0x26”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K2hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjþubj²)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j±hjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¬hj©ubj­)�”}”(hhh]”(j²)�”}”(hhh]”hÌ)�”}”(hŒTemp3”h]”hŒTemp3”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K3hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj>ubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x27”h]”hŒ0x27”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K3hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj>ubj²)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j±hj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¬hj©ubj­)�”}”(hhh]”(j²)�”}”(hhh]”hÌ)�”}”(hŒTemp4”h]”hŒTemp4”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K4hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj~ubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x80”h]”hŒ0x80”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K4hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj~ubj²)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j±hj~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¬hj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j§hj„ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j‚hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjPh²hh³hÊh´NubhÌ)�”}”(hŒ^Programming Example The following is an example of how to read the HWM temperature registers::”h]”hŒ]Programming Example The following is an example of how to read the HWM temperature registers:”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K7hjPh²hubhŒ literal_block”“”)�”}”(hŒJMOV DX,480H MOV AX,25H OUT DX,AL MOV DX,481H IN AL,DX”h]”hŒJMOV DX,480H MOV AX,25H OUT DX,AL MOV DX,481H IN AL,DX”…”�”}”hjásbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jßh³hÊh´K:hjPh²hubhÌ)�”}”(hŒRAL contains the data in hex, the temperature in Celsius is the decimal equivalent.”h]”hŒRAL contains the data in hex, the temperature in Celsius is the decimal equivalent.”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K@hjPh²hubhÌ)�”}”(hŒ9Ex: If AL contains 0x2A, the temperature is 42 degrees C.”h]”hŒ9Ex: If AL contains 0x2A, the temperature is 42 degrees C.”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KChjPh²hubhÌ)�”}”(hŒZReading tach information. The fan speed information is located in the following registers:”h]”hŒZReading tach information. The fan speed information is located in the following registers:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KEhjPh²hubj~)�”}”(hhh]”jƒ)�”}”(hhh]”(jˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j‡hjubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j‡hjubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j‡hjubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K!uh1j‡hjubj¨)�”}”(hhh]”(j­)�”}”(hhh]”(j²)�”}”(hhh]”hÌ)�”}”(hŒTach1”h]”hŒTach1”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KJhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjLubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x28”h]”hŒ0x28”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KJhjfubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjLubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x29”h]”hŒ0x29”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KJhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjLubj²)�”}”(hhh]”hÌ)�”}”(hŒ<(Currently, this reflects the CPU fan speed on all systems).”h]”hŒ<(Currently, this reflects the CPU fan speed on all systems).”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KJhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¬hjIubj­)�”}”(hhh]”(j²)�”}”(hhh]”hÌ)�”}”(hŒTach2”h]”hŒTach2”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KLhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj±ubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x2A”h]”hŒ0x2A”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KLhjËubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj±ubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x2B”h]”hŒ0x2B”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KLhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj±ubj²)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j±hj±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¬hjIubj­)�”}”(hhh]”(j²)�”}”(hhh]”hÌ)�”}”(hŒTach3”h]”hŒTach3”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KMhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x2C”h]”hŒ0x2C”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KMhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x2D”h]”hŒ0x2D”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KMhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hjubj²)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j±hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¬hjIubj­)�”}”(hhh]”(j²)�”}”(hhh]”hÌ)�”}”(hŒTach4”h]”hŒTach4”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj_ubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x2E”h]”hŒ0x2E”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj_ubj²)�”}”(hhh]”hÌ)�”}”(hŒ0x2F”h]”hŒ0x2F”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj_ubj²)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j±hj_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¬hjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j§hjubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j‚hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjPh²hh³hÊh´NubhŒ important”“”)�”}”(hŒDReading the tach LSB locks the tach MSB. The LSB Must be read first.”h]”hÌ)�”}”(hŒDReading the tach LSB locks the tach MSB. The LSB Must be read first.”h]”hŒDReading the tach LSB locks the tach MSB. The LSB Must be read first.”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KShjËubah}”(h]”h ]”h"]”h$]”h&]”uh1jÉhjPh²hh³hÊh´Nubeh}”(h]”ŒImethods-for-detecting-the-hp-sio-and-reading-the-thermal-data-on-a-dc7100”ah ]”h"]”ŒImethods for detecting the hp sio and reading the thermal data on a dc7100”ah$]”h&]”uh1hµhh·h²hh³hÊh´K$ubh¶)�”}”(hhh]”(h»)�”}”(hŒ&How to convert the tach reading to RPM”h]”hŒ&How to convert the tach reading to RPM”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjëh²hh³hÊh´KWubhÌ)�”}”(hŒ¦The tach reading (TCount) is given by: (Tach MSB * 256) + (Tach LSB) The SIO counts the number of 90kHz (11.111us) pulses per revolution. RPM = 60/(TCount * 11.111us)”h]”hŒ¦The tach reading (TCount) is given by: (Tach MSB * 256) + (Tach LSB) The SIO counts the number of 90kHz (11.111us) pulses per revolution. RPM = 60/(TCount * 11.111us)”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KYhjëh²hubhÌ)�”}”(hŒ Example::”h]”hŒExample:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K]hjëh²hubjà)�”}”(hŒReg 0x28 = 0x9B Reg 0x29 = 0x08”h]”hŒReg 0x28 = 0x9B Reg 0x29 = 0x08”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jïjðuh1jßh³hÊh´K_hjëh²hubhÌ)�”}”(hŒTCount = 0x89B = 2203”h]”hŒTCount = 0x89B = 2203”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kbhjëh²hubhÌ)�”}”(hŒ+RPM = 60 / (2203 * 11.11111 E-6) = 2451 RPM”h]”hŒ+RPM = 60 / (2203 * 11.11111 E-6) = 2451 RPM”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kdhjëh²hubhÌ)�”}”(hŒObtaining the SIO version.”h]”hŒObtaining the SIO version.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kfhjëh²hubeh}”(h]”Œ&how-to-convert-the-tach-reading-to-rpm”ah ]”h"]”Œ&how to convert the tach reading to rpm”ah$]”h&]”uh1hµhh·h²hh³hÊh´KWubh¶)�”}”(hhh]”(h»)�”}”(hŒConfiguration Sequence”h]”hŒConfiguration Sequence”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjXh²hh³hÊh´KiubhÌ)�”}”(hŒ±To program the configuration registers, the following sequence must be followed: 1. Enter Configuration Mode 2. Configure the Configuration Registers 3. Exit Configuration Mode.”h]”hŒ±To program the configuration registers, the following sequence must be followed: 1. Enter Configuration Mode 2. Configure the Configuration Registers 3. Exit Configuration Mode.”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KkhjXh²hubh¶)�”}”(hhh]”(h»)�”}”(hŒEnter Configuration Mode”h]”hŒEnter Configuration Mode”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjwh²hh³hÊh´KqubhÌ)�”}”(hŒjTo place the chip into the Configuration State The config key (0x55) is written to the CONFIG PORT (0x2E).”h]”hŒjTo place the chip into the Configuration State The config key (0x55) is written to the CONFIG PORT (0x2E).”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kshjwh²hubeh}”(h]”Œenter-configuration-mode”ah ]”h"]”Œenter configuration mode”ah$]”h&]”uh1hµhjXh²hh³hÊh´Kqubh¶)�”}”(hhh]”(h»)�”}”(hŒConfiguration Mode”h]”hŒConfiguration Mode”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjžh²hh³hÊh´KwubhÌ)�”}”(hŒ{In configuration mode, the INDEX PORT is located at the CONFIG PORT address and the DATA PORT is at INDEX PORT address + 1.”h]”hŒ{In configuration mode, the INDEX PORT is located at the CONFIG PORT address and the DATA PORT is at INDEX PORT address + 1.”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kyhjžh²hubhÌ)�”}”(hŒ>The desired configuration registers are accessed in two steps:”h]”hŒ>The desired configuration registers are accessed in two steps:”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K|hjžh²hubhŒenumerated_list”“”)�”}”(hhh]”(hç)�”}”(hŒ­Write the index of the Logical Device Number Configuration Register (i.e., 0x07) to the INDEX PORT and then write the number of the desired logical device to the DATA PORT. ”h]”hÌ)�”}”(hŒ¬Write the index of the Logical Device Number Configuration Register (i.e., 0x07) to the INDEX PORT and then write the number of the desired logical device to the DATA PORT.”h]”hŒ¬Write the index of the Logical Device Number Configuration Register (i.e., 0x07) to the INDEX PORT and then write the number of the desired logical device to the DATA PORT.”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K~hjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÍh²hh³hÊh´Nubhç)�”}”(hŒ¯Write the address of the desired configuration register within the logical device to the INDEX PORT and then write or read the config- uration register through the DATA PORT. ”h]”hÌ)�”}”(hŒ®Write the address of the desired configuration register within the logical device to the INDEX PORT and then write or read the config- uration register through the DATA PORT.”h]”hŒ®Write the address of the desired configuration register within the logical device to the INDEX PORT and then write or read the config- uration register through the DATA PORT.”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‚hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÍh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ loweralpha”Œprefix”hŒsuffix”Œ.”uh1jËhjžh²hh³hÊh´K~ubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒQNote: If accessing the Global Configuration Registers, step (a) is not required. ”h]”(hŒterm”“”)�”}”(hŒNote:”h]”hŒNote:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K‡hjubhŒ definition”“”)�”}”(hhh]”hÌ)�”}”(hŒJIf accessing the Global Configuration Registers, step (a) is not required.”h]”hŒJIf accessing the Global Configuration Registers, step (a) is not required.”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‡hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K‡hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjžh²hh³hÊh´Nubeh}”(h]”Œconfiguration-mode”ah ]”h"]”Œconfiguration mode”ah$]”h&]”uh1hµhjXh²hh³hÊh´Kwubh¶)�”}”(hhh]”(h»)�”}”(hŒExit Configuration Mode”h]”hŒExit Configuration Mode”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjSh²hh³hÊh´KŠubhÌ)�”}”(hŒ‚To exit the Configuration State the write 0xAA to the CONFIG PORT (0x2E). The chip returns to the RUN State. (This is important).”h]”hŒ‚To exit the Configuration State the write 0xAA to the CONFIG PORT (0x2E). The chip returns to the RUN State. (This is important).”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŒhjSh²hubeh}”(h]”Œexit-configuration-mode”ah ]”h"]”Œexit configuration mode”ah$]”h&]”uh1hµhjXh²hh³hÊh´KŠubh¶)�”}”(hhh]”(h»)�”}”(hŒProgramming Example”h]”hŒProgramming Example”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjzh²hh³hÊh´K�ubhÌ)�”}”(hŒMThe following is an example of how to read the SIO Device ID located at 0x20:”h]”hŒMThe following is an example of how to read the SIO Device ID located at 0x20:”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K’hjzh²hubhÜ)�”}”(hX ; ENTER CONFIGURATION MODE MOV DX,02EH MOV AX,055H OUT DX,AL ; GLOBAL CONFIGURATION REGISTER MOV DX,02EH MOV AL,20H OUT DX,AL ; READ THE DATA MOV DX,02FH IN AL,DX ; EXIT CONFIGURATION MODE MOV DX,02EH MOV AX,0AAH OUT DX,AL ”h]”hÌ)�”}”(hX ; ENTER CONFIGURATION MODE MOV DX,02EH MOV AX,055H OUT DX,AL ; GLOBAL CONFIGURATION REGISTER MOV DX,02EH MOV AL,20H OUT DX,AL ; READ THE DATA MOV DX,02FH IN AL,DX ; EXIT CONFIGURATION MODE MOV DX,02EH MOV AX,0AAH OUT DX,AL”h]”hX ; ENTER CONFIGURATION MODE MOV DX,02EH MOV AX,055H OUT DX,AL ; GLOBAL CONFIGURATION REGISTER MOV DX,02EH MOV AL,20H OUT DX,AL ; READ THE DATA MOV DX,02FH IN AL,DX ; EXIT CONFIGURATION MODE MOV DX,02EH MOV AX,0AAH OUT DX,AL”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K”hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛh³hÊh´K”hjzh²hubhÌ)�”}”(hŒlThe registers of interest for identifying the SIO on the dc7100 are Device ID (0x20) and Device Rev (0x21).”h]”hŒlThe registers of interest for identifying the SIO on the dc7100 are Device ID (0x20) and Device Rev (0x21).”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¤hjzh²hubhÌ)�”}”(hŒlThe Device ID will read 0x6F (0x81 for SCH5307-NS, and 0x85 for SCH5317) The Device Rev currently reads 0x01”h]”hŒlThe Device ID will read 0x6F (0x81 for SCH5307-NS, and 0x85 for SCH5317) The Device Rev currently reads 0x01”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K§hjzh²hubeh}”(h]”Œprogramming-example”ah ]”h"]”Œprogramming example”ah$]”h&]”uh1hµhjXh²hh³hÊh´K�ubeh}”(h]”Œconfiguration-sequence”ah ]”h"]”Œconfiguration sequence”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kiubh¶)�”}”(hhh]”(h»)�”}”(hŒObtaining the HWM Base Address”h]”hŒObtaining the HWM Base Address”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÝh²hh³hÊh´K«ubhÌ)�”}”(hŒ]The following is an example of how to read the HWM Base Address located in Logical Device 8::”h]”hŒ\The following is an example of how to read the HWM Base Address located in Logical Device 8:”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K­hjÝh²hubjà)�”}”(hXÕ; ENTER CONFIGURATION MODE MOV DX,02EH MOV AX,055H OUT DX,AL ; CONFIGURE REGISTER CRE0, ; LOGICAL DEVICE 8 MOV DX,02EH MOV AL,07H OUT DX,AL ;Point to LD# Config Reg MOV DX,02FH MOV AL, 08H OUT DX,AL;Point to Logical Device 8 ; MOV DX,02EH MOV AL,60H OUT DX,AL ; Point to HWM Base Addr MSB MOV DX,02FH IN AL,DX ; Get MSB of HWM Base Addr ; EXIT CONFIGURATION MODE MOV DX,02EH MOV AX,0AAH OUT DX,AL”h]”hXÕ; ENTER CONFIGURATION MODE MOV DX,02EH MOV AX,055H OUT DX,AL ; CONFIGURE REGISTER CRE0, ; LOGICAL DEVICE 8 MOV DX,02EH MOV AL,07H OUT DX,AL ;Point to LD# Config Reg MOV DX,02FH MOV AL, 08H OUT DX,AL;Point to Logical Device 8 ; MOV DX,02EH MOV AL,60H OUT DX,AL ; Point to HWM Base Addr MSB MOV DX,02FH IN AL,DX ; Get MSB of HWM Base Addr ; EXIT CONFIGURATION MODE MOV DX,02EH MOV AX,0AAH OUT DX,AL”…”�”}”hjüsbah}”(h]”h ]”h"]”h$]”h&]”jïjðuh1jßh³hÊh´K°hjÝh²hubeh}”(h]”Œobtaining-the-hwm-base-address”ah ]”h"]”Œobtaining the hwm base address”ah$]”h&]”uh1hµhh·h²hh³hÊh´K«ubeh}”(h]”Œkernel-driver-smsc47b397”ah ]”h"]”Œkernel driver smsc47b397”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”j±Œ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”}”Œ1”]”jçasŒrefids”}”Œnameids”}”(jjjAj÷jèjåjUjRjÚj×j›j˜jPjMjwjtjÒjÏjj uŒ nametypes”}”(j‰jAˆjè‰jU‰jÚ‰j›‰jP‰jw‰jÒ‰j‰uh}”(jh·jñjçj÷jjåjPjRjëj×jXj˜jwjMjžjtjSjÏjzj jÝuŒ footnote_refs”}”j|]”jçasŒ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”jaŒ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”jJKs…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.