Difference between revisions of "SW Service/API/SUSI4.0 USER MANUAL"

From ESS-WIKI
Jump to: navigation, search
(Undo revision 24438 by Jasonjh.huang (talk))
(Undo revision 24439 by Jasonjh.huang (talk))
Line 1: Line 1:
 +
<h1><b>1 Introduction</b></h1>
  
= '''1 Introduction''' =
+
<p><b>SUSI &ndash; A Bridge to Simplify &amp; Enhance H/W &amp; Application Implementation Efficiency</b></p>
  
'''SUSI – A Bridge to Simplify & Enhance H/W & Application Implementation Efficiency'''
+
<p>When developers want to write an application that involves hardware access, they have to study the specifications to write the drivers. This is a time-consuming job and requires lots of expertise.</p>
  
When developers want to write an application that involves hardware access, they have to study the specifications to write the drivers. This is a time-consuming job and requires lots of expertise.
+
<p>Advantech has done all the hard work for our customers with the release of a suite of Software APIs (Application Programming Interfaces), called <b>Secured &amp; Unified Smart Interface</b> (SUSI).</p>
  
Advantech has done all the hard work for our customers with the release of a suite of Software APIs (Application Programming Interfaces), called '''Secured & Unified Smart Interface''' (SUSI).
+
<p>SUSI provides not only the underlying drivers required but also a rich set of user-friendly, intelligent and integrated interfaces, which speeds development, enhances security and offers add-on value for Advantech platforms. SUSI plays the role of catalyst between developer and solution, and makes Advantech embedded platforms easier and simpler to adopt and operate with customer applications.</p>
  
SUSI provides not only the underlying drivers required but also a rich set of user-friendly, intelligent and integrated interfaces, which speeds development, enhances security and offers add-on value for Advantech platforms. SUSI plays the role of catalyst between developer and solution, and makes Advantech embedded platforms easier and simpler to adopt and operate with customer applications.
+
<p>&nbsp;</p>
  
&nbsp;
+
<h2><b>1.1 Functions</b></h2>
  
== '''1.1 Functions''' ==
+
<h3><b>1.1.1 GPIO</b></h3>
  
=== '''1.1.1 GPIO''' ===
+
<p><img _fck_mw_filename="1.1.1 GPIO.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.1 GPIO.png" height="150" src="/wiki/images/b/ba/1.1.1_GPIO.png" style="vertical-align:middle;" title="1.1.1 GPIO.png" width="100" /></p>
  
[[File:1.1.1 GPIO.png|100x150px|1.1.1 GPIO.png]]
+
<p>General Purpose Input/Output is a flexible parallel interface that allows a variety of custom connections. It supports various Digital I/O devices &ndash; input devices like buttons, switches; output devices such as cash drawers, LED lights&hellip;etc. And, allows users to monitor the level of signal input or set the output status to switch on/off the device. Our APIs also provided Programmable GPIO and allows developers to dynamically set the GPIO input or output status.</p>
  
General Purpose Input/Output is a flexible parallel interface that allows a variety of custom connections. It supports various Digital I/O devices – input devices like buttons, switches; output devices such as cash drawers, LED lights…etc. And, allows users to monitor the level of signal input or set the output status to switch on/off the device. Our APIs also provided Programmable GPIO and allows developers to dynamically set the GPIO input or output status.
+
<p>&nbsp;</p>
  
&nbsp;
+
<h3><b>1.1.2 SMBus [x86 only and RISC is unavailable]</b></h3>
  
=== '''1.1.2 SMBus [x86 only and RISC is unavailable]''' ===
+
<p><img _fck_mw_filename="1.1.2 SMBus.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.2 SMBus.png" height="150" src="/wiki/images/f/f6/1.1.2_SMBus.png" style="vertical-align:middle;" title="1.1.2 SMBus.png" width="100" /></p>
  
[[File:1.1.2 SMBus.png|100x150px|1.1.2 SMBus.png]]
+
<p>SMBus is the System Management Bus defined by Intel&reg; Corporation in 1995. It is used in personal computers and servers for low-speed system management communications. Today, SMBus is used in all types of embedded systems. The SMBus APIs allows a developer to interface a platform to a downstream embedded system environment and transfer serial messages using the SMBus protocols, allowing multiple simultaneous device control.</p>
  
SMBus is the System Management Bus defined by Intel® Corporation in 1995. It is used in personal computers and servers for low-speed system management communications. Today, SMBus is used in all types of embedded systems. The SMBus APIs allows a developer to interface a platform to a downstream embedded system environment and transfer serial messages using the SMBus protocols, allowing multiple simultaneous device control.
+
<p>&nbsp;</p>
  
&nbsp;
+
<h3><b>1.1.3 I<sup>2</sup>C</b></h3>
  
=== '''1.1.3 I<sup>2</sup>C''' ===
+
<p><img _fck_mw_filename="1.1.3 i2c.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.3 i2c.png" height="150" src="/wiki/images/4/4d/1.1.3_i2c.png" style="vertical-align:middle;" title="1.1.3 i2c.png" width="100" /></p>
  
[[File:1.1.3 i2c.png|100x150px|1.1.3 i2c.png]]
+
<p>I<sup>2</sup>C is a bi-directional two wire bus that was developed by Philips for use in their televisions in the 1980s. Today, I<sup>2</sup>C is used in all types of embedded systems. The I<sup>2</sup>C API allows a developer to interface a platform to a downstream embedded system environment and transfer serial messages using the I<sup>2</sup>C protocols, allowing multiple simultaneous device control.</p>
  
I<sup>2</sup>C is a bi-directional two wire bus that was developed by Philips for use in their televisions in the 1980s. Today, I<sup>2</sup>C is used in all types of embedded systems. The I<sup>2</sup>C API allows a developer to interface a platform to a downstream embedded system environment and transfer serial messages using the I<sup>2</sup>C protocols, allowing multiple simultaneous device control.
+
<p>&nbsp;</p>
  
&nbsp;
+
<h3><b>1.1.4 Watchdog</b></h3>
  
=== '''1.1.4 Watchdog''' ===
+
<p><img _fck_mw_filename="1.1.4 watchdog.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.4 watchdog.png" height="150" src="/wiki/images/d/d4/1.1.4_watchdog.png" style="vertical-align:middle;" title="1.1.4 watchdog.png" width="100" /></p>
  
[[File:1.1.4 watchdog.png|100x150px|1.1.4 watchdog.png]]
+
<p>A watchdog timer (WDT) is a device or electronic card that performs a specific operation after a certain period of time if something goes wrong with an electronic system and the system does not recover on its own.</p>
  
A watchdog timer (WDT) is a device or electronic card that performs a specific operation after a certain period of time if something goes wrong with an electronic system and the system does not recover on its own.
+
<p>A watchdog timer can be programmed to perform a warm boot (restarting the system) after a certain number of seconds during which a program or computer fails to respond following the most recent mouse click or keyboard action.</p>
  
A watchdog timer can be programmed to perform a warm boot (restarting the system) after a certain number of seconds during which a program or computer fails to respond following the most recent mouse click or keyboard action.
+
<p>&nbsp;</p>
  
&nbsp;
+
<h3><b>1.1.5 Hardware Monitor&nbsp;[x86 only and RISC is limited in some features]</b></h3>
  
=== '''1.1.5 Hardware Monitor&nbsp;[x86 only and RISC is limited in some features]''' ===
+
<p><img _fck_mw_filename="1.1.5 HardwareMonitor 1.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.5 HardwareMonitor 1.png" height="150" src="/wiki/images/1/1f/1.1.5_HardwareMonitor_1.png" style="vertical-align:middle;" title="1.1.5 HardwareMonitor 1.png" width="100" /> &nbsp; <img _fck_mw_filename="1.1.5 HardwareMonitor 2.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.5 HardwareMonitor 2.png" height="150" src="/wiki/images/e/eb/1.1.5_HardwareMonitor_2.png" style="vertical-align:middle;" title="1.1.5 HardwareMonitor 2.png" width="100" /></p>
  
[[File:1.1.5 HardwareMonitor 1.png|100x150px|1.1.5 HardwareMonitor 1.png]] &nbsp; [[File:1.1.5 HardwareMonitor 2.png|100x150px|1.1.5 HardwareMonitor 2.png]]
+
<p>The Hardware Monitor (HWM) APIs is a system health supervision API that inspects certain condition indexes, such as smart fan, fan speed, temperature, current, case open and voltage.</p>
  
The Hardware Monitor (HWM) APIs is a system health supervision API that inspects certain condition indexes, such as smart fan, fan speed, temperature, current, case open and voltage.
+
<p>&nbsp;</p>
  
&nbsp;
+
<h3><b>1.1.6 Backlight Control</b></h3>
  
=== '''1.1.6 Backlight Control''' ===
+
<p><img _fck_mw_filename="1.1.6 Backlight 1.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.6 Backlight 1.png" height="150" src="/wiki/images/a/a6/1.1.6_Backlight_1.png" style="vertical-align:middle;" title="1.1.6 Backlight 1.png" width="100" /> &nbsp; <img _fck_mw_filename="1.1.6 Backlight 2.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.6 Backlight 2.png" height="150" src="/wiki/images/5/56/1.1.6_Backlight_2.png" style="vertical-align:middle;" title="1.1.6 Backlight 2.png" width="100" /></p>
  
[[File:1.1.6 Backlight 1.png|100x150px|1.1.6 Backlight 1.png]] &nbsp; [[File:1.1.6 Backlight 2.png|100x150px|1.1.6 Backlight 2.png]]
+
<p>The Backlight Control APIs allows a developer to interface platform to easily control brightness through PWM and backlight on/off.</p>
  
The Backlight Control APIs allows a developer to interface platform to easily control brightness through PWM and backlight on/off.
+
<p>&nbsp;</p>
  
&nbsp;
+
<h3><b>1.1.7 Storage&nbsp;[x86 only and RISC is unavailable]</b></h3>
  
=== '''1.1.7 Storage&nbsp;[x86 only and RISC is unavailable]''' ===
+
<p><img _fck_mw_filename="1.1.7 Storage.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.7 Storage.png" height="150" src="/wiki/images/8/83/1.1.7_Storage.png" style="vertical-align:middle;" title="1.1.7 Storage.png" width="100" /></p>
  
[[File:1.1.7 Storage.png|100x150px|1.1.7 Storage.png]]
+
<p>Storage is a non-volatile storage, the storage APIs allows a developer to access storage information, read/write data to storage and lock/unlock data area (same like write protection) by a key.</p>
  
Storage is a non-volatile storage, the storage APIs allows a developer to access storage information, read/write data to storage and lock/unlock data area (same like write protection) by a key.
+
<p>&nbsp;</p>
  
&nbsp;
+
<h3><b>1.1.8 Thermal Protection&nbsp;[x86 only and RISC is unavailable]</b></h3>
  
=== '''1.1.8 Thermal Protection&nbsp;[x86 only and RISC is unavailable]''' ===
+
<p><img _fck_mw_filename="1.1.8 Thermal 1.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.8 Thermal 1.png" height="150" src="/wiki/images/4/47/1.1.8_Thermal_1.png" style="vertical-align:middle;" title="1.1.8 Thermal 1.png" width="100" /> &nbsp; <img _fck_mw_filename="1.1.8 Thermal 2.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.8 Thermal 2.png" height="150" src="/wiki/images/2/21/1.1.8_Thermal_2.png" style="vertical-align:middle;" title="1.1.8 Thermal 2.png" width="100" /></p>
  
[[File:1.1.8 Thermal 1.png|100x150px|1.1.8 Thermal 1.png]] &nbsp; [[File:1.1.8 Thermal 2.png|100x150px|1.1.8 Thermal 2.png]]
+
<p>Thermal Protection can select a thermal source to monitor. When source temperature reach the limit, SUSI can act protect function to protect system.</p>
  
Thermal Protection can select a thermal source to monitor. When source temperature reach the limit, SUSI can act protect function to protect system.
+
<h2><b>1.2 Benefits</b></h2>
  
== '''1.2 Benefits''' ==
+
<ul>
 +
<li><b>Faster Time to Market</b></li>
 +
</ul>
  
*'''Faster Time to Market'''
+
<dl>
 +
<dd>SUSI&#39;s unified API helps developers write applications to control the hardware without knowing the hardware specs of the chipsets and driver architecture.</dd>
 +
</dl>
  
:SUSI's unified API helps developers write applications to control the hardware without knowing the hardware specs of the chipsets and driver architecture.
+
<p>&nbsp;</p>
  
&nbsp;
+
<ul>
 +
<li><b>Reduced Project Effort</b></li>
 +
</ul>
  
*'''Reduced Project Effort'''
+
<dl>
 +
<dd>When customers have their own devices connected to the onboard bus, they can either: study the data sheet and write the driver &amp; API from scratch, or they can use SUSI to start the integration with a 50% head start. Developers can reference the sample program on&nbsp;the CD to see and learn more about the software development environment.</dd>
 +
</dl>
  
:When customers have their own devices connected to the onboard bus, they can either: study the data sheet and write the driver & API from scratch, or they can use SUSI to start the integration with a 50% head start. Developers can reference the sample program on&nbsp;the CD to see and learn more about the software development environment.
+
<p>&nbsp;</p>
  
&nbsp;
+
<ul>
 +
<li><b>Enhances Hardware Platform Reliability</b></li>
 +
</ul>
  
*'''Enhances Hardware Platform Reliability'''
+
<dl>
 +
<dd>SUSI provides a trusted custom ready solution which combines chipset and library function support, controlling application development through SUSI enhances reliability and brings peace of mind.</dd>
 +
</dl>
  
:SUSI provides a trusted custom ready solution which combines chipset and library function support, controlling application development through SUSI enhances reliability and brings peace of mind.
+
<p>&nbsp;</p>
  
&nbsp;
+
<ul>
 +
<li><b>Flexible Upgrade Possibilities</b></li>
 +
</ul>
  
*'''Flexible Upgrade Possibilities'''
+
<dl>
 +
<dd>SUSI supports an easy upgrade solution for customers. Customers just need to install the new version SUSI that supports the new functions.</dd>
 +
</dl>
  
:SUSI supports an easy upgrade solution for customers. Customers just need to install the new version SUSI that supports the new functions.
+
<p>&nbsp;</p>
  
&nbsp;
+
<ul>
 +
<li><b>Backward compatibility</b></li>
 +
</ul>
  
*'''Backward compatibility'''
+
<dl>
 +
<dd>Support SUSI 3.0, iManager 2.0 and EAPI 1.0 interface. Customers don&rsquo;t need to change any APIs in their applications.</dd>
 +
</dl>
  
:Support SUSI 3.0, iManager 2.0 and EAPI 1.0 interface. Customers don’t need to change any APIs in their applications.
+
<h2><b>1.3 Environment Requirements</b></h2>
  
== '''1.3 Environment Requirements''' ==
+
<h3><b>1.3.1Operating Systems</b></h3>
  
=== '''1.3.1Operating Systems''' ===
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Windows XP Embedded</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Windows XP Embedded 
+
<dd>
 +
<dl>
 +
<dd>Windows XP 32-bit</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Windows XP 32-bit 
+
<dd>
 +
<dl>
 +
<dd>Windows 7 (x86 / x64)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Windows 7 (x86 / x64)  
+
<dd>
 +
<dl>
 +
<dd>WES7 (x86 / x64)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::WES7 (x86 / x64)  
+
<dd>
 +
<dl>
 +
<dd>Windows 8 Desktop (x86 / x64)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Windows 8 Desktop (x86 / x64)  
+
<dd>
 +
<dl>
 +
<dd>Windows 10 (x86 / x64)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Windows 10 (x86 / x64) 
+
<dd>
 +
<dl>
 +
<dd>Windows CE 5 / 6 / 7</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Windows CE 5 / 6 /
+
<dd>
 +
<dl>
 +
<dd>RISC Yocto 2.1</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::RISC Yocto 2.1 
+
<dd>
 +
<dl>
 +
<dd>Linux (Project based, request from your local FAE)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Linux (Project based, request from your local FAE)  
+
<dd>
 +
<dl>
 +
<dd>Android (Project based, request from your local FAE)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Android (Project based, request from your local FAE)  
+
<dd>
 +
<dl>
 +
<dd>QNX (Project based, request from your local FAE)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::QNX (Project based, request from your local FAE)  
+
<dd>
 +
<dl>
 +
<dd>VxWorks (Project based, request from your local FAE)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::VxWorks (Project based, request from your local FAE) 
 
  
&nbsp;
+
<h1><b>2 SUSI Definition</b></h1>
  
= '''2 SUSI Definition''' =
+
<p>Susi4.h file includes the API declaration, constants and flags that are required for programming.</p>
  
Susi4.h file includes the API declaration, constants and flags that are required for programming.
+
<h2><b>2.1 Status Codes</b></h2>
  
== '''2.1 Status Codes''' ==
+
<p>All SUSI API functions immediately return a status code from a common list of possible errors. Any function may return any of the defined status codes. See the Appendix for more detailed information.</p>
  
All SUSI API functions immediately return a status code from a common list of possible errors. Any function may return any of the defined status codes. See the Appendix for more detailed information.
+
<p>&nbsp;</p>
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_NOT_INITIALIZED &nbsp;&nbsp; &nbsp;0xFFFFFFFF
 +
</pre>
  
#define SUSI_STATUS_NOT_INITIALIZED &nbsp;&nbsp; &nbsp;0xFFFFFFFF
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>The SUSI API library is not yet or unsuccessfully initialized. SusiLibInitialize needs to be called prior to the first access of any other SUSI API functions.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::The SUSI API library is not yet or unsuccessfully initialized. SusiLibInitialize needs to be called prior to the first access of any other SUSI API functions. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Call SusiLibInitialize.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Call SusiLibInitialize. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_INITIALIZED &nbsp;&nbsp; &nbsp;0xFFFFFFFE
 +
</pre>
  
#define SUSI_STATUS_INITIALIZED &nbsp;&nbsp; &nbsp;0xFFFFFFFE
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Library is initialized.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Library is initialized. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>None.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::None. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_ALLOC_ERROR &nbsp;&nbsp; &nbsp;0xFFFFFFFD
 +
</pre>
  
#define SUSI_STATUS_ALLOC_ERROR &nbsp;&nbsp; &nbsp;0xFFFFFFFD
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Memory Allocation Error.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Memory Allocation Error. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Free memory and try again.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Free memory and try again. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_DRIVER_TIMEOUT 0xFFFFFFFC
 +
</pre>
  
#define SUSI_STATUS_DRIVER_TIMEOUT 0xFFFFFFFC
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Time out in driver. This is Normally caused by hardware/software semaphore timeout.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Time out in driver. This is Normally caused by hardware/software semaphore timeout. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Retry.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Retry. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_INVALID_PARAMETER 0xFFFFFEFF
 +
</pre>
  
#define SUSI_STATUS_INVALID_PARAMETER 0xFFFFFEFF
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>One or more of the SUSI API functions call parameters are out of defined range.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::One or more of the SUSI API functions call parameters are out of defined range. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Verify Function Parameters.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Verify Function Parameters. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_INVALID_BLOCK_ALIGNMENT 0xFFFFFEFE
 +
</pre>
  
#define SUSI_STATUS_INVALID_BLOCK_ALIGNMENT 0xFFFFFEFE
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>The Block Alignment is incorrect.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::The Block Alignment is incorrect. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Use Inputs and Outputs to correctly select input and outputs.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Use Inputs and Outputs to correctly select input and outputs. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_INVALID_BLOCK_LENGTH 0xFFFFFEFD
 +
</pre>
  
#define SUSI_STATUS_INVALID_BLOCK_LENGTH 0xFFFFFEFD
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>This means that the Block length is too long.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::This means that the Block length is too long. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Use Alignment Capabilities information to correctly align write access.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Use Alignment Capabilities information to correctly align write access. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_INVALID_DIRECTION 0xFFFFFEFC
 +
</pre>
  
#define SUSI_STATUS_INVALID_DIRECTION 0xFFFFFEFC
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>The current Direction Argument attempts to set GPIOs to a unsupported direction. I.E. Setting GPI to Output.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::The current Direction Argument attempts to set GPIOs to a unsupported direction. I.E. Setting GPI to Output. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Use Inputs and Outputs to correctly select input and outputs.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Use Inputs and Outputs to correctly select input and outputs. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_INVALID_BITMASK 0xFFFFFEFB
 +
</pre>
  
#define SUSI_STATUS_INVALID_BITMASK 0xFFFFFEFB
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>The Bitmask Selects bits/GPIOs which are not supported for the current ID.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::The Bitmask Selects bits/GPIOs which are not supported for the current ID. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Use Inputs and Outputs to probe supported bits.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Use Inputs and Outputs to probe supported bits. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_RUNNING 0xFFFFFEFA
 +
</pre>
  
#define SUSI_STATUS_RUNNING 0xFFFFFEFA
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Watchdog timer already started.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Watchdog timer already started. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Call SusiWDogStop before retrying.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Call SusiWDogStop before retrying. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_UNSUPPORTED 0xFFFFFCFF
 +
</pre>
  
#define SUSI_STATUS_UNSUPPORTED 0xFFFFFCFF
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>This function or ID is not supported at the actual hardware environment.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::This function or ID is not supported at the actual hardware environment. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>None.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<pre class="_fck_mw_lspace">
::None. 
+
#define SUSI_STATUS_NOT_FOUND 0xFFFFFBFF
 +
</pre>
  
#define SUSI_STATUS_NOT_FOUND 0xFFFFFBFF
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Selected device was not found</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Selected device was not found 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>None.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::None. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_TIMEOUT 0xFFFFFBFE
 +
</pre>
  
#define SUSI_STATUS_TIMEOUT 0xFFFFFBFE
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Device has no response.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Device has no response. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>None.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::None. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_BUSY_COLLISION 0xFFFFFBFD
 +
</pre>
  
#define SUSI_STATUS_BUSY_COLLISION 0xFFFFFBFD
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>The selected device or ID is busy or a data collision is detected.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::The selected device or ID is busy or a data collision is detected. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Retry.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Retry. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_READ_ERROR 0xFFFFFAFF
 +
</pre>
  
#define SUSI_STATUS_READ_ERROR 0xFFFFFAFF
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>An error is detected during a read operation.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::An error is detected during a read operation. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Retry.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Retry. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_WRITE_ERROR 0xFFFFFAFE
 +
</pre>
  
#define SUSI_STATUS_WRITE_ERROR 0xFFFFFAFE
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>An error is detected during a write operation.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::An error is detected during a write operation. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Retry.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Retry. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_MORE_DATA 0xFFFFF9FF
 +
</pre>
  
#define SUSI_STATUS_MORE_DATA 0xFFFFF9FF
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>The amount of available data exceeds the buffer size. Storage buffer overflow was prevented. Read count was larger than the defined buffer length.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::The amount of available data exceeds the buffer size. Storage buffer overflow was prevented. Read count was larger than the defined buffer length. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Either increase the buffer size or reduce the block length.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::Either increase the buffer size or reduce the block length. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_ERROR 0xFFFFF0FF
 +
</pre>
  
#define SUSI_STATUS_ERROR 0xFFFFF0FF
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Generic error message. No further error details are available.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::Generic error message. No further error details are available. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>None.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<p>&nbsp;</p>
::None. 
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_STATUS_SUCCESS 0
 +
</pre>
  
#define SUSI_STATUS_SUCCESS 0
+
<dl>
 +
<dd><b>Description</b></dd>
 +
</dl>
  
:'''Description'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>The operation is successful.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<dl>
::The operation is successful. 
+
<dd><b>Actions</b></dd>
 +
</dl>
  
:'''Actions'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>None.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:
+
<h2><b>2.2 ID</b></h2>
::None.  
 
  
== '''2.2 ID''' ==
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_ID_UNKNOWN 0xFFFFFFFF
 +
</pre>
  
#define SUSI_ID_UNKNOWN 0xFFFFFFFF
+
<dl>
 +
<dd><b>Description</b>
  
:'''Description'''
+
<dl>
::Undefined/Unknown ID  
+
<dd>Undefined/Unknown ID</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
#define SUSI_ID_BOARD_MANUFACTURER_STR 0
+
<pre class="_fck_mw_lspace">
#define SUSI_ID_BOARD_NAME_STR 1
+
#define SUSI_ID_BOARD_MANUFACTURER_STR 0
#define SUSI_ID_BOARD_REVISION_STR 2
+
#define SUSI_ID_BOARD_NAME_STR 1
#define SUSI_ID_BOARD_SERIAL_STR 3
+
#define SUSI_ID_BOARD_REVISION_STR 2
#define SUSI_ID_BOARD_BIOS_REVISION_STR 4
+
#define SUSI_ID_BOARD_SERIAL_STR 3
#define SUSI_ID_BOARD_HW_REVISION_STR 5
+
#define SUSI_ID_BOARD_BIOS_REVISION_STR 4
#define SUSI_ID_BOARD_PLATFORM_TYPE_STR 6
+
#define SUSI_ID_BOARD_HW_REVISION_STR 5
#define SUSI_ID_BOARD_EC_FW_STR 7
+
#define SUSI_ID_BOARD_PLATFORM_TYPE_STR 6
 +
#define SUSI_ID_BOARD_EC_FW_STR 7
 +
</pre>
  
:'''Description'''
+
<dl>
::Board information string ID, use in SusiBoardGetStringA. 
+
<dd><b>Description</b>
  
#define SUSI_ID_GET_SPEC_VERSION&nbsp 0x00000000
+
<dl>
#define SUSI_ID_BOARD_BOOT_COUNTER_VAL 0x00000001
+
<dd>Board information string ID, use in SusiBoardGetStringA.</dd>
#define SUSI_ID_BOARD_RUNNING_TIME_METER_VAL 0x00000002
+
</dl>
#define SUSI_ID_BOARD_PNPID_VAL 0x00000003
+
</dd>
#define SUSI_ID_BOARD_PLATFORM_REV_VAL 0x00000004
+
</dl>
#define SUSI_ID_BOARD_DRIVER_VERSION_VAL 0x00010000
 
#define SUSI_ID_BOARD_LIB_VERSION_VAL 0x00010001
 
#define SUSI_ID_BOARD_FIRMWARE_VERSION_VAL 0x00010002
 
  
:'''Description'''
+
<pre class="_fck_mw_lspace">
::Board information value ID, use in SusiBoardGetValue. 
+
#define SUSI_ID_GET_SPEC_VERSION&amp;nbsp 0x00000000
 +
#define SUSI_ID_BOARD_BOOT_COUNTER_VAL 0x00000001
 +
#define SUSI_ID_BOARD_RUNNING_TIME_METER_VAL 0x00000002
 +
#define SUSI_ID_BOARD_PNPID_VAL 0x00000003
 +
#define SUSI_ID_BOARD_PLATFORM_REV_VAL 0x00000004
 +
#define SUSI_ID_BOARD_DRIVER_VERSION_VAL 0x00010000
 +
#define SUSI_ID_BOARD_LIB_VERSION_VAL 0x00010001
 +
#define SUSI_ID_BOARD_FIRMWARE_VERSION_VAL 0x00010002
 +
</pre>
  
#define SUSI_ID_HWM_TEMP_CPU 0x00020000
+
<dl>
#define SUSI_ID_HWM_TEMP_CHIPSET 0x00020001
+
<dd><b>Description</b>
#define SUSI_ID_HWM_TEMP_SYSTEM 0x00020002
 
#define SUSI_ID_HWM_TEMP_CPU2 0x00020003
 
#define SUSI_ID_HWM_TEMP_OEM0 0x00020004
 
#define SUSI_ID_HWM_TEMP_OEM1 0x00020005
 
#define SUSI_ID_HWM_TEMP_OEM2 0x00020006
 
#define SUSI_ID_HWM_TEMP_OEM3 0x00020007
 
#define SUSI_ID_HWM_TEMP_OEM4 0x00020008
 
#define SUSI_ID_HWM_TEMP_OEM5 0x00020009
 
  
:'''Description'''
+
<dl>
::Board temperature value ID, use in SusiBoardGetValue.  
+
<dd>Board information value ID, use in SusiBoardGetValue.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
#define SUSI_ID_HWM_VOLTAGE_VCORE 0x00021000
+
<pre class="_fck_mw_lspace">
#define SUSI_ID_HWM_VOLTAGE_VCORE2 0x00021001
+
#define SUSI_ID_HWM_TEMP_CPU 0x00020000
#define SUSI_ID_HWM_VOLTAGE_2V5 0x00021002
+
#define SUSI_ID_HWM_TEMP_CHIPSET 0x00020001
#define SUSI_ID_HWM_VOLTAGE_3V3 0x00021003
+
#define SUSI_ID_HWM_TEMP_SYSTEM 0x00020002
#define SUSI_ID_HWM_VOLTAGE_5V 0x00021004
+
#define SUSI_ID_HWM_TEMP_CPU2 0x00020003
#define SUSI_ID_HWM_VOLTAGE_12V 0x00021005
+
#define SUSI_ID_HWM_TEMP_OEM0 0x00020004
#define SUSI_ID_HWM_VOLTAGE_5VSB 0x00021006
+
#define SUSI_ID_HWM_TEMP_OEM1 0x00020005
#define SUSI_ID_HWM_VOLTAGE_3VSB 0x00021007
+
#define SUSI_ID_HWM_TEMP_OEM2 0x00020006
#define SUSI_ID_HWM_VOLTAGE_VBAT 0x00021008
+
#define SUSI_ID_HWM_TEMP_OEM3 0x00020007
#define SUSI_ID_HWM_VOLTAGE_5NV 0x00021009
+
#define SUSI_ID_HWM_TEMP_OEM4 0x00020008
#define SUSI_ID_HWM_VOLTAGE_12NV 0x0002100A
+
#define SUSI_ID_HWM_TEMP_OEM5 0x00020009
#define SUSI_ID_HWM_VOLTAGE_VTT 0x0002100B
+
</pre>
#define SUSI_ID_HWM_VOLTAGE_24V 0x0002100C
 
#define SUSI_ID_HWM_VOLTAGE_DC 0x0002100D
 
#define SUSI_ID_HWM_VOLTAGE_DCSTBY 0x0002100E
 
#define SUSI_ID_HWM_VOLTAGE_OEM3 0x0002100F
 
#define SUSI_ID_HWM_VOLTAGE_OEM0 0x00021010
 
#define SUSI_ID_HWM_VOLTAGE_OEM1 0x00021011
 
#define SUSI_ID_HWM_VOLTAGE_OEM2 0x00021012
 
#define SUSI_ID_HWM_VOLTAGE_OEM3 0x00021013
 
#define SUSI_ID_HWM_VOLTAGE_1V05 0x00021014
 
#define SUSI_ID_HWM_VOLTAGE_1V5 0x00021015
 
#define SUSI_ID_HWM_VOLTAGE_1V8 0x00021016
 
  
:'''Description'''
+
<dl>
::Board voltage value ID, use in SusiBoardGetValue. 
+
<dd><b>Description</b>
  
#define SUSI_ID_HWM_FAN_CPU 0x00022000
+
<dl>
#define SUSI_ID_HWM_FAN_SYSTEM 0x00022001
+
<dd>Board temperature value ID, use in SusiBoardGetValue.</dd>
#define SUSI_ID_HWM_FAN_CPU2 0x00022002
+
</dl>
#define SUSI_ID_HWM_FAN_OEM0 0x00022003
+
</dd>
#define SUSI_ID_HWM_FAN_OEM1 0x00022004
+
</dl>
#define SUSI_ID_HWM_FAN_OEM2 0x00022005
 
#define SUSI_ID_HWM_FAN_OEM3 0x00022006
 
#define SUSI_ID_HWM_FAN_OEM4 0x00022007
 
#define SUSI_ID_HWM_FAN_OEM5 0x00022008
 
#define SUSI_ID_HWM_FAN_OEM6 0x00022009
 
  
:'''Description'''
+
<pre class="_fck_mw_lspace">
::Board fan speed value ID, use in SusiBoardGetValue and Smart Fan Functions. 
+
#define SUSI_ID_HWM_VOLTAGE_VCORE 0x00021000
 +
#define SUSI_ID_HWM_VOLTAGE_VCORE2 0x00021001
 +
#define SUSI_ID_HWM_VOLTAGE_2V5 0x00021002
 +
#define SUSI_ID_HWM_VOLTAGE_3V3 0x00021003
 +
#define SUSI_ID_HWM_VOLTAGE_5V 0x00021004
 +
#define SUSI_ID_HWM_VOLTAGE_12V 0x00021005
 +
#define SUSI_ID_HWM_VOLTAGE_5VSB 0x00021006
 +
#define SUSI_ID_HWM_VOLTAGE_3VSB 0x00021007
 +
#define SUSI_ID_HWM_VOLTAGE_VBAT 0x00021008
 +
#define SUSI_ID_HWM_VOLTAGE_5NV 0x00021009
 +
#define SUSI_ID_HWM_VOLTAGE_12NV 0x0002100A
 +
#define SUSI_ID_HWM_VOLTAGE_VTT 0x0002100B
 +
#define SUSI_ID_HWM_VOLTAGE_24V 0x0002100C
 +
#define SUSI_ID_HWM_VOLTAGE_DC 0x0002100D
 +
#define SUSI_ID_HWM_VOLTAGE_DCSTBY 0x0002100E
 +
#define SUSI_ID_HWM_VOLTAGE_OEM3 0x0002100F
 +
#define SUSI_ID_HWM_VOLTAGE_OEM0 0x00021010
 +
#define SUSI_ID_HWM_VOLTAGE_OEM1 0x00021011
 +
#define SUSI_ID_HWM_VOLTAGE_OEM2 0x00021012
 +
#define SUSI_ID_HWM_VOLTAGE_OEM3 0x00021013
 +
#define SUSI_ID_HWM_VOLTAGE_1V05 0x00021014
 +
#define SUSI_ID_HWM_VOLTAGE_1V5 0x00021015
 +
#define SUSI_ID_HWM_VOLTAGE_1V8 0x00021016
 +
</pre>
  
#define SUSI_ID_HWM_CURRENT_OEM0 0x00023000
+
<dl>
#define SUSI_ID_HWM_CURRENT_OEM1 0x00023001
+
<dd><b>Description</b>
#define SUSI_ID_HWM_CURRENT_OEM2 0x00023002
 
  
:'''Description'''
+
<dl>
::Board current value ID, use in SusiBoardGetValue.  
+
<dd>Board voltage value ID, use in SusiBoardGetValue.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
#define SUSI_ID_SMBUS_SUPPORTED 0x00030000
+
<pre class="_fck_mw_lspace">
#define SUSI_ID_I2C_SUPPORTED 0x00030100
+
#define SUSI_ID_HWM_FAN_CPU 0x00022000
 +
#define SUSI_ID_HWM_FAN_SYSTEM 0x00022001
 +
#define SUSI_ID_HWM_FAN_CPU2 0x00022002
 +
#define SUSI_ID_HWM_FAN_OEM0 0x00022003
 +
#define SUSI_ID_HWM_FAN_OEM1 0x00022004
 +
#define SUSI_ID_HWM_FAN_OEM2 0x00022005
 +
#define SUSI_ID_HWM_FAN_OEM3 0x00022006
 +
#define SUSI_ID_HWM_FAN_OEM4 0x00022007
 +
#define SUSI_ID_HWM_FAN_OEM5 0x00022008
 +
#define SUSI_ID_HWM_FAN_OEM6 0x00022009
 +
</pre>
  
:'''Description'''
+
<dl>
::Board supported information value ID, use in SusiBoardGetValue. 
+
<dd><b>Description</b>
  
#define SUSI_ID_SMBUS_EXTERNAL 0
+
<dl>
#define SUSI_ID_SMBUS_OEM0 1
+
<dd>Board fan speed value ID, use in SusiBoardGetValue and Smart Fan Functions.</dd>
#define SUSI_ID_SMBUS_OEM1 2
+
</dl>
#define SUSI_ID_SMBUS_OEM2 3
+
</dd>
#define SUSI_ID_SMBUS_OEM3 4
+
</dl>
  
:'''Description'''
+
<pre class="_fck_mw_lspace">
::SMBus device ID, use in SMBus Functions. 
+
#define SUSI_ID_HWM_CURRENT_OEM0 0x00023000
 +
#define SUSI_ID_HWM_CURRENT_OEM1 0x00023001
 +
#define SUSI_ID_HWM_CURRENT_OEM2 0x00023002
 +
</pre>
  
#define SUSI_ID_I2C_EXTERNAL 0
+
<dl>
#define SUSI_ID_I2C_OEM0 1
+
<dd><b>Description</b>
#define SUSI_ID_I2C_OEM1 2
 
#define SUSI_ID_I2C_OEM2 3
 
  
:'''Description'''
+
<dl>
::I<sup>2</sup>C device ID, use in I2C Functions.  
+
<dd>Board current value ID, use in SusiBoardGetValue.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
#define SUSI_ID_GPIO(GPIO_NUM) (GPIO_NUM)
+
<pre class="_fck_mw_lspace">
#define SUSI_ID_GPIO_BANK(BANK_NUM) (0x00010000 + BANK_NUM)
+
#define SUSI_ID_SMBUS_SUPPORTED 0x00030000
 +
#define SUSI_ID_I2C_SUPPORTED 0x00030100
 +
</pre>
  
:'''Description'''
+
<dl>
::GPIO device ID, use in GPIO Functions. 
+
<dd><b>Description</b>
  
#define SUSI_ID_BACKLIGHT_1 0
+
<dl>
#define SUSI_ID_BACKLIGHT_2 1
+
<dd>Board supported information value ID, use in SusiBoardGetValue.</dd>
#define SUSI_ID_BACKLIGHT_3 2
+
</dl>
 +
</dd>
 +
</dl>
  
:'''Description'''
+
<pre class="_fck_mw_lspace">
::Backlight device ID, use in Backlight Functions. 
+
#define SUSI_ID_SMBUS_EXTERNAL 0
 +
#define SUSI_ID_SMBUS_OEM0 1
 +
#define SUSI_ID_SMBUS_OEM1 2
 +
#define SUSI_ID_SMBUS_OEM2 3
 +
#define SUSI_ID_SMBUS_OEM3 4
 +
</pre>
  
#define SUSI_ID_STORAGE_STD 0x00000000
+
<dl>
#define SUSI_ID_STORAGE_OEM0 0x00000001
+
<dd><b>Description</b>
#define SUSI_ID_STORAGE_OEM1 0x00000002
 
  
:'''Description'''
+
<dl>
::Storage device ID, use in Storage Functions.  
+
<dd>SMBus device ID, use in SMBus Functions.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
#define SUSI_ID_THERMAL_PROTECT_1 0
+
<pre class="_fck_mw_lspace">
#define SUSI_ID_THERMAL_PROTECT_2 1
+
#define SUSI_ID_I2C_EXTERNAL 0
#define SUSI_ID_THERMAL_PROTECT_3 2
+
#define SUSI_ID_I2C_OEM0 1
#define SUSI_ID_THERMAL_PROTECT_4 3
+
#define SUSI_ID_I2C_OEM1 2
 +
#define SUSI_ID_I2C_OEM2 3
 +
</pre>
  
:'''Description'''
+
<dl>
::Thermal protection device ID, use in Thermal Protection Functions 
+
<dd><b>Description</b>
  
#define SUSI_ID_WATCHDOG_1 0
+
<dl>
#define SUSI_ID_WATCHDOG_2 1
+
<dd>I<sup>2</sup>C device ID, use in I2C Functions.</dd>
#define SUSI_ID_WATCHDOG_3 2
+
</dl>
 +
</dd>
 +
</dl>
  
:'''Description'''
+
<pre class="_fck_mw_lspace">
::Watchdog device ID, use in Watchdog Functions. 
+
#define SUSI_ID_GPIO(GPIO_NUM) (GPIO_NUM)
 +
#define SUSI_ID_GPIO_BANK(BANK_NUM) (0x00010000 + BANK_NUM)
 +
</pre>
  
== '''2.3 Item ID''' ==
+
<dl>
 +
<dd><b>Description</b>
  
#define SUSI_ID_I2C_MAXIMUM_BLOCK_LENGTH 0x00000000
+
<dl>
 +
<dd>GPIO device ID, use in GPIO Functions.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Description'''
+
<pre class="_fck_mw_lspace">
::Watchdog capabilities item ID, use in SusiI2CGetCaps. 
+
#define SUSI_ID_BACKLIGHT_1 0
 +
#define SUSI_ID_BACKLIGHT_2 1
 +
#define SUSI_ID_BACKLIGHT_3 2
 +
</pre>
  
#define SUSI_ID_GPIO_INPUT_SUPPORT 0x00000000
+
<dl>
#define SUSI_ID_GPIO_OUTPUT_SUPPORT 0x00000001
+
<dd><b>Description</b>
  
:'''Description'''
+
<dl>
::GPIO capabilities item ID, use in SusiGPIOGetCaps.  
+
<dd>Backlight device ID, use in Backlight Functions.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
#define SUSI_ID_VGA_BRIGHTNESS_MAXIMUM 0x00010000
+
<pre class="_fck_mw_lspace">
#define SUSI_ID_VGA_BRIGHTNESS_MINIMUM 0x00010001
+
#define SUSI_ID_STORAGE_STD 0x00000000
 +
#define SUSI_ID_STORAGE_OEM0 0x00000001
 +
#define SUSI_ID_STORAGE_OEM1 0x00000002
 +
</pre>
  
:'''Description'''
+
<dl>
::VGA capabilities item ID, use in SusiVgaGetCaps. 
+
<dd><b>Description</b>
  
#define SUSI_ID_STORAGE_TOTAL_SIZE 0x00000000
+
<dl>
#define SUSI_ID_STORAGE_BLOCK_SIZE 0x00000001
+
<dd>Storage device ID, use in Storage Functions.</dd>
#define SUSI_ID_STORAGE_LOCK_STATUS 0x00010000
+
</dl>
#define SUSI_ID_STORAGE_PSW_MAX_LEN 0x00010000
+
</dd>
 +
</dl>
  
:'''Description'''
+
<pre class="_fck_mw_lspace">
::Storage capabilities item ID, use in SusiStorageGetCaps. 
+
#define SUSI_ID_THERMAL_PROTECT_1 0
 +
#define SUSI_ID_THERMAL_PROTECT_2 1
 +
#define SUSI_ID_THERMAL_PROTECT_3 2
 +
#define SUSI_ID_THERMAL_PROTECT_4 3
 +
</pre>
  
#define SUSI_ID_WDT_SUPPORT_FLAGS 0x00000000
+
<dl>
#define SUSI_ID_WDT_DELAY_MAXIMUM 0x00000001
+
<dd><b>Description</b>
#define SUSI_ID_WDT_DELAY_MINIMUM 0x00000002
 
#define SUSI_ID_WDT_EVENT_MAXIMUM 0x00000003
 
#define SUSI_ID_WDT_EVENT_MINIMUM 0x00000004
 
#define SUSI_ID_WDT_RESET_MAXIMUM 0x00000005
 
#define SUSI_ID_WDT_RESET_MINIMUM 0x00000006
 
#define SUSI_ID_WDT_UNIT_MINIMUM 0x0000000F
 
#define SUSI_ID_WDT_DELAY_TIME 0x00010001
 
#define SUSI_ID_WDT_EVENT_TIME 0x00010002
 
#define SUSI_ID_WDT_RESET_TIME 0x00010003
 
#define SUSI_ID_WDT_EVENT_TYPE 0x00010004
 
  
:'''Description'''
+
<dl>
::Watchdog capabilities item ID, use in SusiWDogGetCaps. 
+
<dd>Thermal protection device ID, use in Thermal Protection Functions</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
#define SUSI_ID_FC_CONTROL_SUPPORT_FLAGS 0x00000000
+
<pre class="_fck_mw_lspace">
#define SUSI_ID_FC_AUTO_SUPPORT_FLAGS 0x00000001
+
#define SUSI_ID_WATCHDOG_1 0
 +
#define SUSI_ID_WATCHDOG_2 1
 +
#define SUSI_ID_WATCHDOG_3 2
 +
</pre>
  
:'''Description'''
+
<dl>
::Fan control capabilities item ID, use in SusiFanControlGetCaps. 
+
<dd><b>Description</b>
  
#define SUSI_ID_TP_EVENT_SUPPORT_FLAGS 0x00000000
+
<dl>
#define SUSI_ID_TP_EVENT_TRIGGER_MAXIMUM 0x00000001
+
<dd>Watchdog device ID, use in Watchdog Functions.</dd>
#define SUSI_ID_TP_EVENT_TRIGGER_MINIMUM 0x00000002
+
</dl>
#define SUSI_ID_TP_EVENT_CLEAR_MAXIMUM 0x00000003
+
</dd>
#define SUSI_ID_TP_EVENT_CLEAR_MINIMUM 0x00000004
+
</dl>
  
:'''Description'''
+
<h2><b>2.3 Item ID</b></h2>
::Thermal protection capabilities item ID, use in SusiThermalProtectionGetCaps. 
 
  
= '''3 SUSI API''' =
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_ID_I2C_MAXIMUM_BLOCK_LENGTH 0x00000000
 +
</pre>
  
The SUSI APIs provide functions to control ADVANTECH platforms. SUSI API functions are based on a dynamic library. SUSI API can be implemented in various other programming languages.
+
<dl>
 +
<dd><b>Description</b>
  
== '''3.1 Initialization Functions''' ==
+
<dl>
 +
<dd>Watchdog capabilities item ID, use in SusiI2CGetCaps.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
=== '''3.1.1 SusiLibInitialize''' ===
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_ID_GPIO_INPUT_SUPPORT 0x00000000
 +
#define SUSI_ID_GPIO_OUTPUT_SUPPORT 0x00000001
 +
</pre>
  
uint32_t SUSI_API SusiLibInitialize(void)
+
<dl>
 +
<dd><b>Description</b>
  
:'''Description:'''
+
<dl>
::General initialization of the SUSI API. Prior to calling any SUSI API functions, the library needs to be initialized by calling this function. The status code for all SUSI API function will be SUSI_STATUS_NOT_INITIALIZED unless this function is called. 
+
<dd>GPIO capabilities item ID, use in SusiGPIOGetCaps.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
 +
<pre class="_fck_mw_lspace">
 +
#define SUSI_ID_VGA_BRIGHTNESS_MAXIMUM 0x00010000
 +
#define SUSI_ID_VGA_BRIGHTNESS_MINIMUM 0x00010001
 +
</pre>
  
:'''Parameters:'''
+
<dl>
::None 
+
<dd><b>Description</b>
&nbsp;
 
  
 +
<dl>
 +
<dd>VGA capabilities item ID, use in SusiVgaGetCaps.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Return Status Code:'''
+
<pre class="_fck_mw_lspace">
 +
#define SUSI_ID_STORAGE_TOTAL_SIZE 0x00000000
 +
#define SUSI_ID_STORAGE_BLOCK_SIZE 0x00000001
 +
#define SUSI_ID_STORAGE_LOCK_STATUS 0x00010000
 +
#define SUSI_ID_STORAGE_PSW_MAX_LEN 0x00010000
 +
</pre>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Description</b>
| <tbody>
 
|-
 
| style="width:255px;" |
 
'''Condition'''
 
  
| style="width:340px;" |
+
<dl>
'''Return Value'''
+
<dd>Storage capabilities item ID, use in SusiStorageGetCaps.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:255px;" |
+
#define SUSI_ID_WDT_SUPPORT_FLAGS 0x00000000
Library initialized
+
#define SUSI_ID_WDT_DELAY_MAXIMUM 0x00000001
 +
#define SUSI_ID_WDT_DELAY_MINIMUM 0x00000002
 +
#define SUSI_ID_WDT_EVENT_MAXIMUM 0x00000003
 +
#define SUSI_ID_WDT_EVENT_MINIMUM 0x00000004
 +
#define SUSI_ID_WDT_RESET_MAXIMUM 0x00000005
 +
#define SUSI_ID_WDT_RESET_MINIMUM 0x00000006
 +
#define SUSI_ID_WDT_UNIT_MINIMUM 0x0000000F
 +
#define SUSI_ID_WDT_DELAY_TIME 0x00010001
 +
#define SUSI_ID_WDT_EVENT_TIME 0x00010002
 +
#define SUSI_ID_WDT_RESET_TIME 0x00010003
 +
#define SUSI_ID_WDT_EVENT_TYPE 0x00010004
 +
</pre>
  
| style="width:340px;" |
+
<dl>
SUSI_STATUS_INITIALIZED
+
<dd><b>Description</b>
  
|-
+
<dl>
| style="width:255px;" |
+
<dd>Watchdog capabilities item ID, use in SusiWDogGetCaps.</dd>
Fail
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:340px;" |
+
<pre class="_fck_mw_lspace">
SUSI_STATUS_NOT_INITIALIZED
+
#define SUSI_ID_FC_CONTROL_SUPPORT_FLAGS 0x00000000
 +
#define SUSI_ID_FC_AUTO_SUPPORT_FLAGS 0x00000001
 +
</pre>
  
|-
+
<dl>
| style="width:255px;" |
+
<dd><b>Description</b>
Success
 
  
| style="width:340px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd>Fan control capabilities item ID, use in SusiFanControlGetCaps.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<pre class="_fck_mw_lspace">
| </tbody>
+
#define SUSI_ID_TP_EVENT_SUPPORT_FLAGS 0x00000000
|}
+
#define SUSI_ID_TP_EVENT_TRIGGER_MAXIMUM 0x00000001
 +
#define SUSI_ID_TP_EVENT_TRIGGER_MINIMUM 0x00000002
 +
#define SUSI_ID_TP_EVENT_CLEAR_MAXIMUM 0x00000003
 +
#define SUSI_ID_TP_EVENT_CLEAR_MINIMUM 0x00000004
 +
</pre>
  
&nbsp;
+
<dl>
 +
<dd><b>Description</b>
  
=== '''3.1.2 SusiLibUninitialize''' ===
+
<dl>
 +
<dd>Thermal protection capabilities item ID, use in SusiThermalProtectionGetCaps.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiLibUninitialize(void)
+
<h1><b>3 SUSI API</b></h1>
  
:'''Description:'''
+
<p>The SUSI APIs provide functions to control ADVANTECH platforms. SUSI API functions are based on a dynamic library. SUSI API can be implemented in various other programming languages.</p>
::General function to uninitialize the SUSI API library that should be called before program exit.
 
&nbsp;
 
  
 +
<h2><b>3.1 Initialization Functions</b></h2>
  
:'''Parameters:'''
+
<h3><b>3.1.1 SusiLibInitialize</b></h3>
::None 
 
&nbsp;
 
  
 +
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiLibInitialize(void)
 +
</pre>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd><b>Description:</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>General initialization of the SUSI API. Prior to calling any SUSI API functions, the library needs to be initialized by calling this function. The status code for all SUSI API function will be SUSI_STATUS_NOT_INITIALIZED unless this function is called.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:255px;" |
+
</dl>
'''Condition'''
 
  
| style="width:340px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:255px;" |
 
Library uninitialized
 
  
| style="width:340px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:255px;" |
+
<dd>None</dd>
Success
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:340px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
== '''3.2 Information Functions''' ==
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
=== '''3.2.1 SusiBoardGetValue''' ===
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td style="width:255px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:340px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Library initialized</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI_STATUS_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Fail</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
uint32_t SUSI_API SusiBoardGetValue(uint32_t Id, uint32_t *pValue)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<h3><b>3.1.2 SusiLibUninitialize</b></h3>
::Getting information about the hardware platform in value format.
 
&nbsp;
 
  
 +
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiLibUninitialize(void)
 +
</pre>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Description:</b>
:::Selects target value. See Table 1 to Table 5. 
 
&nbsp;
 
  
::'''pValue'''
+
<dl>
:::Pointer to a buffer that receives the value's data.
+
<dd>General function to uninitialize the SUSI API library that should be called before program exit.</dd>
&nbsp;
+
</dl>
+
</dd>
&nbsp;
+
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Parameters:</b>
| <tbody>
 
|-
 
| style="width:255px;" |
 
'''Condition'''
 
  
| style="width:340px;" |
+
<dl>
'''Return Value'''
+
<dd>None</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:255px;" |
 
Library uninitialized
 
  
| style="width:340px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:255px;" |
+
<dd><b>Return Status Code:</b></dd>
pValue==NULL
+
</dl>
  
| style="width:340px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI _STATUS_INVALID_PARAMETER
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:340px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<h2><b>3.2 Information Functions</b></h2>
| style="width:255px;" |
 
Unknown Id
 
  
| style="width:340px;" |
+
<h3><b>3.2.1 SusiBoardGetValue</b></h3>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:255px;" |
+
uint32_t SUSI_API SusiBoardGetValue(uint32_t Id, uint32_t *pValue)
Device unsupported
+
</pre>
  
| style="width:340px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:255px;" |
+
<dd>Getting information about the hardware platform in value format.</dd>
Success
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:340px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
&nbsp;
+
<dl>
 +
<dd><b>Parameters:</b>
  
:'''Table 1 Board information value ID'''
+
<dl>
 +
<dd><b>Id</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>Selects target value. See Table 1 to Table 5.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:317px;" |
+
</dl>
'''Id'''
+
</dd>
 +
</dl>
  
| style="width:197px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
| style="width:85px;" |
+
<dl>
'''Unit'''
+
<dd>
 +
<dl>
 +
<dd><b>pValue</b>
  
|-
+
<dl>
| style="width:317px;" |
+
<dd>Pointer to a buffer that receives the value&#39;s data.</dd>
SUSI_ID_GET_SPEC_VERSION
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:197px;" |
+
<p>&nbsp;</p>
API Specification Version
 
  
| style="width:85px;" |
+
<p>&nbsp;</p>
&nbsp;
 
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_BOARD_BOOT_COUNTER_VAL
 
  
| style="width:197px;" |
+
<dl>
Boot Counter
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
| style="width:85px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
boot
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:340px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>pValue==NULL</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:255px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_BOARD_RUNNING_TIME_METER_VAL
 
  
| style="width:197px;" |
+
<dl>
Running Time Meter
+
<dd><b>Table 1 Board information value ID</b></dd>
 +
</dl>
  
| style="width:85px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
hour
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:197px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:85px;">
 +
<p><b>Unit</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_GET_SPEC_VERSION</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>API Specification Version</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>&nbsp;</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_BOARD_BOOT_COUNTER_VAL</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Boot Counter</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>boot</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_BOARD_RUNNING_TIME_METER_VAL</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Running Time Meter</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>hour</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_BOARD_PNPID_VAL</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Board Vendor PNPID</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>&nbsp;</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_BOARD_PLATFORM_REV_VAL</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Platform revision</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>&nbsp;</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_BOARD_DRIVER_VERSION_VAL</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Driver version</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>&nbsp;</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_BOARD_LIB_VERSION_VAL</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Library version</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>&nbsp;</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_BOARD_FIRMWARE_VERSION_VAL</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Firmware version</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>&nbsp;</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_BOARD_PNPID_VAL
 
  
| style="width:197px;" |
+
<dl>
Board Vendor PNPID
+
<dd><b>Table 2 Board voltage value ID</b></dd>
 +
</dl>
  
| style="width:85px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
&nbsp;
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:197px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:85px;">
 +
<p><b>Unit</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_VCORE</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>CPU Core voltage</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_VCORE2&nbsp;</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Second CPU Core voltage</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_2V5</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>2.5V</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_3V3</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>3.3V</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_5V</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>5V</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_12V</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>12V</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_5VSB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>5V Standby</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_3VSB</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>3V Standby</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_VBAT</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>CMOS Battery voltage</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_5NV</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>-5V</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_12NV</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>-12V</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_VTT</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>DIMM voltage</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_24V</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>24V</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_VOLTAGE_OEM0~3</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Other voltages</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>millivolt</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_BOARD_PLATFORM_REV_VAL
 
  
| style="width:197px;" |
+
<dl>
Platform revision
+
<dd><b>Table 3 Board temperature value ID</b></dd>
 +
</dl>
  
| style="width:85px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
&nbsp;
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:197px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:85px;">
 +
<p><b>Unit</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_TEMP_CPU</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>CPU temperature</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>0.1 Kelvin</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_TEMP_CHIPSET</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Chipset temperature</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>0.1 Kelvin</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_TEMP_SYSTEM</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>System temperature</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>0.1 Kelvin</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_TEMP_CPU2</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>CPU2 temperature</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>0.1 Kelvin</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_TEMP_OEM0~5</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Other temperatures</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>0.1 Kelvin</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_BOARD_DRIVER_VERSION_VAL
 
  
| style="width:197px;" |
+
<dl>
Driver version
+
<dd><b>Table 4 Board fan speed value ID</b></dd>
 +
</dl>
  
| style="width:85px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
&nbsp;
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:197px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:85px;">
 +
<p><b>Unit</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_FAN_CPU</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>CPU fan speed</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>RPM</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_FAN_SYSTEM</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>System fan speed</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>RPM</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_FAN_CPU2</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Second CPU fan speed</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>RPM</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:317px;">
 +
<p>SUSI_ID_HWM_FAN_OEM0~6</p>
 +
</td>
 +
<td style="width:197px;">
 +
<p>Other fans</p>
 +
</td>
 +
<td style="width:85px;">
 +
<p>RPM</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_BOARD_LIB_VERSION_VAL
 
  
| style="width:197px;" |
+
<dl>
Library version
+
<dd><b>Table 5 Board support information value ID</b></dd>
 +
</dl>
  
| style="width:85px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
&nbsp;
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:283px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_SMBUS_SUPPORTED</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Mask flags:</p>
  
|-
+
<p>SUSI_SMBUS_EXTERNAL_SUPPORTED</p>
| style="width:317px;" |
 
SUSI_ID_BOARD_FIRMWARE_VERSION_VAL
 
  
| style="width:197px;" |
+
<p>SUSI_SMBUS_OEM0_SUPPORTED</p>
Firmware version
 
  
| style="width:85px;" |
+
<p>SUSI_SMBUS_OEM1_SUPPORTED</p>
&nbsp;
 
  
|-
+
<p>SUSI_SMBUS_OEM2_SUPPORTED</p>
| </tbody>
 
|}
 
  
&nbsp;
+
<p>SUSI_SMBUS_OEM3_SUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_I2C_SUPPORTED</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Mask flags:</p>
  
:'''Table 2 Board voltage value ID'''
+
<p>SUSI_ I2C_EXTERNAL_SUPPORTED</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>SUSI_ I2C_OEM0_SUPPORTED</p>
|-
 
| <tbody>
 
|-
 
| style="width:317px;" |
 
'''Id'''
 
  
| style="width:197px;" |
+
<p>SUSI_ I2C_OEM1_SUPPORTED</p>
'''Description'''
 
  
| style="width:85px;" |
+
<p>SUSI_ I2C_OEM2_SUPPORTED</p>
'''Unit'''
+
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<h3><b>3.2.2 SusiBoardGetStringA</b></h3>
| style="width:317px;" |
 
SUSI_ID_HWM_VOLTAGE_VCORE
 
  
| style="width:197px;" |
+
<pre class="_fck_mw_lspace">
CPU Core voltage
+
uint32_t SUSI_API SusiBoardGetStringA(uint32_t Id, char *pBuffer, uint32_t *pBufLen)
 +
</pre>
  
| style="width:85px;" |
+
<dl>
millivolt
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:317px;" |
+
<dd>Text information about the hardware platform.</dd>
SUSI_ID_HWM_VOLTAGE_VCORE2&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:197px;" |
+
<p>&nbsp;</p>
Second CPU Core voltage
 
  
| style="width:85px;" |
+
<p>&nbsp;</p>
millivolt
 
  
|-
+
<dl>
| style="width:317px;" |
+
<dd><b>Parameters:</b>
SUSI_ID_HWM_VOLTAGE_2V5
 
  
| style="width:197px;" |
+
<dl>
2.5V
+
<dd><b>Id</b>
  
| style="width:85px;" |
+
<dl>
millivolt
+
<dd>Selects target string. See Table 6.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_HWM_VOLTAGE_3V3
 
  
| style="width:197px;" |
+
<dl>
3.3V
+
<dd>
 +
<dl>
 +
<dd><b>pBuffer</b>
  
| style="width:85px;" |
+
<dl>
millivolt
+
<dd>Pointer to a buffer that receives the value&#39;s data.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_HWM_VOLTAGE_5V
 
  
| style="width:197px;" |
+
<dl>
5V
+
<dd>
 +
<dl>
 +
<dd><b>pBufLen</b>
  
| style="width:85px;" |
+
<dl>
millivolt
+
<dd>Pointer to a variable that specifies the size, in bytes, of the buffer pointed to by the pBuffer parameter. When the function returns, this variable contains the size of the data copied to pBuffer including the terminating null character.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_HWM_VOLTAGE_12V
 
  
| style="width:197px;" |
+
<p>&nbsp;</p>
12V
 
  
| style="width:85px;" |
+
<p>&nbsp;</p>
millivolt
 
  
|-
+
<dl>
| style="width:317px;" |
+
<dd><b>Return Status Code:</b></dd>
SUSI_ID_HWM_VOLTAGE_5VSB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
</dl>
  
| style="width:197px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
5V Standby
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBufLen==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBufLen!=NULL&amp;&amp;*pBufLen&amp;&amp;pBuffer==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>strlength + 1 &gt; *pBufLen</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_MORE_DATA</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:85px;" |
+
<p>&nbsp;</p>
millivolt
 
  
|-
+
<dl>
| style="width:317px;" |
+
<dd><b>Table 6 Board information string ID</b></dd>
SUSI_ID_HWM_VOLTAGE_3VSB
+
</dl>
  
| style="width:197px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
3V Standby
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:283px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BOARD_MANUFACTURER_STR</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Board Manufacturer Name</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BOARD_NAME_STR</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Board Name</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BOARD_REVISION_STR</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Board Revision</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BOARD_SERIAL_STR</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Board Serial Number</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BOARD_BIOS_REVISION_STR</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Board BIOS Revision</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BOARD_HW_REVISION_STR</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Hardware Revision</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BOARD_PLATFORM_TYPE_STR</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Platform type</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BOARD_EC_FW_STR</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>EC FW</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:85px;" |
+
<h2><b>3.3 Backlight Functions</b></h2>
millivolt
 
  
|-
+
<p>This function sub set facilitates backlight control for Integrated flat panel displays, typically LVDS.</p>
| style="width:317px;" |
 
SUSI_ID_HWM_VOLTAGE_VBAT
 
  
| style="width:197px;" |
+
<dl>
CMOS Battery voltage
+
<dd><b>Table 7 Backlight ID</b></dd>
 +
</dl>
  
| style="width:85px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
millivolt
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:283px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BACKLIGHT_1</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Backlight Local Flat Panel 1</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BACKLIGHT_2</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Backlight Local Flat Panel 2</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_BACKLIGHT_3</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Backlight Local Flat Panel 3</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<dl>
| style="width:317px;" |
+
<dd><b>Table 8 Backlight Enable Values</b></dd>
SUSI_ID_HWM_VOLTAGE_5NV
+
</dl>
  
| style="width:197px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
-5V
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p><b>Name</b></p>
 +
</td>
 +
<td style="width:283px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_BACKLIGHT_SET_ON</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Signifies that the Backlight be Enabled</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_BACKLIGHT_SET_OFF</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Signifies that the Backlight be Disabled</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:85px;" |
+
<h3><b>3.3.1 SusiVgaGetCaps</b></h3>
millivolt
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:317px;" |
+
uint32_t SUSI_API SusiVgaGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue);
SUSI_ID_HWM_VOLTAGE_12NV
+
</pre>
  
| style="width:197px;" |
+
<dl>
-12V
+
<dd><b>Description:</b>
  
| style="width:85px;" |
+
<dl>
millivolt
+
<dd>Gets VGA capabilities.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_HWM_VOLTAGE_VTT
 
  
| style="width:197px;" |
+
<p>&nbsp;</p>
DIMM voltage
 
  
| style="width:85px;" |
+
<dl>
millivolt
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:317px;" |
+
<dd><b>Id</b>
SUSI_ID_HWM_VOLTAGE_24V
 
  
| style="width:197px;" |
+
<dl>
24V
+
<dd>Selects target device. See Table 7.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:85px;" |
+
<p>&nbsp;</p>
millivolt
 
  
|-
+
<dl>
| style="width:317px;" |
+
<dd>
SUSI_ID_HWM_VOLTAGE_OEM0~3
+
<dl>
 +
<dd><b>ItemId</b>
  
| style="width:197px;" |
+
<dl>
Other voltages
+
<dd>Selects target capability. See Table 9.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:85px;" |
+
<p>&nbsp;</p>
millivolt
 
  
|-
+
<dl>
| </tbody>
+
<dd>
|}
+
<dl>
 +
<dd><b>pValue</b>
  
&nbsp;
+
<dl>
 +
<dd>Pointer to a buffer that receives the target capability.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Table 3 Board temperature value ID'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:317px;" |
 
'''Id'''
 
  
| style="width:197px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
| style="width:85px;" |
+
<dl>
'''Unit'''
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:317px;" |
+
<tbody>
SUSI_ID_HWM_TEMP_CPU
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pValue==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id or ItemId</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:197px;" |
+
<dl>
CPU temperature
+
<dd><b>Table 9 VGA capabilities item Id</b></dd>
 +
</dl>
  
| style="width:85px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
0.1 Kelvin
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Item Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_VGA_BRIGHTNESS_MAXIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Maximum backlight value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_VGA_BRIGHTNESS_MINIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Minimum backlight value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<h3><b>3.3.2 SusiVgaGetBacklightEnable</b></h3>
| style="width:317px;" |
 
SUSI_ID_HWM_TEMP_CHIPSET
 
  
| style="width:197px;" |
+
<pre class="_fck_mw_lspace">
Chipset temperature
+
uint32_t SUSI_API SusiVgaGetBacklightEnable(uint32_t Id, uint32_t *pEnable)
 +
</pre>
  
| style="width:85px;" |
+
<dl>
0.1 Kelvin
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:317px;" |
+
<dd>Gets current Backlight Enable state for specified Flat Panel.</dd>
SUSI_ID_HWM_TEMP_SYSTEM
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:197px;" |
+
<p>&nbsp;</p>
System temperature
 
  
| style="width:85px;" |
+
<p>&nbsp;</p>
0.1 Kelvin
 
  
|-
+
<dl>
| style="width:317px;" |
+
<dd><b>Parameters:</b>
SUSI_ID_HWM_TEMP_CPU2
 
  
| style="width:197px;" |
+
<dl>
CPU2 temperature
+
<dd><b>Id</b>
  
| style="width:85px;" |
+
<dl>
0.1 Kelvin
+
<dd>Selects target device. See Table 7.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_HWM_TEMP_OEM0~5
 
  
| style="width:197px;" |
+
<dl>
Other temperatures
+
<dd>
 +
<dl>
 +
<dd><b>pEnable</b>
  
| style="width:85px;" |
+
<dl>
0.1 Kelvin
+
<dd>Pointer to a buffer that receives the current backlight enable state. See Table 8.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
&nbsp;
+
<p>&nbsp;</p>
  
:'''Table 4 Board fan speed value ID'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Return Status Code:</b></dd>
| <tbody>
+
</dl>
|-
 
| style="width:317px;" |
 
'''Id'''
 
  
| style="width:197px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
'''Description'''
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pEnable==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:85px;" |
+
<h3><b>3.3.3 SusiVgaSetBacklightEnable</b></h3>
'''Unit'''
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:317px;" |
+
uint32_t SUSI_API SusiVgaSetBacklightEnable(uint32_t Id, uint32_t Enable)
SUSI_ID_HWM_FAN_CPU
+
</pre>
  
| style="width:197px;" |
+
<dl>
CPU fan speed
+
<dd><b>Description:</b>
  
| style="width:85px;" |
+
<dl>
RPM
+
<dd>Enables or disable the backlight of the selected flat panel display</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:317px;" |
 
SUSI_ID_HWM_FAN_SYSTEM
 
  
| style="width:197px;" |
+
<p>&nbsp;</p>
System fan speed
 
  
| style="width:85px;" |
+
<dl>
RPM
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:317px;" |
+
<dd><b>Id</b>
SUSI_ID_HWM_FAN_CPU2
 
  
| style="width:197px;" |
+
<dl>
Second CPU fan speed
+
<dd>Selects target device. See Table 7.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:85px;" |
+
<p>&nbsp;</p>
RPM
 
  
|-
+
<dl>
| style="width:317px;" |
+
<dd>
SUSI_ID_HWM_FAN_OEM0~6
+
<dl>
 +
<dd><b>Enable</b>
  
| style="width:197px;" |
+
<dl>
Other fans
+
<dd>Backlight Enable options. See Table 8.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:85px;" |
+
<p>&nbsp;</p>
RPM
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
&nbsp;
+
<p>&nbsp;</p>
  
:'''Table 5 Board support information value ID'''
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
|-
+
<tbody>
| <tbody>
+
<tr>
|-
+
<td>&lt;tbody&gt;</td>
| style="width:316px;" |
+
</tr>
'''Id'''
+
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:283px;" |
+
<h3><b>3.3.4 SusiVgaGetBacklightBrightness</b></h3>
'''Description'''
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:316px;" |
+
uint32_t SUSI_API SusiVgaGetBacklightBrightness(uint32_t Id, uint32_t *pBright)
SUSI_ID_SMBUS_SUPPORTED
+
</pre>
  
| style="width:283px;" |
+
<dl>
Mask flags:
+
<dd><b>Description:</b>
  
SUSI_SMBUS_EXTERNAL_SUPPORTED
+
<dl>
 +
<dd>Reads the current brightness of the selected flat panel display.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
SUSI_SMBUS_OEM0_SUPPORTED
+
<p>&nbsp;</p>
  
SUSI_SMBUS_OEM1_SUPPORTED
+
<p>&nbsp;</p>
  
SUSI_SMBUS_OEM2_SUPPORTED
+
<dl>
 +
<dd><b>Parameters:</b>
  
SUSI_SMBUS_OEM3_SUPPORTED
+
<dl>
 +
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:316px;" |
+
<dd>Selects target device. See Table 7.</dd>
SUSI_ID_I2C_SUPPORTED
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:283px;" |
+
<p>&nbsp;</p>
Mask flags:
 
  
SUSI_ I2C_EXTERNAL_SUPPORTED
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pBright</b>
  
SUSI_ I2C_OEM0_SUPPORTED
+
<dl>
 +
<dd>Pointer to a buffer that receives the current backlight brightness value.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
SUSI_ I2C_OEM1_SUPPORTED
+
<p>&nbsp;</p>
  
SUSI_ I2C_OEM2_SUPPORTED
+
<p>&nbsp;</p>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
=== '''3.2.2 SusiBoardGetStringA''' ===
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
uint32_t SUSI_API SusiBoardGetStringA(uint32_t Id, char *pBuffer, uint32_t *pBufLen)
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBright==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Description:'''
+
<h3><b>3.3.5 SusiVgaSetBacklightBrightness</b></h3>
::Text information about the hardware platform.
 
&nbsp;
 
  
 +
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiVgaSetBacklightBrightness(uint32_t Id, uint32_t Bright)
 +
</pre>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Description:</b>
:::Selects target string. See Table 6. 
 
&nbsp;
 
  
::'''pBuffer'''
+
<dl>
:::Pointer to a buffer that receives the value's data.
+
<dd>Reads the current brightness of the selected flat panel display.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
::'''pBufLen'''
+
<p>&nbsp;</p>
:::Pointer to a variable that specifies the size, in bytes, of the buffer pointed to by the pBuffer parameter. When the function returns, this variable contains the size of the data copied to pBuffer including the terminating null character. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd><b>Parameters:</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Id</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Selects target device. See Table 7.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>
 +
<dl>
 +
<dd><b>Bright</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Backlight Brightness value.</dd>
pBufLen==NULL
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
pBufLen!=NULL&&*pBufLen&&pBuffer==NULL
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Unknown Id
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI _STATUS_UNSUPPORTED
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bright &gt; MAX value || Bright &lt; MIN value</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<h3><b>3.3.6 SusiVgaGetBacklightLevel</b></h3>
| style="width:293px;" |
 
Device unsupported
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
SUSI _STATUS_UNSUPPORTED
+
uint32_t SUSI_API SusiVgaGetBacklightLevel(uint32_t Id, uint32_t *pLevel)
 +
</pre>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Description:</b>
strlength + 1 > *pBufLen
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_MORE_DATA
+
<dd>Reads the current brightness level of the selected flat panel display.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<dl>
| </tbody>
+
<dd><b>Parameters:</b>
|}
 
  
&nbsp;
+
<dl>
 +
<dd><b>Id</b>
  
:'''Table 6 Board information string ID'''
+
<dl>
 +
<dd>Selects target device. See Table 7.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:316px;" |
 
'''Id'''
 
  
| style="width:283px;" |
+
<dl>
'''Description'''
+
<dd>
 +
<dl>
 +
<dd><b>pLevel</b>
  
|-
+
<dl>
| style="width:316px;" |
+
<dd>Pointer to a buffer that receives the current backlight brightness level. See Table 10.</dd>
SUSI_ID_BOARD_MANUFACTURER_STR
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:283px;" |
+
<p>&nbsp;</p>
Board Manufacturer Name
 
  
|-
+
<p>&nbsp;</p>
| style="width:316px;" |
 
SUSI_ID_BOARD_NAME_STR
 
  
| style="width:283px;" |
+
<p>&nbsp;</p>
Board Name
 
  
|-
+
<dl>
| style="width:316px;" |
+
<dd><b>Return Status Code:</b></dd>
SUSI_ID_BOARD_REVISION_STR
+
</dl>
  
| style="width:283px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
Board Revision
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pLevel==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<dl>
| style="width:316px;" |
+
<dd><b>Table 10 Brightness level range definition</b></dd>
SUSI_ID_BOARD_SERIAL_STR
+
</dl>
  
| style="width:283px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
Board Serial Number
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Name</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_BACKLIGHT_LEVEL_MAXIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Maximum backlight level is 9</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_BACKLIGHT_LEVEL_MINIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Minimum backlight level is 0</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<h3><b>3.3.7 SusiVgaSetBacklightLevel</b></h3>
| style="width:316px;" |
 
SUSI_ID_BOARD_BIOS_REVISION_STR
 
  
| style="width:283px;" |
+
<pre class="_fck_mw_lspace">
Board BIOS Revision
+
uint32_t SUSI_API SusiVgaSetBacklightLevel(uint32_t Id, uint32_t Level)
 +
</pre>
  
|-
+
<dl>
| style="width:316px;" |
+
<dd><b>Description:</b>
SUSI_ID_BOARD_HW_REVISION_STR
 
  
| style="width:283px;" |
+
<dl>
Hardware Revision
+
<dd>Sets the brightness level of the selected flat panel display.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:316px;" |
 
SUSI_ID_BOARD_PLATFORM_TYPE_STR
 
  
| style="width:283px;" |
+
<p>&nbsp;</p>
Platform type
 
  
|-
+
<dl>
| style="width:316px;" |
+
<dd><b>Parameters:</b>
SUSI_ID_BOARD_EC_FW_STR
 
  
| style="width:283px;" |
+
<dl>
EC FW
+
<dd><b>Id</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Selects target device. See Table 7.</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
== '''3.3 Backlight Functions''' ==
+
<p>&nbsp;</p>
  
This function sub set facilitates backlight control for Integrated flat panel displays, typically LVDS.
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Level</b>
  
:'''Table 7 Backlight ID'''
+
<dl>
 +
<dd>Backlight Brightness level. See Table 10.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:316px;" |
 
'''Id'''
 
  
| style="width:283px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:316px;" |
 
SUSI_ID_BACKLIGHT_1
 
  
| style="width:283px;" |
+
<dl>
Backlight Local Flat Panel 1
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:316px;" |
+
<tbody>
SUSI_ID_BACKLIGHT_2
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Level&gt;SUSI_BACKLIGHT_LEVEL_MAXIMUM</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:283px;" |
+
<h3><b>3.3.8 SusiVgaGetPolarity</b></h3>
Backlight Local Flat Panel 2
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:316px;" |
+
uint32_t SUSI_API SusiVgaGetPolarity(uint32_t Id, uint32_t *pPolarity)
SUSI_ID_BACKLIGHT_3
+
</pre>
  
| style="width:283px;" |
+
<dl>
Backlight Local Flat Panel 3
+
<dd><b>Description:</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Reads the current backlight polarity of the selected flat panel display.</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
  
:'''Table 8 Backlight Enable Values'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:316px;" |
 
'''Name'''
 
  
| style="width:283px;" |
+
<dl>
'''Description'''
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:316px;" |
+
<dd><b>Id</b>
SUSI_BACKLIGHT_SET_ON
 
  
| style="width:283px;" |
+
<dl>
Signifies that the Backlight be Enabled
+
<dd>Selects target device. See Table 7.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:316px;" |
 
SUSI_BACKLIGHT_SET_OFF
 
  
| style="width:283px;" |
+
<dl>
Signifies that the Backlight be Disabled
+
<dd>
 +
<dl>
 +
<dd><b>pPolarity</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Pointer to a buffer that receives the current backlight polarity. See Table 11.</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
=== '''3.3.1 SusiVgaGetCaps''' ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiVgaGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue);
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Gets VGA capabilities. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
:'''Parameters:'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
::'''Id'''
+
<tbody>
:::Selects target device. See Table 7. 
+
<tr>
&nbsp;
+
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pPolarity==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
::'''ItemId'''
+
<dl>
:::Selects target capability. See Table 9. 
+
<dd><b>Table 11 Brightness polarity definition</b></dd>
&nbsp;
+
</dl>
  
::'''pValue'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
:::Pointer to a buffer that receives the target capability. 
+
<tbody>
&nbsp;
+
<tr>
+
<td>&lt;tbody&gt;</td>
&nbsp;
+
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Name</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_BACKLIGHT_POLARITY_ON</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Backlight signal polarity ON&nbsp;</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_BACKLIGHT_ POLARITY_OFF</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Backlight signal polarity OFF</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
 +
<h3><b>3.3.9 SusiVga</b>SetPolarity</h3>
  
:'''Return Status Code:'''
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiVgaSetPolarity(uint32_t Id, uint32_t Polarity)
 +
</pre>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Description:</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Sets the polarity of the selected flat panel display.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Parameters:</b>
pValue==NULL
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target device. See <b>Table 7</b>.</dd>
Unknown Id or ItemId
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Success
+
<dl>
 +
<dd><b>Polarity</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd>Polarity state. See <b>Table 11</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
:'''Table 9 VGA capabilities item Id'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Item Id'''
 
  
| style="width:302px;" |
+
<dl>
'''Description'''
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:297px;" |
+
<tbody>
SUSI_ID_VGA_BRIGHTNESS_MAXIMUM
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:302px;" |
+
<p>&nbsp;</p>
Maximum backlight value
 
  
|-
+
<h3><b>3.3.10 SusiVgaGet</b>Frequency</h3>
| style="width:297px;" |
 
SUSI_ID_VGA_BRIGHTNESS_MINIMUM
 
  
| style="width:302px;" |
+
<pre class="_fck_mw_lspace">
Minimum backlight value
+
uint32_t SUSI_API SusiVgaGetFrequency(uint32_t Id, uint32_t *pFrequency)
 +
</pre>
  
|-
+
<dl>
| </tbody>
+
<dd><b>Description:</b>
|}
 
  
=== '''3.3.2 SusiVgaGetBacklightEnable''' ===
+
<dl>
 +
<dd>Reads the current backlight frequency of the selected flat panel display.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiVgaGetBacklightEnable(uint32_t Id, uint32_t *pEnable)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Gets current Backlight Enable state for specified Flat Panel. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Parameters:</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Id</b>
:::Selects target device. See Table 7. 
 
&nbsp;
 
  
::'''pEnable'''
+
<dl>
:::Pointer to a buffer that receives the current backlight enable state. See Table 8.
+
<dd>Selects target device. See <b>Table 7</b>.</dd>
&nbsp;
+
</dl>
+
</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pFrequency</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>Pointer to a buffer that receives the current backlight frequency. (Unit: Hz)</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:293px;" |
+
</dl>
'''Condition'''
+
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
pEnable==NULL
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI _STATUS_INVALID_PARAMETER
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pFrequency==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<h3><b>3.3.11SusiVga</b>SetFrequency</h3>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:293px;" |
+
uint32_t SUSI_API SusiVgaSetFrequency(uint32_t Id, uint32_t Frequency)
Device unsupported
+
</pre>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Sets the frequency of the selected flat panel display.</dd>
Success
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
=== '''3.3.3 SusiVgaSetBacklightEnable''' ===
+
<dl>
 +
<dd><b>Parameters:</b>
  
uint32_t SUSI_API SusiVgaSetBacklightEnable(uint32_t Id, uint32_t Enable)
+
<dl>
 +
<dd><b>Id</b>
  
:'''Description:'''
+
<dl>
::Enables or disable the backlight of the selected flat panel display 
+
<dd>Selects target device. See <b>Table 7</b>.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>
:::Selects target device. See Table 7. 
+
<dl>
&nbsp;
+
<dd><b>Polarity</b>
  
::'''Enable'''
+
<dl>
:::Backlight Enable options. See Table 8. 
+
<dd>Frequency value. (Unit: Hz)</dd>
&nbsp;
+
</dl>
+
</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
Library uninitialized
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<h2><b>3.4 I2C Functions</b></h2>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>I<sup>2</sup>C APIs support standard 7 and 10 bits slave address mode. I<sup>2</sup>C APIs also support word command, it needs encode before set to parameter, see Table 13</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Table </b>12 I<sup>2</sup>C ID</dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
Device unsupported
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_I2C_EXTERNAL</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Main I<sup>2</sup>C host device</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_I2C_OEM0~2</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Other I<sup>2</sup>C host devices</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Table </b>13 I<sup>2</sup>C command encode</dd>
Success
+
</dl>
  
| style="width:313px;" |  
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_SUCCESS
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Type</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>Standard command</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Byte command</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>Extend command</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Word command | 0x80000000</p>
  
|-
+
<p>Ex. 0x8000FABC</p>
| </tbody>
+
</td>
|}
+
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>No command</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>0x4000xxxx, ignore command parameter</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
=== '''3.3.4 SusiVgaGetBacklightBrightness''' ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiVgaGetBacklightBrightness(uint32_t Id, uint32_t *pBright)
+
<h3><b>3.4.1 SusiI2CGetCap</b>s</h3>
  
:'''Description:'''
+
<pre class="_fck_mw_lspace">
::Reads the current brightness of the selected flat panel display. 
+
uint32_t SUSI_API SusiI2CGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
&nbsp;
+
</pre>
  
 +
<dl>
 +
<dd><b>Description:</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Gets I<sup>2</sup>C capabilities.</dd>
:::Selects target device. See Table 7. 
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
  
::'''pBright'''
+
<p>&nbsp;</p>
:::Pointer to a buffer that receives the current backlight brightness value. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Parameters:</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target device. See <b>Table 12</b>.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
pBright==NULL
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd>
 +
<dl>
 +
<dd><b>ItemId</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target capability. See <b>Table 14</b>.</dd>
Unknown Id
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Device unsupported
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>
 +
<dl>
 +
<dd><b>pValue</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to a buffer that receives the target capability.</dd>
Success
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
=== '''3.3.5 SusiVgaSetBacklightBrightness''' ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiVgaSetBacklightBrightness(uint32_t Id, uint32_t Bright)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Reads the current brightness of the selected flat panel display. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
:'''Parameters:'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
::'''Id'''
+
<tbody>
:::Selects target device. See Table 7. 
+
<tr>
&nbsp;
+
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pValue==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id or ItemId</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
::'''Bright'''
+
<dl>
:::Backlight Brightness value. 
+
<dd><b>Table </b>14 I<sup>2</sup>C capabilities item Id</dd>
&nbsp;
+
</dl>
 
&nbsp;
 
  
 +
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Item Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_I2C_MAXIMUM_BLOCK_LENGTH</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>I<sup>2</sup>C maximum block length</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>&nbsp;</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>&nbsp;</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<h3><b>3.4.2 SusiI2CWriteReadCombine</b></h3>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
'''Return Value'''
+
uint32_t SUSI_API SusiI2CWriteReadCombine(uint32_t Id, uint8_t Addr, uint8_t *pWBuffer, uint32_t WriteLen, uint8_t *pRBuffer, uint32_t ReadLen)
 +
</pre>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Description:</b>
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>Universal function for read and write operations to the I<sup>2</sup>C bus.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Bright > MAX value &#124;&#124; Bright < MIN value
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Id</b>
Device unsupported
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Selects target device. See <b>Table 12</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<dl>
| </tbody>
+
<dd>
|}
+
<dl>
 +
<dd><b>Addr</b>
  
=== '''3.3.6 SusiVgaGetBacklightLevel''' ===
+
<dl>
 +
<dd>First byte of I<sup>2</sup>C device address. 7-bit address only</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiVgaGetBacklightLevel(uint32_t Id, uint32_t *pLevel)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Reads the current brightness level of the selected flat panel display. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pWBuffer</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Pointer to a buffer containing the data to be transferred. This parameter can be NULL if the data is not required.</dd>
:::Selects target device. See Table 7.
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''pLevel'''
+
<p>&nbsp;</p>
:::Pointer to a buffer that receives the current backlight brightness level. See Table 10. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>WriteLen</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>Size in bytes of the information pointed to by the pWBuffer parameter. If pWBuffer is NULL this will be ignored.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:293px;" |
+
</dl>
'''Condition'''
+
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>
 +
<dl>
 +
<dd><b>pRBuffer</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to a buffer that receives the read data. This parameter can be NULL if the data is not required.</dd>
pLevel==NULL
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Device unsupported
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>ReadLen</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Success
+
<dl>
 +
<dd>Size in bytes of the buffer pointed to by the pRBuffer parameter. If pRBuffer is NULL this will be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
:'''Table 10 Brightness level range definition'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Name'''
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Return Status Code:</b></dd>
SUSI_BACKLIGHT_LEVEL_MAXIMUM
+
</dl>
  
| style="width:302px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
Maximum backlight level is 9
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>(WriteLen&gt;1)&amp;&amp;(pWBuffer==NULL)</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>(RBufLen&gt;1)&amp;&amp;(pRBuffer==NULL)</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>(WriteLen==0)&amp;&amp;(RBufLen==0)</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
|-
+
<p>On Write 1 write cycle</p>
| style="width:297px;" |
 
SUSI_BACKLIGHT_LEVEL_MINIMUM
 
  
| style="width:302px;" |
+
<p>SDA Remains low</p>
Minimum backlight level is 0
+
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
=== '''3.3.7 SusiVgaSetBacklightLevel''' ===
+
<h3><b>3.4.3 SusiI2CReadTransfer</b></h3>
  
uint32_t SUSI_API SusiVgaSetBacklightLevel(uint32_t Id, uint32_t Level)
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiI2CReadTransfer(uint32_t Id, uint32_t Addr, uint32_t Cmd, uint8_t *pBuffer, uint32_t ReadLen)
 +
</pre>
  
:'''Description:'''
+
<dl>
::Sets the brightness level of the selected flat panel display. 
+
<dd><b>Description:</b></dd>
&nbsp;
+
</dl>
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Reads from a specific register in the selected I<sup>2</sup>C device. Reads from I<sup>2</sup>C device at the I<sup>2</sup>C address Addr the amount of ReadLen bytes to the buffer pBuffer while using the device specific command Cmd. Depending on the addressed I<sup>2</sup>C device Cmd can be a specific command or a byte offset.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See Table 7. 
 
&nbsp;
 
  
::'''Level'''
+
<p>&nbsp;</p>
:::Backlight Brightness level. See Table 10. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd><b>Parameters:</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Id</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Selects target device. See <b>Table 12</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Level>SUSI_BACKLIGHT_LEVEL_MAXIMUM
+
<dl>
 +
<dd><b>Addr</b>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd>Encoded 7/10 Bit I<sup>2</sup>C Device Address.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Device unsupported
+
<dl>
 +
<dd><b>Cmd</b>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Encoded I<sup>2</sup>C Device Command / Index. See <b>Table 13</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<dl>
| </tbody>
+
<dd>
|}
+
<dl>
 +
<dd><b>pBuffer</b>
  
=== '''3.3.8 SusiVgaGetPolarity''' ===
+
<dl>
 +
<dd>Pointer to a buffer that receives the read data.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiVgaGetPolarity(uint32_t Id, uint32_t *pPolarity)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Reads the current backlight polarity of the selected flat panel display. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>ReadLen</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Size in bytes of the buffer pointed to by the pBuffer parameter.</dd>
:::Selects target device. See Table 7. 
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''pPolarity'''
+
<p>&nbsp;</p>
:::Pointer to a buffer that receives the current backlight polarity. See Table 11. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Library uninitialized
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_NOT_INITIALIZED
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL || ReadLen==0</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
|-
+
<p>On Write 1 write cycle</p>
| style="width:293px;" |
 
pPolarity==NULL
 
  
| style="width:313px;" |
+
<p>SDA Remains low</p>
SUSI _STATUS_INVALID_PARAMETER
+
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<h3><b>3.4.4 SusiI2CWriteTransfer</b></h3>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:293px;" |
+
uint32_t SUSI_API SusiI2CWriteTransfer(uint32_t Id, uint32_t Addr, uint32_t Cmd, uint8_t *pBuffer, uint32_t ByteCnt)
Success
+
</pre>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd><b>Description:</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Write to a specific register in the selected I<sup>2</sup>C device. Writes to an I<sup>2</sup>C device at the I<sup>2</sup>C address Addr the amount of ByteCnt bytes from the buffer *pBuffer while using the device specific command Cmd. Depending on the addressed I<sup>2</sup>C device Cmd can be a specific command or a byte offset</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
  
:'''Table 11 Brightness polarity definition'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Name'''
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Parameters:</b>
SUSI_BACKLIGHT_POLARITY_ON
 
  
| style="width:302px;" |
+
<dl>
Backlight signal polarity ON&nbsp;
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:297px;" |
+
<dd>Selects target device. See <b>Table 12</b>.</dd>
SUSI_BACKLIGHT_ POLARITY_OFF
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:302px;" |
+
<p>&nbsp;</p>
Backlight signal polarity OFF
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
=== '''3.3.9 SusiVga'''SetPolarity ===
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Addr</b>
  
uint32_t SUSI_API SusiVgaSetPolarity(uint32_t Id, uint32_t Polarity)
+
<dl>
 +
<dd>Encoded 7/10 Bit I<sup>2</sup>C Device Address.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Sets the polarity of the selected flat panel display. 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>
:::Selects target device. See '''Table 7'''. 
+
<dl>
&nbsp;
+
<dd><b>Cmd</b>
  
::'''Polarity'''
+
<dl>
:::Polarity state. See '''Table 11'''.
+
<dd>Encoded I<sup>2</sup>C Device Command / Index. See <b>Table 13</b>.</dd>
&nbsp;
+
</dl>
+
</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>
| <tbody>
+
<dl>
|-
+
<dd><b>pBuffer</b>
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Pointer to a buffer that receives the write data.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Unknown Id
+
<dl>
 +
<dd><b>ByteCnt</b>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Size in bytes of the buffer pointed to by the pBuffer parameter.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.3.10 SusiVgaGet'''Frequency ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiVgaGetFrequency(uint32_t Id, uint32_t *pFrequency)
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
:'''Description:'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
::Reads the current backlight frequency of the selected flat panel display. 
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL || ByteCnt==0</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>ByteCnt &gt; MaxLength</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_INVALID_BLOCK_LENGTH</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
 +
<p>On Write 1 write cycle</p>
  
:'''Parameters:'''
+
<p>SDA Remains low</p>
::'''Id'''
+
</td>
:::Selects target device. See '''Table 7'''. 
+
<td style="width:313px;">
&nbsp;
+
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
::'''pFrequency'''
+
<p>&nbsp;</p>
:::Pointer to a buffer that receives the current backlight frequency. (Unit: Hz) 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<h3><b>3.4.5 SusiI2CProbeDevice</b></h3>
  
:'''Return Status Code:'''
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiI2CProbeDevice(uint32_t Id, uint32_t Addr)
 +
</pre>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Description:</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Probes I<sup>2</sup>C address to test I<sup>2</sup>C device present.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
pFrequency==NULL
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Id</b>
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Selects target device. See <b>Table 12</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Device unsupported
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Success
+
<dl>
 +
<dd><b>Addr</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd>Encoded 7/10 Bit I<sup>2</sup>C Device Address.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.3.11SusiVga'''SetFrequency ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiVgaSetFrequency(uint32_t Id, uint32_t Frequency)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Sets the frequency of the selected flat panel display. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
:'''Parameters:'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
::'''Id'''
+
<tbody>
:::Selects target device. See '''Table 7'''. 
+
<tr>
&nbsp;
+
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
::'''Polarity'''
+
<p>On Write 1 write cycle</p>
:::Frequency value. (Unit: Hz) 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>SDA Remains low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Return Status Code:'''
+
<h3><b>3.4.6 SusiI2CGetFrequency</b></h3>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<pre class="_fck_mw_lspace">
|-
+
uint32_t SUSI_API SusiI2CGetFrequency(uint32_t Id, uint32_t *pFreq)
| <tbody>
+
</pre>
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Get I<sup>2</sup>C clock frequency.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Parameters:</b>
Device unsupported
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target device. See <b>Table 12</b>.</dd>
Success
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
== '''3.4 I2C Functions''' ==
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pFreq</b>
  
I<sup>2</sup>C APIs support standard 7 and 10 bits slave address mode. I<sup>2</sup>C APIs also support word command, it needs encode before set to parameter, see Table 13
+
<dl>
 +
<dd>Pointer to a buffer that receives the I<sup>2</sup>C clock frequency value. (Unit: Hz)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Table '''12 I<sup>2</sup>C ID
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Id'''
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_ID_I2C_EXTERNAL
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
Main I<sup>2</sup>C host device
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Return Status Code:</b></dd>
SUSI_ID_I2C_OEM0~2
+
</dl>
  
| style="width:302px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
Other I<sup>2</sup>C host devices
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pFreq == NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<h3><b>3.4.7 SusiI2C</b>SetFrequency</h3>
| </tbody>
 
|-
 
| </tbody>
 
|}
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiI2CSetFrequency(uint32_t Id, uint32_t Freq)
 +
</pre>
  
:'''Table '''13 I<sup>2</sup>C command encode
+
<dl>
 +
<dd><b>Description:</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>Set I<sup>2</sup>C clock frequency.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| <tbody>
+
</dl>
|-
 
| style="width:297px;" |
 
'''Type'''
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
Standard command
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
Byte command
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Parameters:</b>
Extend command
 
  
| style="width:302px;" |
+
<dl>
Word command &#124; 0x80000000
+
<dd><b>Id</b>
  
Ex. 0x8000FABC
+
<dl>
 +
<dd>Selects target device. See <b>Table 12</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
No command
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
0x4000xxxx, ignore command parameter
 
  
|-
+
<dl>
| </tbody>
+
<dd>
|-
+
<dl>
| </tbody>
+
<dd><b>Freq</b>
|}
 
  
&nbsp;
+
<dl>
 +
<dd>I<sup>2</sup>C clock frequency value. (Unit: Hz)</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
=== '''3.4.1 SusiI2CGetCap'''s ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiI2CGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Gets I<sup>2</sup>C capabilities. 
 
&nbsp;
 
  
&nbsp;
+
<p>&nbsp;</p>
  
 +
<p>&nbsp;</p>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Return Status Code:</b></dd>
:::Selects target device. See '''Table 12'''. 
+
</dl>
&nbsp;
 
  
&nbsp;
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
::'''ItemId'''
+
<h2><b>3.5 SMBus Functions</b></h2>
:::Selects target capability. See '''Table 14'''. 
 
&nbsp;
 
  
&nbsp;
+
<p>SMBus is the System Management Bus defined by Intel&reg; Corporation in 1995. It is used in personal computers and servers for low-speed system management communications.</p>
  
::'''pValue'''
+
<dl>
:::Pointer to a buffer that receives the target capability. 
+
<dd><b>Table </b>15 SMBus ID</dd>
&nbsp;
+
</dl>
  
&nbsp;
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_ SMBUS _EXTERNAL</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Main SMBus host device</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_SMBUS_OEM0~3</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Other SMBus host devices</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
&nbsp;
+
<p>&nbsp;</p>
  
 +
<h3><b>3.5.1 SusiSMBReadByte</b></h3>
  
:'''Return Status Code:'''
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiSMBReadByte(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pData)
 +
</pre>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Description:</b>
| <tbody>
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Read a byte of data from the target slave device in the SMBus.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Parameters:</b>
pValue==NULL
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
Unknown Id or ItemId
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Success
+
<dl>
 +
<dd><b>Addr</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|-
 
| </tbody>
 
|}
 
  
:'''Table '''14 I<sup>2</sup>C capabilities item Id
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Cmd</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>Specifies the offset or command of the device register to read data from.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:297px;" |
+
</dl>
'''Item Id'''
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd>
SUSI_ID_I2C_MAXIMUM_BLOCK_LENGTH
+
<dl>
 +
<dd><b>pData</b>
  
| style="width:302px;" |
+
<dl>
I<sup>2</sup>C maximum block length
+
<dd>Pointer to a variable in which the function reads the byte data.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
&nbsp;
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
&nbsp;
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|-
 
| </tbody>
 
|}
 
  
&nbsp;
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
=== '''3.4.2 SusiI2CWriteReadCombine''' ===
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pData==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
uint32_t SUSI_API SusiI2CWriteReadCombine(uint32_t Id, uint8_t Addr, uint8_t *pWBuffer, uint32_t WriteLen, uint8_t *pRBuffer, uint32_t ReadLen)
+
<p>On Write 1 write cycle</p>
  
:'''Description:'''
+
<p>SDA Remains low</p>
::Universal function for read and write operations to the I<sup>2</sup>C bus. 
+
</td>
&nbsp;
+
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
&nbsp;
+
<p>&nbsp;</p>
  
 +
<h3><b>3.5.2 SusiSMB</b>WriteByte</h3>
  
:'''Parameters:'''
+
<pre class="_fck_mw_lspace">
::'''Id'''
+
uint32_t SUSI_API SusiSMBWriteByte(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t Data)
:::Selects target device. See '''Table 12'''. 
+
</pre>
&nbsp;
 
  
&nbsp;
+
<dl>
 +
<dd><b>Description:</b>
  
::'''Addr'''
+
<dl>
:::First byte of I<sup>2</sup>C device address. 7-bit address only 
+
<dd>Write a byte of data to the target slave device in the SMBus.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
::'''pWBuffer'''
+
<p>&nbsp;</p>
:::Pointer to a buffer containing the data to be transferred. This parameter can be NULL if the data is not required. 
 
&nbsp;
 
  
&nbsp;
+
<dl>
 +
<dd><b>Parameters:</b>
  
::'''WriteLen'''
+
<dl>
:::Size in bytes of the information pointed to by the pWBuffer parameter. If pWBuffer is NULL this will be ignored. 
+
<dd><b>Id</b>
&nbsp;
 
  
&nbsp;
+
<dl>
 +
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''pRBuffer'''
+
<p>&nbsp;</p>
:::Pointer to a buffer that receives the read data. This parameter can be NULL if the data is not required. 
 
&nbsp;
 
  
&nbsp;
+
<dl>
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Addr</b>
  
&nbsp;
+
<dl>
 +
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''ReadLen'''
+
<p>&nbsp;</p>
::
 
:::Size in bytes of the buffer pointed to by the pRBuffer parameter. If pRBuffer is NULL this will be ignored. 
 
&nbsp;
 
  
&nbsp;
+
<dl>
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Cmd</b>
  
&nbsp;
+
<dl>
 +
<dd>Specifies the offset or command of the device register to write data to.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Data</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>Specifies the byte data to be written.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:293px;" |
+
</dl>
'''Condition'''
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
(WriteLen>1)&&(pWBuffer==NULL)
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI _STATUS_INVALID_PARAMETER
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
|-
+
<p>On Write 1 write cycle</p>
| style="width:293px;" |
 
(RBufLen>1)&&(pRBuffer==NULL)
 
  
| style="width:313px;" |
+
<p>SDA Remains low</p>
SUSI _STATUS_INVALID_PARAMETER
+
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
(WriteLen==0)&&(RBufLen==0)
 
  
| style="width:313px;" |
+
<h3><b>3.5.3 SusiSMBReadWord</b></h3>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:293px;" |
+
uint32_t SUSI_API SusiSMBReadWord(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint16_t *pData)
Unknown Id
+
</pre>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Read a word of data from the target slave device in the SMBus.</dd>
Bus Busy SDA/SDC low
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
<dl>
 +
<dd><b>Parameters:</b>
  
SDA Remains low
+
<dl>
 +
<dd><b>Id</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_TIMEOUT
+
<dd>
 +
<dl>
 +
<dd><b>Addr</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
Address Non-ACK
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_FOUND
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Write Non-ACK
+
<dl>
 +
<dd><b>Cmd</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_WRITE_ERROR
+
<dd>Specifies the offset or command of the device register to read data from.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd>
 +
<dl>
 +
<dd><b>pData</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Pointer to a variable in which the function reads the word data.</dd>
|-
+
</dl>
| </tbody>
+
</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.4.3 SusiI2CReadTransfer''' ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiI2CReadTransfer(uint32_t Id, uint32_t Addr, uint32_t Cmd, uint8_t *pBuffer, uint32_t ReadLen)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
:
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
::Reads from a specific register in the selected I<sup>2</sup>C device. Reads from I<sup>2</sup>C device at the I<sup>2</sup>C address Addr the amount of ReadLen bytes to the buffer pBuffer while using the device specific command Cmd. Depending on the addressed I<sup>2</sup>C device Cmd can be a specific command or a byte offset. 
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pData==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
&nbsp;
+
<p>On Write 1 write cycle</p>
  
 +
<p>SDA Remains low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See '''Table 12'''. 
 
&nbsp;
 
  
&nbsp;
+
<h3><b>3.5.4 SusiSMB</b>WriteWord</h3>
  
::'''Addr'''
+
<pre class="_fck_mw_lspace">
:::Encoded 7/10 Bit I<sup>2</sup>C Device Address. 
+
uint32_t SUSI_API SusiSMBWriteWord(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint16_t Data)
&nbsp;
+
</pre>
  
&nbsp;
+
<dl>
 +
<dd><b>Description:</b>
  
::'''Cmd'''
+
<dl>
:::Encoded I<sup>2</sup>C Device Command / Index. See '''Table 13'''. 
+
<dd>Write a word of data to the target slave device in the SMBus.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
::'''pBuffer'''
+
<p>&nbsp;</p>
:::Pointer to a buffer that receives the read data. 
 
&nbsp;
 
  
&nbsp;
+
<dl>
 +
<dd><b>Parameters:</b>
  
::'''ReadLen'''
+
<dl>
:::Size in bytes of the buffer pointed to by the pBuffer parameter. 
+
<dd><b>Id</b>
&nbsp;
 
  
&nbsp;
+
<dl>
+
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Addr</b>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>
 +
<dl>
 +
<dd><b>Cmd</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Specifies the offset or command of the device register to write data to.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
pBuffer==NULL &#124;&#124; ReadLen==0
+
<dl>
 +
<dd><b>Data</b>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd>Specifies the word data to be written.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
Arbitration Error/Collision Error
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
On Write 1 write cycle
+
<p>On Write 1 write cycle</p>
  
SDA Remains low
+
<p>SDA Remains low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<h3><b>3.5.5 SusiSMB</b>ReceiveByte</h3>
| style="width:293px;" |
 
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
SUSI_STATUS_TIMEOUT
+
uint32_t SUSI_API SusiSMBReceiveByte(uint32_t Id, uint8_t Addr, uint8_t *pData)
 +
</pre>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Description:</b>
Address Non-ACK
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_FOUND
+
<dd>Receive a byte of data from the target slave device in the SMBus.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Write Non-ACK
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_WRITE_ERROR
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Parameters:</b>
Success
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd><b>Id</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
|-
+
</dl>
| </tbody>
+
</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.4.4 SusiI2CWriteTransfer''' ===
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Addr</b>
  
uint32_t SUSI_API SusiI2CWriteTransfer(uint32_t Id, uint32_t Addr, uint32_t Cmd, uint8_t *pBuffer, uint32_t ByteCnt)
+
<dl>
 +
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Write to a specific register in the selected I<sup>2</sup>C device. Writes to an I<sup>2</sup>C device at the I<sup>2</sup>C address Addr the amount of ByteCnt bytes from the buffer *pBuffer while using the device specific command Cmd. Depending on the addressed I<sup>2</sup>C device Cmd can be a specific command or a byte offset 
 
&nbsp;
 
  
&nbsp;
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pData</b>
  
 +
<dl>
 +
<dd>Pointer to a variable in which the function receive the byte data.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See '''Table 12'''. 
 
&nbsp;
 
  
&nbsp;
+
<p>&nbsp;</p>
  
::'''Addr'''
+
<p>&nbsp;</p>
:::Encoded 7/10 Bit I<sup>2</sup>C Device Address. 
 
&nbsp;
 
  
&nbsp;
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
::'''Cmd'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
:::Encoded I<sup>2</sup>C Device Command / Index. See '''Table 13'''. 
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
&nbsp;
+
<p>On Write 1 write cycle</p>
  
::'''pBuffer'''
+
<p>SDA Remains low</p>
:::Pointer to a buffer that receives the write data. 
+
</td>
&nbsp;
+
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
&nbsp;
+
<p>&nbsp;</p>
  
::'''ByteCnt'''
+
<h3><b>3.5.6 SusiSMB</b>SendByte</h3>
:::Size in bytes of the buffer pointed to by the pBuffer parameter.
 
&nbsp;
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
+
uint32_t SUSI_API SusiSMBSendByte(uint32_t Id, uint8_t Addr, uint8_t Data)
&nbsp;
+
</pre>
  
&nbsp;
+
<dl>
 +
<dd><b>Description:</b>
  
 +
<dl>
 +
<dd>Send a byte of data to the target slave device in the SMBus.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Id</b>
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i><b>.</b></dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
pBuffer==NULL &#124;&#124; ByteCnt==0
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd>
 +
<dl>
 +
<dd><b>Addr</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
ByteCnt > MaxLength
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_INVALID_BLOCK_LENGTH
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Unknown Id
+
<dl>
 +
<dd><b>Data</b>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Specifies the word data to be sent.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
SDA Remains low
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
| style="width:313px;" |
+
<p>On Write 1 write cycle</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<p>SDA Remains low</p>
| style="width:293px;" |
+
</td>
Time-out due to clock stretching
+
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<h3><b>3.5.7 SusiSMBReadQuick</b></h3>
| style="width:293px;" |
 
Address Non-ACK
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
SUSI_STATUS_NOT_FOUND
+
uint32_t SUSI_API SusiSMBReadQuick(uint32_t Id, uint8_t Addr)
 +
</pre>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Description:</b>
Write Non-ACK
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_WRITE_ERROR
+
<dd>Turn SMBus device function off (on) or disable (enable) a specific device mode.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<dl>
| </tbody>
+
<dd><b>Parameters:</b>
|-
 
| </tbody>
 
|}
 
  
&nbsp;
+
<dl>
 +
<dd><b>Id</b>
  
=== '''3.4.5 SusiI2CProbeDevice''' ===
+
<dl>
 +
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiI2CProbeDevice(uint32_t Id, uint32_t Addr)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<dl>
::Probes I<sup>2</sup>C address to test I<sup>2</sup>C device present. 
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Addr</b>
  
&nbsp;
+
<dl>
 +
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See '''Table 12'''. 
 
&nbsp;
 
  
&nbsp;
+
<p>&nbsp;</p>
  
::'''Addr'''
+
<dl>
:::Encoded 7/10 Bit I<sup>2</sup>C Device Address. 
+
<dd><b>Return Status Code:</b></dd>
&nbsp;
+
</dl>
  
&nbsp;
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
&nbsp;
+
<p>On Write 1 write cycle</p>
  
 +
<p>SDA Remains low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Return Status Code:'''
+
<h3><b>3.5.8 SusiSMB</b>WriteQuick</h3>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<pre class="_fck_mw_lspace">
|-
+
uint32_t SUSI_API SusiSMBWriteQuick(uint32_t Id, uint8_t Addr)
| <tbody>
+
</pre>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Turn SMBus device function off (on) or disable (enable) a specific device mode.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Id</b>
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Addr</b>
  
SDA Remains low
+
<dl>
 +
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Address Non-ACK
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_NOT_FOUND
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
|-
+
<p>On Write 1 write cycle</p>
| style="width:293px;" |
 
Write Non-ACK
 
  
| style="width:313px;" |
+
<p>SDA Remains low</p>
SUSI_STATUS_WRITE_ERROR
+
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<h3><b>3.5.9 SusiSMBReadBlock</b></h3>
SUSI_STATUS_SUCCESS
 
  
|-
+
<pre class="_fck_mw_lspace">
| </tbody>
+
uint32_t SUSI_API SusiSMBReadBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t *pLength)
|-
+
</pre>
| </tbody>
 
|}
 
  
=== '''3.4.6 SusiI2CGetFrequency''' ===
+
<dl>
 +
<dd><b>Description:</b>
  
uint32_t SUSI_API SusiI2CGetFrequency(uint32_t Id, uint32_t *pFreq)
+
<dl>
 +
<dd>Read multi-data from the target slave device in the SMBus.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Get I<sup>2</sup>C clock frequency. 
 
&nbsp;
 
  
&nbsp;
+
<p>&nbsp;</p>
  
 +
<dl>
 +
<dd><b>Parameters:</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Id</b>
:::Selects target device. See '''Table 12'''. 
 
&nbsp;
 
  
&nbsp;
+
<dl>
 +
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''pFreq'''
+
<p>&nbsp;</p>
:::Pointer to a buffer that receives the I<sup>2</sup>C clock frequency value. (Unit: Hz) 
 
&nbsp;
 
  
&nbsp;
+
<dl>
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Addr</b>
  
&nbsp;
+
<dl>
 +
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Cmd</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>Specifies the offset or command of the device register to read data from.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:293px;" |
+
</dl>
'''Condition'''
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Library uninitialized
+
<dl>
 +
<dd><b>pBuffer</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>Pointer to a byte array in which the function reads the block data.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>
 +
<dl>
 +
<dd><b>pLength</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to a byte in which specifies the number of bytes to be read and also return succeed bytes.</dd>
Device unsupported
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
pFreq == NULL
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Success
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_SUCCESS
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
|-
+
<p>On Write 1 write cycle</p>
| </tbody>
 
|-
 
| </tbody>
 
|}
 
  
=== '''3.4.7 SusiI2C'''SetFrequency ===
+
<p>SDA Remains low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
uint32_t SUSI_API SusiI2CSetFrequency(uint32_t Id, uint32_t Freq)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<h3><b>3.5.10 SusiSMB</b>WriteBlock</h3>
::Set I<sup>2</sup>C clock frequency. 
 
&nbsp;
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiSMBWriteBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t Length)
 +
</pre>
  
 +
<dl>
 +
<dd><b>Description:</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Write multi-data from the target slave device in the SMBus.</dd>
:::Selects target device. See '''Table 12'''. 
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
::'''Freq'''
+
<p>&nbsp;</p>
:::I<sup>2</sup>C clock frequency value. (Unit: Hz) 
 
&nbsp;
 
  
&nbsp;
+
<dl>
+
<dd><b>Parameters:</b>
&nbsp;
 
  
&nbsp;
+
<dl>
 +
<dd><b>Id</b>
  
 +
<dl>
 +
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>
| <tbody>
+
<dl>
|-
+
<dd><b>Addr</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>
 +
<dl>
 +
<dd><b>Cmd</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Specifies the offset or command of the device register to write data to.</dd>
Unknown Id
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Device unsupported
+
<dl>
 +
<dd><b>pBuffer</b>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Pointer to a byte array in which the function writes the block data.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd>
 +
<dl>
 +
<dd><b>Length</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Specifies the number of bytes to be write.</dd>
|-
+
</dl>
| </tbody>
+
</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
  
== '''3.5 SMBus Functions''' ==
+
<p>&nbsp;</p>
  
SMBus is the System Management Bus defined by Intel® Corporation in 1995. It is used in personal computers and servers for low-speed system management communications.
+
<p>&nbsp;</p>
  
:'''Table '''15 SMBus ID
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Return Status Code:</b></dd>
| <tbody>
+
</dl>
|-
 
| style="width:297px;" |
 
'''Id'''
 
  
| style="width:302px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
'''Description'''
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
|-
+
<p>On Write 1 write cycle</p>
| style="width:297px;" |
 
SUSI_ID_ SMBUS _EXTERNAL
 
  
| style="width:302px;" |
+
<p>SDA Remains low</p>
Main SMBus host device
+
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_ID_SMBUS_OEM0~3
 
  
| style="width:302px;" |
+
<h3><b>3.5.11 SusiSMB</b>I2CReadBlock</h3>
Other SMBus host devices
 
  
|-
+
<pre class="_fck_mw_lspace">
| </tbody>
+
uint32_t SUSI_API SusiSMBI2CReadBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t *pLength)
|}
+
</pre>
  
&nbsp;
+
<dl>
 +
<dd><b>Description:</b>
  
=== '''3.5.1 SusiSMBReadByte''' ===
+
<dl>
 +
<dd>Read multi-data using I<sup>2</sup>C block protocol from the target slave device in the SMBus.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiSMBReadByte(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pData)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Read a byte of data from the target slave device in the SMBus. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Parameters:</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Id</b>
:::Selects target device. See '''Table ''''''15'''. 
 
&nbsp;
 
  
::'''Addr'''
+
<dl>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.
+
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''Cmd'''
+
<p>&nbsp;</p>
:::Specifies the offset or command of the device register to read data from. 
 
&nbsp;
 
  
::'''pData'''
+
<dl>
:::Pointer to a variable in which the function reads the byte data. 
+
<dd>
&nbsp;
+
<dl>
+
<dd><b>Addr</b>
&nbsp;
 
  
 +
<dl>
 +
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>
| <tbody>
+
<dl>
|-
+
<dd><b>Cmd</b>
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Specifies the offset or command of the device register to read data from.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>
 +
<dl>
 +
<dd><b>pBuffer</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to a byte array in which the function reads the block data.</dd>
pData==NULL
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Unknown Id
+
<dl>
 +
<dd><b>pLength</b>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Pointer to a byte in which specifies the number of bytes to be read and also return succeed bytes.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
SDA Remains low
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
| style="width:313px;" |
+
<p>On Write 1 write cycle</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<p>SDA Remains low</p>
| style="width:293px;" |
+
</td>
Time-out due to clock stretching
+
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<h3><b>3.5.12 SusiSMB</b>I2CWriteBlock</h3>
| style="width:293px;" |
 
Address Non-ACK
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
SUSI_STATUS_NOT_FOUND
+
uint32_t SUSI_API SusiSMBI2CWriteBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t Length)
 +
</pre>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Description:</b>
Write Non-ACK
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_WRITE_ERROR
+
<dd>Write multi-data using I<sup>2</sup>C block protocol from the target slave device in the SMBus.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<dl>
| </tbody>
+
<dd><b>Parameters:</b>
|}
 
  
&nbsp;
+
<dl>
 +
<dd><b>Id</b>
  
=== '''3.5.2 SusiSMB'''WriteByte ===
+
<dl>
 +
<dd>Selects target device. See <b>Table &#39;</b><i>15&#39;</i>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiSMBWriteByte(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t Data)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<dl>
::Write a byte of data to the target slave device in the SMBus. 
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Addr</b>
  
 +
<dl>
 +
<dd>Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See '''Table ''''''15'''. 
 
&nbsp;
 
  
::'''Addr'''
+
<dl>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Cmd</b>
  
::'''Cmd'''
+
<dl>
:::Specifies the offset or command of the device register to write data to.
+
<dd>Specifies the offset or command of the device register to write data to.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''Data'''
+
<p>&nbsp;</p>
:::Specifies the byte data to be written. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pBuffer</b>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>Pointer to a byte array in which the function writes the block data.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>
 +
<dl>
 +
<dd><b>Length</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Specifies the number of bytes to be write.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Bus Busy SDA/SDC low
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_BUSY_COLLISION
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device unsupported</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bus Busy SDA/SDC low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Arbitration Error/Collision Error</p>
  
|-
+
<p>On Write 1 write cycle</p>
| style="width:293px;" |
 
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
<p>SDA Remains low</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_BUSY_COLLISION</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Time-out due to clock stretching</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_TIMEOUT</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Address Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_FOUND</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write Non-ACK</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
SDA Remains low
+
<h3><b>3.6 Watchdog Functions</b></h3>
  
| style="width:313px;" |
+
<p>After the watchdog timer has been start function it must be triggered within (Delay + Event Timeout) milliseconds as set with the start function, following the initial trigger every subsequent trigger must occur within (Event Timeout) milliseconds. Should trigger not be called within the relevant time limit a system reset will occur. The SUSI watchdog timer may support two stages. If the watchdog is not triggered within the event timeout, an NMI, IRQ, or hardware output will be generated. Then the reset timeout becomes active. If the watchdog timer is not triggered within the reset timeout a reset will be generated</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Initial timing:</b>
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_TIMEOUT
+
<dd>&lt;img _fck_mw_filename=&quot;Initial timing.png&quot; _fck_mw_origimgheight=&quot;121&quot; _fck_mw_origimgwidth=&quot;652&quot; alt=&quot;RTENOTITLE&quot; src=&quot;/wiki/images/9/9e/Initial_timing.png&quot; style=&quot;vertical-align:middle;&quot; title=&quot;RTENOTITLE&quot; /&gt;</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Address Non-ACK
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_FOUND
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Timing after trigger:</b></dd>
Write Non-ACK
+
</dl>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_WRITE_ERROR
+
<dd>
 +
<dl>
 +
<dd>&lt;img _fck_mw_filename=&quot;Timing after trigger.png&quot; _fck_mw_origimgheight=&quot;127&quot; _fck_mw_origimgwidth=&quot;584&quot; alt=&quot;RTENOTITLE&quot; src=&quot;/wiki/images/a/a4/Timing_after_trigger.png&quot; style=&quot;vertical-align:middle;&quot; title=&quot;RTENOTITLE&quot; /&gt;</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<dl>
| </tbody>
+
<dd><b>Where:</b></dd>
|}
+
</dl>
  
&nbsp;
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Stage A</b>
  
=== '''3.5.3 SusiSMBReadWord''' ===
+
<dl>
 +
<dd>Watchdog is started.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiSMBReadWord(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint16_t *pData)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<dl>
::Read a word of data from the target slave device in the SMBus. 
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Stage B</b>
  
 +
<dl>
 +
<dd>Initial Delay Period is exhausted.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See '''Table ''''''15'''. 
 
&nbsp;
 
  
::'''Addr'''
+
<dl>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Stage C/F</b>
  
::'''Cmd'''
+
<dl>
:::Specifies the offset or command of the device register to read data from.
+
<dd>Event is triggered, NMI, IRQ, or PIN is Triggered. To Allow for possible Software Recovery.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''pData'''
+
<p>&nbsp;</p>
:::Pointer to a variable in which the function reads the word data. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Stage D/G</b>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>System is reset.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>
 +
<dl>
 +
<dd><b>Stage E</b></dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<ul style="margin-left: 160px;">
SUSI_STATUS_NOT_INITIALIZED
+
<li>Watchdog is Triggered.</li>
 +
<li>Trigger / Stop must be called before Stage C/F to prevent event from being generated.</li>
 +
<li>Trigger / Stop must be called before Stage D/G to prevent The system from being reset.</li>
 +
</ul>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Table 16 Watchdog ID</b></dd>
pData==NULL
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI _STATUS_INVALID_PARAMETER
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WATCHDOG_1</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>First watchdog timer</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WATCHDOG_2</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Second watchdog timer</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WATCHDOG_3</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Third watchdog timer</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<h3><b>3.6.1 SusiWDogGetCaps</b></h3>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:293px;" |
+
uint32_t SUSI_API SusiWDogGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
Bus Busy SDA/SDC low
+
</pre>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Gets watchdog capabilities.</dd>
Arbitration Error/Collision Error
+
</dl>
 +
</dd>
 +
</dl>
  
On Write 1 write cycle
+
<p>&nbsp;</p>
  
SDA Remains low
+
<dl>
 +
<dd><b>Parameters:</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target device. See <b>Table 16</b>.</dd>
Time-out due to clock stretching
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Address Non-ACK
+
<dl>
 +
<dd><b>ItemId</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_FOUND
+
<dd>Selects target capability. See <b>Table 17</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Write Non-ACK
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_WRITE_ERROR
+
<dd>
 +
<dl>
 +
<dd><b>pValue</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to a buffer that receives the target capability.</dd>
Success
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.5.4 SusiSMB'''WriteWord ===
+
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
uint32_t SUSI_API SusiSMBWriteWord(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint16_t Data)
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pValue==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id or ItemId</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Description:'''
+
<dl>
::Write a word of data to the target slave device in the SMBus. 
+
<dd><b>Table </b>17 Watchdog capabilities item Id</dd>
&nbsp;
+
</dl>
  
 +
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Item Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_SUPPORT_FLAGS</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Event support flags (<b>Table 18</b>)</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_DELAY_MAXIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The maximum delay time value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_DELAY_MINIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The minimum delay time value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_EVENT_MAXIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The maximum event time value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_EVENT_MINIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The minimum event time value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_RESET_MAXIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The maximum reset time value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_RESET_MINIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The minimum reset time value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_UNIT_MINIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The minimum unit value</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_DELAY_TIME</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Current delay time setting</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_EVENT_TIME</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Current event time setting</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_RESET_TIME</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Current reset time setting</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_WDT_EVENT_TYPE</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Current event type (<b>Table 19</b>)</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See '''Table ''''''15'''. 
 
&nbsp;
 
  
::'''Addr'''
+
<h3><b>3.6.2 SusiWDogStart</b></h3>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.
 
&nbsp;
 
  
::'''Cmd'''
+
<pre class="_fck_mw_lspace">
:::Specifies the offset or command of the device register to write data to. 
+
uint32_t SUSI_API SusiWDogStart(uint32_t Id, uint32_t DelayTime, uint32_t EventTime, uint32_t ResetTime, uint32_t EventType)
&nbsp;
+
</pre>
  
::'''Data'''
+
<dl>
:::Specifies the word data to be written. 
+
<dd><b>Description:</b>
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>Start the watchdog timer and set the parameters. To adjust the parameters, the watchdog must be stopped and then start again with the new values. If the hardware implementation of the watchdog timer does not allow a setting at the exact time selected, the SUSI API selects the next possible longer timing.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Id</b>
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>Selects target device. See <b>Table 16</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>
 +
<dl>
 +
<dd><b>DelayTime</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Initial delay for the watchdog timer in milliseconds.</dd>
Bus Busy SDA/SDC low
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Arbitration Error/Collision Error
+
<dl>
 +
<dd><b>EventTime</b>
  
On Write 1 write cycle
+
<dl>
 +
<dd>Watchdog timeout interval in milliseconds to trigger an event.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
SDA Remains low
+
<p>&nbsp;</p>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd>
 +
<dl>
 +
<dd><b>ResetTime</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Watchdog timeout interval in milliseconds to trigger a reset.</dd>
Time-out due to clock stretching
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Address Non-ACK
+
<dl>
 +
<dd><b>EventType</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_FOUND
+
<dd>To select one kind of event type. See <b>Table 19</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Write Non-ACK
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_WRITE_ERROR
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| </tbody>
+
<tbody>
|}
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Wrong time range</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
&nbsp;
+
<dl>
 +
<dd><b>Table </b>18 Watchdog Support Flags</dd>
 +
</dl>
  
=== '''3.5.5 SusiSMB'''ReceiveByte ===
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Flag Name</b></p>
 +
</td>
 +
<td style="width:246px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:59px;">
 +
<p><b>Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_WDT_FLAG_SUPPORT_IRQ</p>
 +
</td>
 +
<td style="width:246px;">
 +
<p>Support IRQ event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x01</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_WDT_FLAG_SUPPORT_SCI</p>
 +
</td>
 +
<td style="width:246px;">
 +
<p>Support SCI event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x02</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_WDT_FLAG_SUPPORT_PWRBTN</p>
 +
</td>
 +
<td style="width:246px;">
 +
<p>Support power button event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x04</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
uint32_t SUSI_API SusiSMBReceiveByte(uint32_t Id, uint8_t Addr, uint8_t *pData)
+
<dl>
 +
<dd><b>Table </b>19 Watchdog timer event type</dd>
 +
</dl>
  
:'''Description:'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
::Receive a byte of data from the target slave device in the SMBus. 
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Event Type</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_WDT_EVENT_TYPE_NONE</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>No event</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_WDT_EVENT_TYPE_SCI</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>SCI event</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_WDT_EVENT_TYPE_IRQ</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>IRQ event</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_WDT_EVENT_TYPE_PWRBTN</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Power button event</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
 +
<p>&nbsp;</p>
  
:'''Parameters:'''
+
<h3><b>3.6.3 SusiWDogStop</b></h3>
::'''Id'''
 
:::Selects target device. See '''Table ''''''15'''.
 
&nbsp;
 
  
::'''Addr'''
+
<pre class="_fck_mw_lspace">
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
+
uint32_t SUSI_API SusiWDogStop(uint32_t Id)
&nbsp;
+
</pre>
  
::'''pData'''
+
<dl>
:::Pointer to a variable in which the function receive the byte data. 
+
<dd><b>Description:</b>
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>Stops the operation of the watchdog timer.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Parameters:</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target device. See <b>Table 16</b>.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
pBuffer==NULL
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Unknown Id
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI _STATUS_UNSUPPORTED
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<h3><b>3.6.4 SusiWDog</b>Trigger</h3>
| style="width:293px;" |
 
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
SUSI_STATUS_BUSY_COLLISION
+
uint32_t SUSI_API SusiWDogTrigger(uint32_t Id)
 +
</pre>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Description:</b>
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
<dl>
 +
<dd>Trigger the watchdog timer.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
SDA Remains low
+
<p>&nbsp;</p>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Id</b>
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_TIMEOUT
+
<dd>Selects target device. See <b>Table 16</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Address Non-ACK
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_FOUND
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Write Non-ACK
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_WRITE_ERROR
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
Success
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<h3><b>3.6.5 SusiWDogSetCallBack</b></h3>
SUSI_STATUS_SUCCESS
 
  
|-
+
<pre class="_fck_mw_lspace">
| </tbody>
+
uint32_t SUSI_API SusiWDogSetCallBack(uint32_t Id, SUSI_WDT_INT_CALLBACK pfnCallback, void *Context)
|}
+
</pre>
  
&nbsp;
+
<dl>
 +
<dd><b>Description:</b>
  
=== '''3.5.6 SusiSMB'''SendByte ===
+
<dl>
 +
<dd>The call back function pointer can be transmit from Application when IRQ triggered.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiSMBSendByte(uint32_t Id, uint8_t Addr, uint8_t Data)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Send a byte of data to the target slave device in the SMBus. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Parameters:</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Id</b>
:::Selects target device. See '''Table ''''''15''''''.''' 
 
&nbsp;
 
  
::'''Addr'''
+
<dl>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.
+
<dd>Selects target device. See <b>Table 16</b>.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''Data'''
+
<p>&nbsp;</p>
:::Specifies the word data to be sent. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pfnCallback</b>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>Call back function pointer, SUSI_WDT_INT_CALLBACK is function pointer type, it can set NULL to clear. The type definition just like show below,</dd>
 +
<dd><i>typedef void (*SUSI_WDT_INT_CALLBACK)(void*);</i></dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>
 +
<dl>
 +
<dd><b>Context</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to a user context structure for callback function.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Bus Busy SDA/SDC low
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_BUSY_COLLISION
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
<h2><b>3.7 GPIO Functions</b></h2>
  
SDA Remains low
+
<p>Programmable GPIO allows developers to dynamically set the GPIO input or output status</p>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Table </b>20 GPIO ID</dd>
Time-out due to clock stretching
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_TIMEOUT
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:259px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:340px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:259px;">
 +
<p>SUSI_ID_GPIO(X)</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>X is GPIO pin number, definition as below:</p>
  
|-
+
<ol>
| style="width:293px;" |
+
<li>define SUSI_ID_GPIO(x) (0x0000 | x)</li>
Address Non-ACK
+
</ol>
  
| style="width:313px;" |
+
<p>This ID control single pin only.</p>
SUSI_STATUS_NOT_FOUND
+
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:259px;">
 +
<p>SUSI_ID_GPIO_BANK(Y)</p>
 +
</td>
 +
<td style="width:340px;">
 +
<p>Y is GPIO bank number, definition as below:</p>
  
|-
+
<ol>
| style="width:293px;" |
+
<li>define SUSI_ID_GPIO_BANK(Y) (0x10000 | Y)</li>
Write Non-ACK
+
</ol>
  
| style="width:313px;" |
+
<p>This ID control maximum 32 pins per bank.</p>
SUSI_STATUS_WRITE_ERROR
+
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<h3><b>3.7.1 SusiGPIOGetCaps</b></h3>
SUSI_STATUS_SUCCESS
 
  
|-
+
<pre class="_fck_mw_lspace">
| </tbody>
+
uint32_t SUSI_API SusiGPIOGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
|}
+
</pre>
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.5.7 SusiSMBReadQuick''' ===
+
<dl>
 +
<dd><b>Description:</b>
  
uint32_t SUSI_API SusiSMBReadQuick(uint32_t Id, uint8_t Addr)
+
<dl>
 +
<dd>Reads the capabilities of the current GPIO implementation from the selected GPIO interface.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Turn SMBus device function off (on) or disable (enable) a specific device mode. 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Parameters:</b>
:::Selects target device. See '''Table ''''''15'''. 
 
&nbsp;
 
  
::'''Addr'''
+
<dl>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
+
<dd><b>Id</b>
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>Selects target device. See <b>Table 20</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>
| <tbody>
+
<dl>
|-
+
<dd><b>ItemId</b>
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Selects target capability. See <b>Table 21</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>
 +
<dl>
 +
<dd><b>pValue</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to a buffer that receives the target capability. Each bit of the buffer value represents support situation of a GPIO, according to the order. 1 is supportive, and 0 is unsupportive.</dd>
Unknown Id
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Arbitration Error/Collision Error
+
</dl>
  
On Write 1 write cycle
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pValue==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
SDA Remains low
+
<p>&nbsp;</p>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd><b>Table </b>21 GPIO capabilities item Id</dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
Time-out due to clock stretching
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Item Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_GPIO_INPUT_SUPPORT</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Get GPIO input support state</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_GPIO_OUTPUT_SUPPORT</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Get GPIO output support state</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Address Non-ACK
 
  
| style="width:313px;" |
+
<h3><b>3.7.2 SusiGPIOGetDirection</b></h3>
SUSI_STATUS_NOT_FOUND
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:293px;" |
+
uint32_t SUSI_API SusiGPIOGetDirection(uint32_t Id, uint32_t Bitmask, uint32_t *pDirection)
Success
+
</pre>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd><b>Description:</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Gets the configuration for the selected GPIO ports.</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
  
=== '''3.5.8 SusiSMB'''WriteQuick ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiSMBWriteQuick(uint32_t Id, uint8_t Addr)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<dl>
::Turn SMBus device function off (on) or disable (enable) a specific device mode. 
+
<dd><b>Parameters:</b>
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Id</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Selects target device. See <b>Table 20</b>.</dd>
:::Selects target device. See '''Table ''''''15'''.
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''Addr'''
+
<p>&nbsp;</p>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Bitmask</b>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>
 +
<dl>
 +
<dd><b>pDirection</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to a buffer that receives the direction of the selected GPIO ports.&nbsp;(0 means output and 1 means input)</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Bus Busy SDA/SDC low
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_BUSY_COLLISION
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pDirection==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bitmask==0 when bank mode</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<h3><b>3.7.3 SusiGPIOSetDirection</b></h3>
| style="width:293px;" |
 
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiGPIOSetDirection(uint32_t Id, uint32_t Bitmask, uint32_t Direction)
 +
</pre>
  
SDA Remains low
+
<p>&nbsp;</p>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Time-out due to clock stretching
+
<dl>
 +
<dd>Sets the configuration for the selected GPIO ports.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Address Non-ACK
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_FOUND
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Parameters:</b>
Success
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd><b>Id</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Selects target device. See <b>Table 20</b>.</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.5.9 SusiSMBReadBlock''' ===
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Bitmask</b>
  
uint32_t SUSI_API SusiSMBReadBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t *pLength)
+
<dl>
 +
<dd>Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Read multi-data from the target slave device in the SMBus. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Direction</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Sets the direction of the selected GPIO ports. (0 means output and 1 means input)</dd>
:::Selects target device. See '''Table ''''''15'''. 
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''Addr'''
+
<p>&nbsp;</p>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
 
&nbsp;
 
  
::'''Cmd'''
+
<p>&nbsp;</p>
:::Specifies the offset or command of the device register to read data from. 
 
&nbsp;
 
  
::'''pBuffer'''
+
<p>&nbsp;</p>
:::Pointer to a byte array in which the function reads the block data. 
 
&nbsp;
 
  
::'''pLength'''
+
<dl>
:::Pointer to a byte in which specifies the number of bytes to be read and also return succeed bytes. 
+
<dd><b>Return Status Code:</b></dd>
&nbsp;
+
</dl>
 
&nbsp;
 
  
 +
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bitmask==0 when bank mode</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Return Status Code:'''
+
<h3><b>3.7.4 SusiGPIOGetLevel</b></h3>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<pre class="_fck_mw_lspace">
|-
+
uint32_t SUSI_API SusiGPIOGetLevel(uint32_t Id, uint32_t Bitmask, uint32_t *pLevel)
| <tbody>
+
</pre>
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Read level the from GPIO ports.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
pBuffer==NULL
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Id</b>
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Selects target device. See <b>Table 20</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd>
 +
<dl>
 +
<dd><b>Bitmask</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode.</dd>
Arbitration Error/Collision Error
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
On Write 1 write cycle
+
<p>&nbsp;</p>
  
SDA Remains low
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pLevel</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_BUSY_COLLISION
+
<dd>Pointer to a buffer that receives the GPIO level.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Address Non-ACK
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_FOUND
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
Write Non-ACK
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pLevel==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bitmask==0 when bank mode</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_WRITE_ERROR
 
  
|-
+
<h3><b>3.7.5 SusiGPIOSetLevel</b></h3>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
SUSI_STATUS_SUCCESS
+
uint32_t SUSI_API SusiGPIOSetLevel(uint32_t Id, uint32_t Bitmask, uint32_t Level)
 +
</pre>
  
|-
+
<dl>
| </tbody>
+
<dd><b>Description:</b>
|}
 
  
&nbsp;
+
<dl>
 +
<dd>Write level to GPIO ports. Depending on the hardware implementation writing multiple GPIO ports with the bit mask option does not guarantee a time synchronous change of the output levels.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
=== '''3.5.10 SusiSMB'''WriteBlock ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiSMBWriteBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t Length)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<dl>
::Write multi-data from the target slave device in the SMBus. 
+
<dd><b>Parameters:</b>
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Id</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Selects target device. See <b>Table 20</b>.</dd>
:::Selects target device. See '''Table ''''''15'''.
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''Addr'''
+
<p>&nbsp;</p>
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
 
&nbsp;
 
  
::'''Cmd'''
+
<dl>
:::Specifies the offset or command of the device register to write data to. 
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>Bitmask</b>
  
::'''pBuffer'''
+
<dl>
:::Pointer to a byte array in which the function writes the block data.
+
<dd>Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''Length'''
+
<p>&nbsp;</p>
:::Specifies the number of bytes to be write. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Level</b>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>Input level of the selected GPIO port.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
pBuffer==NULL
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Bitmask==0 when bank mode</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<h2><b>3.8 Smart Fan Functions</b></h2>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<p>The Smart Fan function call is used to set fan speed configuration. You can use this function to easily control the fan speed. It takes a pointer to an instance of structure <i>SusiFanControl</i>, which is defined as follows:</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI _STATUS_UNSUPPORTED
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:598px;height:582px;">
 +
<pre>
 +
#define SUSI_FAN_AUTO_CTRL_OPMODE_PWM 0
  
|-
+
#define SUSI_FAN_AUTO_CTRL_OPMODE_RPM 1
| style="width:293px;" |
 
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
typedef struct _AutoFan {
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
uint32_t TmlSource; // Thermal source
| style="width:293px;" |
 
Arbitration Error/Collision Error
 
  
On Write 1 write cycle
+
uint32_t OpMode;
  
SDA Remains low
+
uint32_t LowStopLimit; // Temperature (0.1 Kelvins)
  
| style="width:313px;" |
+
uint32_t LowLimit; // Temperature (0.1 Kelvins)
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
uint32_t HighLimit; // Temperature (0.1 Kelvins)
| style="width:293px;" |
 
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
uint32_t MinPWM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_PWM
SUSI_STATUS_TIMEOUT
 
  
|-
+
uint32_t MaxPWM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_PWM
| style="width:293px;" |
 
Address Non-ACK
 
  
| style="width:313px;" |
+
uint32_t MinRPM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_RPM
SUSI_STATUS_NOT_FOUND
 
  
|-
+
uint32_t MaxRPM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_RPM
| style="width:293px;" |
 
Write Non-ACK
 
  
| style="width:313px;" |
+
} AutoFan , *PAutoFan&amp;amp;nbsp;;
SUSI_STATUS_WRITE_ERROR
 
  
|-
 
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
  
|-
+
// Mode
| </tbody>
 
|}
 
  
&nbsp;
+
#define SUSI_FAN_CTRL_MODE_OFF 0
  
=== '''3.5.11 SusiSMB'''I2CReadBlock ===
+
#define SUSI_FAN_CTRL_MODE_FULL 1
  
uint32_t SUSI_API SusiSMBI2CReadBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t *pLength)
+
#define SUSI_FAN_CTRL_MODE_MANUAL 2
  
:'''Description:'''
+
#define SUSI_FAN_CTRL_MODE_AUTO 3
::Read multi-data using I<sup>2</sup>C block protocol from the target slave device in the SMBus. 
 
&nbsp;
 
  
 +
typedef struct _SusiFanControl {
  
:'''Parameters:'''
+
  uint32_t Mode;
::'''Id'''
 
:::Selects target device. See '''Table ''''''15'''.  
 
&nbsp;
 
  
::'''Addr'''
+
uint32_t PWM; // Manual mode only (0 - 100%)
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
 
&nbsp;
 
  
::'''Cmd'''
+
  AutoFan AutoControl; // Auto mode only
:::Specifies the offset or command of the device register to read data from.  
 
&nbsp;
 
  
::'''pBuffer'''
+
} SusiFanControl, *PSusiFanControl;
:::Pointer to a byte array in which the function reads the block data. 
+
</pre>
&nbsp;
+
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
::'''pLength'''
+
<p>If Mode member of SusiFanControl is not Auto, AutoControl member will be ignored. In auto mode, parameter &ldquo;TmlSource&rdquo; is use <i>SUSI_ID_HWM_TEMP_XXX</i> (<b>Table 3</b>) to select which thermal type to reference. If TmlSource is not match any temperature ID means unknown or unsupported.</p>
:::Pointer to a byte in which specifies the number of bytes to be read and also return succeed bytes.
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<h3><b>3.8.1 SusiFanControlGetCaps</b></h3>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<pre class="_fck_mw_lspace">
|-
+
uint32_t SUSI_API SusiFanControlGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
| <tbody>
+
</pre>
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Gets fan control capabilities.</dd>
Library uninitialized
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
pBuffer==NULL
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_INVALID_PARAMETER
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Id</b>
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>Smart fan ID is same as Fan Speed Value ID. See <b>Table 4</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Device unsupported
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>
 +
<dl>
 +
<dd><b>ItemId</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target capability. See <b>Table 22</b>. This parameter can also input temperature ID (<b>Table 3</b>) to get is it supports in <i>SusiFanControl</i> function.</dd>
Bus Busy SDA/SDC low
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Arbitration Error/Collision Error
+
<dl>
 +
<dd><b>pValue</b>
  
On Write 1 write cycle
+
<dl>
 +
<dd>Pointer to a buffer that receives the target capability.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
SDA Remains low
+
<p>&nbsp;</p>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_TIMEOUT
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
Address Non-ACK
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pValue==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id or ItemId</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_FOUND
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Table </b>22 Fan control capabilities item Id</dd>
Write Non-ACK
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_WRITE_ERROR
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Item Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_FC_CONTROL_SUPPORT_FLAGS</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Control support flags (See <b>Table 23</b>)</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_FC_AUTO_SUPPORT_FLAGS</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Auto support flags (See <b>Table 24</b>)</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd><b>Table </b>23 Control Support Flags</dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| </tbody>
+
<tbody>
|}
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p><b>Flag Name</b></p>
 +
</td>
 +
<td style="width:276px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:59px;">
 +
<p><b>Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_OFF_MODE</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Support off mode</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x01</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_FULL_MODE</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Support full mode</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x02</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_MANUAL_MODE</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Support manual mode</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x04</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_AUTO_MODE</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Support auto mode</p>
  
&nbsp;
+
<p>More detail to get <i>Auto Support Flags</i></p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x08</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
=== '''3.5.12 SusiSMB'''I2CWriteBlock ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiSMBI2CWriteBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t Length)
+
<dl>
 +
<dd><b>Table </b>24 Auto Support Flags</dd>
 +
</dl>
  
:'''Description:'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
::Write multi-data using I<sup>2</sup>C block protocol from the target slave device in the SMBus. 
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p><b>Flag Name</b></p>
 +
</td>
 +
<td style="width:276px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:59px;">
 +
<p><b>Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_AUTO_LOW_STOP</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Auto mode support Low Stop</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x01</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_AUTO_LOW_LIMIT</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Auto mode support Low Limit</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x02</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_AUTO_HIGH_LIMIT</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Auto mode support High Limit</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x04</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_AUTO_PWM</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Auto mode support PWM operation</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x0100</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_FC_FLAG_SUPPORT_AUTO_RPM</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Auto mode support RPM operation</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x0200</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
 +
<p>&nbsp;</p>
  
:'''Parameters:'''
+
<h3><b>3.8.2 SusiFanControlGetConfig</b></h3>
::'''Id'''
 
:::Selects target device. See '''Table ''''''15'''.
 
&nbsp;
 
  
::'''Addr'''
+
<pre class="_fck_mw_lspace">
:::Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored. 
+
uint32_t SUSI_API SusiFanControlGetConfig(uint32_t Id, SusiFanControl *pConfig)
&nbsp;
+
</pre>
  
::'''Cmd'''
+
<dl>
:::Specifies the offset or command of the device register to write data to. 
+
<dd><b>Description:</b>
&nbsp;
 
  
::'''pBuffer'''
+
<dl>
:::Pointer to a byte array in which the function writes the block data.
+
<dd>Get information about smart fan function mode and configuration.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
  
::'''Length'''
+
<p>&nbsp;</p>
:::Specifies the number of bytes to be write. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd><b>Parameters:</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Id</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Smart fan ID is same as Fan Speed Value ID. See <b>Table 4</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>
 +
<dl>
 +
<dd><b>pConfig</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Pointer to the smart fan function configuration.</dd>
pBuffer==NULL
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Device unsupported
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI _STATUS_UNSUPPORTED
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pConfig==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device not support smart mode</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Bus Busy SDA/SDC low
 
  
| style="width:313px;" |
+
<h3><b>3.8.3 SusiFanControlSetConfig</b></h3>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:293px;" |
+
uint32_t SUSI_API SusiFanControlSetConfig(uint32_t Id, SusiFanControl *pConfig)
Arbitration Error/Collision Error
+
</pre>
  
On Write 1 write cycle
+
<dl>
 +
<dd><b>Description:</b>
  
SDA Remains low
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd>Set smart fan function mode and configuration.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_BUSY_COLLISION
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Time-out due to clock stretching
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_TIMEOUT
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Parameters:</b>
Address Non-ACK
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_FOUND
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Smart fan ID is same as Fan Speed Value ID. See <b>Table 4</b>.</dd>
Write Non-ACK
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_WRITE_ERROR
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Success
+
<dl>
 +
<dd><b>pConfig</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd>Pointer to the smart fan function configuration.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
=== '''3.6 Watchdog Functions''' ===
+
<p>&nbsp;</p>
  
After the watchdog timer has been start function it must be triggered within (Delay + Event Timeout) milliseconds as set with the start function, following the initial trigger every subsequent trigger must occur within (Event Timeout) milliseconds. Should trigger not be called within the relevant time limit a system reset will occur. The SUSI watchdog timer may support two stages. If the watchdog is not triggered within the event timeout, an NMI, IRQ, or hardware output will be generated. Then the reset timeout becomes active. If the watchdog timer is not triggered within the reset timeout a reset will be generated
+
<p>&nbsp;</p>
  
:'''Initial timing:'''
+
<dl>
::<img _fck_mw_filename="Initial timing.png" _fck_mw_origimgheight="121" _fck_mw_origimgwidth="652" alt="RTENOTITLE" src="/wiki/images/9/9e/Initial_timing.png" style="vertical-align:middle;" title="RTENOTITLE" />
+
<dd><b>Return Status Code:</b></dd>
&nbsp;
+
</dl>
  
 +
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pConfig==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Wrong configuration</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Timing after trigger:'''
+
<p>&nbsp;</p>
  
:
+
<h2><b>3.9 Storage Functions</b></h2>
::<img _fck_mw_filename="Timing after trigger.png" _fck_mw_origimgheight="127" _fck_mw_origimgwidth="584" alt="RTENOTITLE" src="/wiki/images/a/a4/Timing_after_trigger.png" style="vertical-align:middle;" title="RTENOTITLE" />
 
&nbsp;
 
  
 +
<p>Access storage information and read / write data to the selected user data area. Developers can use this area to store their own data.</p>
  
:'''Where:'''
+
<p>&nbsp;</p>
  
:
+
<dl>
::'''Stage A'''
+
<dd><b>Table </b>25 Storage ID</dd>
:::Watchdog is started. 
+
</dl>
&nbsp;
 
  
::'''Stage B'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
:::Initial Delay Period is exhausted. 
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:283px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_STORAGE_STD</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Standard storage device</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:316px;">
 +
<p>SUSI_ID_STORAGE_OEM0~1</p>
 +
</td>
 +
<td style="width:283px;">
 +
<p>Other storage devices</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
::'''Stage C/F'''
+
<p>&nbsp;</p>
:::Event is triggered, NMI, IRQ, or PIN is Triggered. To Allow for possible Software Recovery. 
 
&nbsp;
 
  
::'''Stage D/G'''
+
<h3><b>3.9.1 SusiStorageGetCaps</b></h3>
:::System is reset. 
 
&nbsp;
 
  
::'''Stage E''' 
+
<pre class="_fck_mw_lspace">
&nbsp;
+
uint32_t SUSI_API SusiStorageGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
 +
</pre>
  
<ul style="margin-left: 160px;">
+
<p>&nbsp;</p>
<li>Watchdog is Triggered.</li>
 
<li>Trigger / Stop must be called before Stage C/F to prevent event from being generated.</li>
 
<li>Trigger / Stop must be called before Stage D/G to prevent The system from being reset.</li>
 
</ul>
 
  
:'''Table 16 Watchdog ID'''
+
<dl>
 +
<dd><b>Description:</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>Reads the capabilities of the current storage implementation from the selected storage interface.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:297px;" |
+
</dl>
'''Id'''
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_ID_WATCHDOG_1
 
  
| style="width:302px;" |
+
<dl>
First watchdog timer
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Id</b>
SUSI_ID_WATCHDOG_2
 
  
| style="width:302px;" |
+
<dl>
Second watchdog timer
+
<dd>Selects target device. See <b>Table 25</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_ID_WATCHDOG_3
 
  
| style="width:302px;" |
+
<dl>
Third watchdog timer
+
<dd>
 +
<dl>
 +
<dd><b>ItemId</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Selects target capability. See <b>Table 26</b>.</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.6.1 SusiWDogGetCaps''' ===
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pValue</b>
  
uint32_t SUSI_API SusiWDogGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
+
<dl>
 +
<dd>Pointer to a buffer that receives the target capability.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Gets watchdog capabilities. 
 
&nbsp;
 
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See '''Table 16'''. 
 
&nbsp;
 
  
::'''ItemId'''
+
<p>&nbsp;</p>
:::Selects target capability. See '''Table 17'''. 
 
&nbsp;
 
  
::'''pValue'''
+
<dl>
:::Pointer to a buffer that receives the target capability. 
+
<dd><b>Return Status Code:</b></dd>
&nbsp;
+
</dl>
 
&nbsp;
 
  
 +
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pValue==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device not support</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Table </b>26 Storage capabilities item Id</dd>
| <tbody>
+
</dl>
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
'''Return Value'''
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Item Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_STORAGE_TOTAL_SIZE</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Get storage total size in bytes</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_STORAGE_BLOCK_SIZE</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Get storage block size in bytes</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_STORAGE_LOCK_STATUS</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Get storage lock status. See <b>Table 27</b>.</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_STORAGE_PSW_MAX_LEN</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Get maximum length in byte of storage lock key</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd><b>Table </b>27 Storage Lock Status</dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
pValue==NULL
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Lock Status</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_STORAGE_STATUS_LOCK</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Storage is lock</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_STORAGE_STATUS_UNLOCK</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Storage is unlock</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<h3><b>3.9.2 SusiStorageAreaRead</b></h3>
| style="width:293px;" |
 
Unknown Id or ItemId
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
SUSI _STATUS_UNSUPPORTED
+
uint32_t SUSI_API SusiStorageAreaRead(uint32_t Id, uint32_t Offset, uint8_t *pBuffer, uint32_t BufLen)
 +
</pre>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Description:</b>
Success
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd>Reads data from the selected user data area.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
:'''Table '''17 Watchdog capabilities item Id
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Parameters:</b>
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Item Id'''
 
  
| style="width:302px;" |
+
<dl>
'''Description'''
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:297px;" |
+
<dd>Selects target device. See <b>Table 25</b>.</dd>
SUSI_ID_WDT_SUPPORT_FLAGS
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:302px;" |
+
<p>&nbsp;</p>
Event support flags ('''Table 18''')
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd>
SUSI_ID_WDT_DELAY_MAXIMUM
+
<dl>
 +
<dd><b>Offset</b>
  
| style="width:302px;" |
+
<dl>
The maximum delay time value
+
<dd>Storage area start address offset in bytes.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_ID_WDT_DELAY_MINIMUM
 
  
| style="width:302px;" |
+
<dl>
The minimum delay time value
+
<dd>
 +
<dl>
 +
<dd><b>pBuffer</b>
  
|-
+
<dl>
| style="width:297px;" |
+
<dd>Size in bytes of the buffer pointed to by the pBuffer parameter.</dd>
SUSI_ID_WDT_EVENT_MAXIMUM
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:302px;" |
+
<p>&nbsp;</p>
The maximum event time value
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd>
SUSI_ID_WDT_EVENT_MINIMUM
+
<dl>
 +
<dd><b>BufLen</b>
  
| style="width:302px;" |
+
<dl>
The minimum event time value
+
<dd>Size in bytes of the information read to the buffer pointed to by the pBuffer parameter.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_ID_WDT_RESET_MAXIMUM
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
The maximum reset time value
 
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_ID_WDT_RESET_MINIMUM
 
  
| style="width:302px;" |
+
<dl>
The minimum reset time value
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:297px;" |
+
<tbody>
SUSI_ID_WDT_UNIT_MINIMUM
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL || BufLen==0</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Offset+BufLen&gt;TotalSize</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_INVALID_BLOCK_LENGTH</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Read error</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_READ_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:302px;" |
+
<p>&nbsp;</p>
The minimum unit value
 
  
|-
+
<h3><b>3.9.3 SusiStorageArea</b>Write</h3>
| style="width:297px;" |
 
SUSI_ID_WDT_DELAY_TIME
 
  
| style="width:302px;" |
+
<pre class="_fck_mw_lspace">
Current delay time setting
+
uint32_t SUSI_API SusiStorageAreaWrite(uint32_t Id, uint32_t Offset, uint8_t *pBuffer, uint32_t BufLen)
 +
</pre>
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Description:</b>
SUSI_ID_WDT_EVENT_TIME
 
  
| style="width:302px;" |
+
<dl>
Current event time setting
+
<dd>Writes data to the selected user data area.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_ID_WDT_RESET_TIME
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
Current reset time setting
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Parameters:</b>
SUSI_ID_WDT_EVENT_TYPE
 
  
| style="width:302px;" |
+
<dl>
Current event type ('''Table 19''')
+
<dd><b>Id</b>
  
|-
+
<dl>
| </tbody>
+
<dd>Selects target device. See <b>Table 25</b>.</dd>
|}
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
=== '''3.6.2 SusiWDogStart''' ===
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>Offset</b>
  
uint32_t SUSI_API SusiWDogStart(uint32_t Id, uint32_t DelayTime, uint32_t EventTime, uint32_t ResetTime, uint32_t EventType)
+
<dl>
 +
<dd>Storage area start address offset in bytes.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Start the watchdog timer and set the parameters. To adjust the parameters, the watchdog must be stopped and then start again with the new values. If the hardware implementation of the watchdog timer does not allow a setting at the exact time selected, the SUSI API selects the next possible longer timing. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pBuffer</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Size in bytes of the buffer pointed to by the pBuffer parameter.</dd>
:::Selects target device. See '''Table 16'''. 
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''DelayTime'''
+
<p>&nbsp;</p>
:::Initial delay for the watchdog timer in milliseconds. 
 
&nbsp;
 
  
::'''EventTime'''
+
<dl>
:::Watchdog timeout interval in milliseconds to trigger an event. 
+
<dd>
&nbsp;
+
<dl>
 +
<dd><b>BufLen</b>
  
::'''ResetTime'''
+
<dl>
:::Watchdog timeout interval in milliseconds to trigger a reset.
+
<dd>Size in bytes of the information read to the buffer pointed to by the pBuffer parameter.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''EventType'''
+
<p>&nbsp;</p>
:::To select one kind of event type. See '''Table 19'''. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Return Status Code:</b></dd>
| <tbody>
+
</dl>
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
'''Return Value'''
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL || BufLen==0</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Offset+BufLen&gt;TotalSize</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_INVALID_BLOCK_LENGTH</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Write error</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<h3><b>3.9.4 SusiStorageArea</b>SetLock</h3>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<pre class="_fck_mw_lspace">
| style="width:293px;" |
+
uint32_t SUSI_API SusiStorageAreaSetLock(uint32_t Id, uint8_t *pBuffer, uint32_t BufLen)
Unknown Id
+
</pre>
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Description:</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Lock a storage area for write protect.</dd>
Wrong time range
+
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_SUCCESS
+
<dd><b>Parameters:</b>
  
|-
+
<dl>
| </tbody>
+
<dd><b>Id</b>
|}
 
  
:'''Table '''18 Watchdog Support Flags
+
<dl>
 +
<dd>Selects target device. See <b>Table 25</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Flag Name'''
 
  
| style="width:246px;" |
+
<dl>
'''Description'''
+
<dd>
 +
<dl>
 +
<dd><b>pBuffer</b>
  
| style="width:59px;" |
+
<dl>
'''Value'''
+
<dd>Lock of key buffer.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_WDT_FLAG_SUPPORT_IRQ
 
  
| style="width:246px;" |
+
<dl>
Support IRQ event
+
<dd>
 +
<dl>
 +
<dd><b>BufLen</b>
  
| style="width:59px;" |
+
<dl>
0x01
+
<dd>Number of key buffer</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_WDT_FLAG_SUPPORT_SCI
 
  
| style="width:246px;" |
+
<p>&nbsp;</p>
Support SCI event
 
  
| style="width:59px;" |
+
<p>&nbsp;</p>
0x02
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Return Status Code:</b></dd>
SUSI_WDT_FLAG_SUPPORT_PWRBTN
+
</dl>
  
| style="width:246px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
Support power button event
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL || BufLen==0</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Lock error</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device not support</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:59px;" |
+
<p>&nbsp;</p>
0x04
 
  
|-
+
<h3><b>3.9.5 SusiStorageArea</b>SetUnlock</h3>
| </tbody>
 
|}
 
  
:'''Table '''19 Watchdog timer event type
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiStorageAreaSetUnlock(uint32_t Id, uint8_t *pBuffer, uint32_t BufLen)
 +
</pre>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Description:</b>
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Event Type'''
 
  
| style="width:302px;" |
+
<dl>
'''Description'''
+
<dd>Unlock a storage area for write protect.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:297px;" |
 
SUSI_WDT_EVENT_TYPE_NONE
 
  
| style="width:302px;" |
+
<p>&nbsp;</p>
No event
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd><b>Parameters:</b>
SUSI_WDT_EVENT_TYPE_SCI
 
  
| style="width:302px;" |
+
<dl>
SCI event
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:297px;" |
+
<dd>Selects target device. See <b>Table 25</b>.</dd>
SUSI_WDT_EVENT_TYPE_IRQ
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:302px;" |
+
<p>&nbsp;</p>
IRQ event
 
  
|-
+
<dl>
| style="width:297px;" |
+
<dd>
SUSI_WDT_EVENT_TYPE_PWRBTN
+
<dl>
 +
<dd><b>pBuffer</b>
  
| style="width:302px;" |
+
<dl>
Power button event
+
<dd>Unlock of key buffer.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
&nbsp;
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>BufLen</b>
  
=== '''3.6.3 SusiWDogStop''' ===
+
<dl>
 +
<dd>Number of key buffer</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
uint32_t SUSI_API SusiWDogStop(uint32_t Id)
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Stops the operation of the watchdog timer. 
 
&nbsp;
 
  
:'''Parameters:'''
+
<p>&nbsp;</p>
::'''Id'''
 
:::Selects target device. See '''Table 16'''. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
:'''Return Status Code:'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pBuffer==NULL || BufLen==0</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unlock error</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_WRITE_ERROR</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Device not support</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<h2><b>3.10Thermal Protection Functions</b></h2>
'''Return Value'''
 
  
|-
+
<p>The Thermal Protection function call is used to set hardware base thermal monitoring and notify. It takes a pointer to an instance of structure <i>SusiThermalProtect</i>, which is defined as follows:</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_NOT_INITIALIZED
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:592px;">
 +
<pre>
 +
typedef struct _SusiThermalProtect{
  
|-
+
uint32_t SourceId;
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
uint32_t EventType;
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
uint32_t SendEventTemperature;
| style="width:293px;" |
 
Success
 
  
| style="width:313px;" |
+
uint32_t ClearEventTemperature;
SUSI_STATUS_SUCCESS
 
  
|-
+
} SusiThermalProtect, *PSusiThermalProtect;
| </tbody>
+
</pre>
|}
+
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
=== '''3.6.4 SusiWDog'''Trigger ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiWDogTrigger(uint32_t Id)
+
<dl>
 +
<dd><b>Where:</b>
  
:'''Description:'''
+
<dl>
::Trigger the watchdog timer. 
+
<dd><b>SourceId</b>
&nbsp;
 
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Setting thermal source ID here. See <b>Table 3</b>.</dd>
:::Selects target device. See '''Table 16'''.
+
</dl>
&nbsp;
+
</dd>
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>EventType</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd>This byte can set up a thermal protect event, see <b>Table 28</b>. NOT every platform supports all event type.</dd>
| <tbody>
+
</dl>
|-
+
</dd>
| style="width:293px;" |
+
</dl>
'''Condition'''
+
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>
Library uninitialized
+
<dl>
 +
<dd><b>SendEevntTemperature</b>
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>Unit is 0.1 Kelvins. When thermal source goes over this value, SUSI will send event according Event Type.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd>
 +
<dl>
 +
<dd><b>ClearEventTemperature</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Unit is 0.1 Kelvins. When thermal source goes below this value and Event is sent, SUSI will clear event according Event Type</dd>
Success
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 
  
=== '''3.6.5 SusiWDogSetCallBack''' ===
+
<p>&nbsp;</p>
  
uint32_t SUSI_API SusiWDogSetCallBack(uint32_t Id, SUSI_WDT_INT_CALLBACK pfnCallback, void *Context)
+
<dl>
 +
<dd><b>Table </b>28 Thermal Protection Event Type</dd>
 +
</dl>
  
:'''Description:'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
::The call back function pointer can be transmit from Application when IRQ triggered. 
+
<tbody>
&nbsp;
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p><b>Event Type Name</b></p>
 +
</td>
 +
<td style="width:276px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:59px;">
 +
<p><b>Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_THERMAL_EVENT_SHUTDOWN</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Shutdown event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x00</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_THERMAL_EVENT_THROTTLE</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Throttle event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x01</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_THERMAL_EVENT_POWEROFF</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Power off event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x02</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_THERMAL_EVENT_NONE</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>No event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0xFF</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
 +
<p>&nbsp;</p>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Table </b>29 Thermal Protection ID</dd>
:::Selects target device. See '''Table 16'''. 
+
</dl>
&nbsp;
 
  
::'''pfnCallback'''
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
:::Call back function pointer, SUSI_WDT_INT_CALLBACK is function pointer type, it can set NULL to clear. The type definition just like show below,
+
<tbody>
:::''typedef void (*SUSI_WDT_INT_CALLBACK)(void*);'' 
+
<tr>
&nbsp;
+
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:268px;">
 +
<p><b>Id</b></p>
 +
</td>
 +
<td style="width:331px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:268px;">
 +
<p>SUSI_ID_THERMAL_PROTECT_1</p>
 +
</td>
 +
<td style="width:331px;">
 +
<p>Thermal protection zone 1</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:268px;">
 +
<p>SUSI_ID_THERMAL_PROTECT_2</p>
 +
</td>
 +
<td style="width:331px;">
 +
<p>Thermal protection zone 2</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:268px;">
 +
<p>SUSI_ID_THERMAL_PROTECT_3</p>
 +
</td>
 +
<td style="width:331px;">
 +
<p>Thermal protection zone 3</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:268px;">
 +
<p>SUSI_ID_THERMAL_PROTECT_4</p>
 +
</td>
 +
<td style="width:331px;">
 +
<p>Thermal protection zone 4</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
::'''Context'''
+
<p>&nbsp;</p>
:::Pointer to a user context structure for callback function. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<h3><b>3.10.1 SusiThermalProtectionGetCaps</b></h3>
  
:'''Return Status Code:'''
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiThermalProtectionGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
 +
</pre>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Description:</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Gets Thermal Protection capabilities.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_NOT_INITIALIZED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Parameters:</b>
Unknown Id
 
  
| style="width:313px;" |
+
<dl>
SUSI _STATUS_UNSUPPORTED
+
<dd><b>Id</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>Selects target device. See <b>Table 29</b>.</dd>
Success
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI_STATUS_SUCCESS
 
  
|-
+
<dl>
| </tbody>
+
<dd>
|}
+
<dl>
 +
<dd><b>ItemId</b>
  
&nbsp;
+
<dl>
 +
<dd>Selects target capability. See <b>Table 30</b>. This parameter can also input temperature ID (<b>Table 3</b>) to get is it supports in <i>SusiThermalProtection</i> function.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
== '''3.7 GPIO Functions''' ==
+
<p>&nbsp;</p>
  
Programmable GPIO allows developers to dynamically set the GPIO input or output status
+
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pValue</b>
  
&nbsp;
+
<dl>
 +
<dd>Pointer to a buffer that receives the target capability.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
:'''Table '''20 GPIO ID
+
<p>&nbsp;</p>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:259px;" |
 
'''Id'''
 
  
| style="width:340px;" |
+
<p>&nbsp;</p>
'''Description'''
 
  
|-
+
<dl>
| style="width:259px;" |
+
<dd><b>Return Status Code:</b></dd>
SUSI_ID_GPIO(X)
+
</dl>
  
| style="width:340px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
X is GPIO pin number, definition as below:
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pValue==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id or ItemId</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
#define SUSI_ID_GPIO(x) (0x0000 &#124; x)
+
<p>&nbsp;</p>
  
This ID control single pin only.
+
<dl>
 +
<dd><b>Table </b>30 Thermal Protection capabilities item Id</dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:259px;" |
+
<tbody>
SUSI_ID_GPIO_BANK(Y)
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p><b>Item Id</b></p>
 +
</td>
 +
<td style="width:302px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_TP_EVENT_SUPPORT_FLAGS</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>Event support flags (See <b>Table 31</b>)</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_TP_EVENT_TRIGGER_MAXIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The maximum temperature to trigger event</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_TP_EVENT_TRIGGER_MINIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The minimum temperature to trigger event</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_TP_EVENT_CLEAR_MAXIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The maximum temperature to clear event</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:297px;">
 +
<p>SUSI_ID_TP_EVENT_CLEAR_MINIMUM</p>
 +
</td>
 +
<td style="width:302px;">
 +
<p>The minimum temperature to clear event</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:340px;" |
+
<dl>
Y is GPIO bank number, definition as below:
+
<dd><b>Table </b>31 Thermal Protection Support Flags</dd>
 +
</dl>
  
#define SUSI_ID_GPIO_BANK(Y) (0x10000 &#124; Y)
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
 +
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p><b>Flag Name</b></p>
 +
</td>
 +
<td style="width:276px;">
 +
<p><b>Description</b></p>
 +
</td>
 +
<td style="width:59px;">
 +
<p><b>Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_THERMAL_FLAG_SUPPORT_SHUTDOWN</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Support shutdown event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x01</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_THERMAL_FLAG_SUPPORT_THROTTLE</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Support throttle event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x02</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:267px;">
 +
<p>SUSI_THERMAL_FLAG_SUPPORT_POWEROFF</p>
 +
</td>
 +
<td style="width:276px;">
 +
<p>Support power off event</p>
 +
</td>
 +
<td style="width:59px;">
 +
<p>0x04</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
This ID control maximum 32 pins per bank.
+
<p>&nbsp;</p>
  
|-
+
<h3><b>3.10.2 SusiThermalProtectionSetConfig</b></h3>
| </tbody>
 
|}
 
  
&nbsp;
+
<pre class="_fck_mw_lspace">
 +
uint32_t SUSI_API SusiThermalProtectionSetConfig(uint32_t Id, SusiThermalProtect *pConfig)
 +
</pre>
  
=== '''3.7.1 SusiGPIOGetCaps''' ===
+
<dl>
 +
<dd><b>Description:</b>
  
uint32_t SUSI_API SusiGPIOGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
+
<dl>
 +
<dd>Set Thermal Protection configuration.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
&nbsp;
+
<p>&nbsp;</p>
  
:'''Description:'''
+
<p>&nbsp;</p>
::Reads the capabilities of the current GPIO implementation from the selected GPIO interface. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Parameters:</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd><b>Id</b>
:::Selects target device. See '''Table 20'''. 
 
&nbsp;
 
  
::'''ItemId'''
+
<dl>
:::Selects target capability. See '''Table 21'''.
+
<dd>Selects target device. See <b>Table 29</b>.</dd>
&nbsp;
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
::'''pValue'''
+
<p>&nbsp;</p>
:::Pointer to a buffer that receives the target capability. Each bit of the buffer value represents support situation of a GPIO, according to the order. 1 is supportive, and 0 is unsupportive. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<dl>
 +
<dd>
 +
<dl>
 +
<dd><b>pConfig</b>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd>A data package for thermal protection.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<p>&nbsp;</p>
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
'''Return Value'''
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd><b>Return Status Code:</b></dd>
 +
</dl>
  
|-
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
| style="width:293px;" |
+
<tbody>
pValue==NULL
+
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pConfig==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Config invalid</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Source Id or event type not support</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<h3><b>3.10.3 SusiThermalProtection</b>GetConfig</h3>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<pre class="_fck_mw_lspace">
SUSI _STATUS_UNSUPPORTED
+
uint32_t SUSI_API SusiThermalProtectionGetConfig(uint32_t Id, SusiThermalProtect *pConfig)
 
+
</pre>
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Table '''21 GPIO capabilities item Id
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Item Id'''
 
 
 
| style="width:302px;" |
 
'''Description'''
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_GPIO_INPUT_SUPPORT
 
 
 
| style="width:302px;" |
 
Get GPIO input support state
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_GPIO_OUTPUT_SUPPORT
 
 
 
| style="width:302px;" |
 
Get GPIO output support state
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
=== '''3.7.2 SusiGPIOGetDirection''' ===
 
 
 
uint32_t SUSI_API SusiGPIOGetDirection(uint32_t Id, uint32_t Bitmask, uint32_t *pDirection)
 
 
 
:'''Description:'''
 
::Gets the configuration for the selected GPIO ports. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 20'''. 
 
&nbsp;
 
 
 
::'''Bitmask'''
 
:::Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode. 
 
&nbsp;
 
 
 
::'''pDirection'''
 
:::Pointer to a buffer that receives the direction of the selected GPIO ports.&nbsp;(0 means output and 1 means input) 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pDirection==NULL
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Bitmask==0 when bank mode
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
=== '''3.7.3 SusiGPIOSetDirection''' ===
 
 
 
uint32_t SUSI_API SusiGPIOSetDirection(uint32_t Id, uint32_t Bitmask, uint32_t Direction)
 
 
 
&nbsp;
 
 
 
:'''Description:'''
 
::
 
:::Sets the configuration for the selected GPIO ports. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 20'''. 
 
&nbsp;
 
 
 
::'''Bitmask'''
 
:::Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode. 
 
&nbsp;
 
 
 
::'''Direction'''
 
:::Sets the direction of the selected GPIO ports. (0 means output and 1 means input) 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
Bitmask==0 when bank mode
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
=== '''3.7.4 SusiGPIOGetLevel''' ===
 
 
 
uint32_t SUSI_API SusiGPIOGetLevel(uint32_t Id, uint32_t Bitmask, uint32_t *pLevel)
 
 
 
:'''Description:'''
 
::Read level the from GPIO ports. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 20'''. 
 
&nbsp;
 
 
 
::'''Bitmask'''
 
:::Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode. 
 
&nbsp;
 
 
 
::'''pLevel'''
 
:::Pointer to a buffer that receives the GPIO level. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pLevel==NULL
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Bitmask==0 when bank mode
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.7.5 SusiGPIOSetLevel''' ===
 
 
 
uint32_t SUSI_API SusiGPIOSetLevel(uint32_t Id, uint32_t Bitmask, uint32_t Level)
 
 
 
:'''Description:'''
 
::Write level to GPIO ports. Depending on the hardware implementation writing multiple GPIO ports with the bit mask option does not guarantee a time synchronous change of the output levels. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 20'''. 
 
&nbsp;
 
 
 
::'''Bitmask'''
 
:::Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode. 
 
&nbsp;
 
 
 
::'''Level'''
 
:::Input level of the selected GPIO port. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
Bitmask==0 when bank mode
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
== '''3.8 Smart Fan Functions''' ==
 
 
 
The Smart Fan function call is used to set fan speed configuration. You can use this function to easily control the fan speed. It takes a pointer to an instance of structure ''SusiFanControl'', which is defined as follows:
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:598px;height:582px;" | <pre>#define SUSI_FAN_AUTO_CTRL_OPMODE_PWM 0
 
 
 
#define SUSI_FAN_AUTO_CTRL_OPMODE_RPM 1
 
 
 
typedef struct _AutoFan {
 
 
 
uint32_t TmlSource; // Thermal source
 
 
 
uint32_t OpMode;
 
 
 
uint32_t LowStopLimit; // Temperature (0.1 Kelvins)
 
 
 
uint32_t LowLimit; // Temperature (0.1 Kelvins)
 
 
 
uint32_t HighLimit; // Temperature (0.1 Kelvins)
 
 
 
uint32_t MinPWM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_PWM
 
 
 
uint32_t MaxPWM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_PWM
 
 
 
uint32_t MinRPM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_RPM
 
 
 
uint32_t MaxRPM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_RPM
 
 
 
} AutoFan , *PAutoFan&amp;nbsp;;
 
 
 
 
 
 
 
// Mode
 
 
 
#define SUSI_FAN_CTRL_MODE_OFF 0
 
 
 
#define SUSI_FAN_CTRL_MODE_FULL 1
 
 
 
#define SUSI_FAN_CTRL_MODE_MANUAL 2
 
 
 
#define SUSI_FAN_CTRL_MODE_AUTO 3
 
 
 
typedef struct _SusiFanControl {
 
 
 
uint32_t Mode;
 
 
 
uint32_t PWM; // Manual mode only (0 - 100%)
 
 
 
AutoFan AutoControl; // Auto mode only
 
 
 
} SusiFanControl, *PSusiFanControl;
 
</pre>
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
If Mode member of SusiFanControl is not Auto, AutoControl member will be ignored. In auto mode, parameter “TmlSource” is use ''SUSI_ID_HWM_TEMP_XXX'' ('''Table 3''') to select which thermal type to reference. If TmlSource is not match any temperature ID means unknown or unsupported.
 
 
 
&nbsp;
 
 
 
=== '''3.8.1 SusiFanControlGetCaps''' ===
 
 
 
uint32_t SUSI_API SusiFanControlGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
 
 
 
:'''Description:'''
 
::Gets fan control capabilities. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Smart fan ID is same as Fan Speed Value ID. See '''Table 4'''. 
 
&nbsp;
 
 
 
::'''ItemId'''
 
:::Selects target capability. See '''Table 22'''. This parameter can also input temperature ID ('''Table 3''') to get is it supports in ''SusiFanControl'' function. 
 
&nbsp;
 
 
 
::'''pValue'''
 
:::Pointer to a buffer that receives the target capability. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pValue==NULL
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id or ItemId
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Table '''22 Fan control capabilities item Id
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Item Id'''
 
 
 
| style="width:302px;" |
 
'''Description'''
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_FC_CONTROL_SUPPORT_FLAGS
 
 
 
| style="width:302px;" |
 
Control support flags (See '''Table 23''')
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_FC_AUTO_SUPPORT_FLAGS
 
 
 
| style="width:302px;" |
 
Auto support flags (See '''Table 24''')
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Table '''23 Control Support Flags
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:267px;" |
 
'''Flag Name'''
 
 
 
| style="width:276px;" |
 
'''Description'''
 
 
 
| style="width:59px;" |
 
'''Value'''
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_OFF_MODE
 
 
 
| style="width:276px;" |
 
Support off mode
 
 
 
| style="width:59px;" |
 
0x01
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_FULL_MODE
 
 
 
| style="width:276px;" |
 
Support full mode
 
 
 
| style="width:59px;" |
 
0x02
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_MANUAL_MODE
 
 
 
| style="width:276px;" |
 
Support manual mode
 
 
 
| style="width:59px;" |
 
0x04
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_AUTO_MODE
 
 
 
| style="width:276px;" |
 
Support auto mode
 
 
 
More detail to get ''Auto Support Flags''
 
 
 
| style="width:59px;" |
 
0x08
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Table '''24 Auto Support Flags
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:267px;" |
 
'''Flag Name'''
 
 
 
| style="width:276px;" |
 
'''Description'''
 
 
 
| style="width:59px;" |
 
'''Value'''
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_AUTO_LOW_STOP
 
 
 
| style="width:276px;" |
 
Auto mode support Low Stop
 
 
 
| style="width:59px;" |
 
0x01
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_AUTO_LOW_LIMIT
 
 
 
| style="width:276px;" |
 
Auto mode support Low Limit
 
 
 
| style="width:59px;" |
 
0x02
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_AUTO_HIGH_LIMIT
 
 
 
| style="width:276px;" |
 
Auto mode support High Limit
 
 
 
| style="width:59px;" |
 
0x04
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_AUTO_PWM
 
 
 
| style="width:276px;" |
 
Auto mode support PWM operation
 
 
 
| style="width:59px;" |
 
0x0100
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_FC_FLAG_SUPPORT_AUTO_RPM
 
 
 
| style="width:276px;" |
 
Auto mode support RPM operation
 
 
 
| style="width:59px;" |
 
0x0200
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.8.2 SusiFanControlGetConfig''' ===
 
 
 
uint32_t SUSI_API SusiFanControlGetConfig(uint32_t Id, SusiFanControl *pConfig)
 
 
 
:'''Description:'''
 
::Get information about smart fan function mode and configuration. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Smart fan ID is same as Fan Speed Value ID. See '''Table 4'''. 
 
&nbsp;
 
 
 
::'''pConfig'''
 
:::Pointer to the smart fan function configuration. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pConfig==NULL
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Device not support smart mode
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.8.3 SusiFanControlSetConfig''' ===
 
 
 
uint32_t SUSI_API SusiFanControlSetConfig(uint32_t Id, SusiFanControl *pConfig)
 
 
 
:'''Description:'''
 
::
 
:::Set smart fan function mode and configuration. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Smart fan ID is same as Fan Speed Value ID. See '''Table 4'''. 
 
&nbsp;
 
 
 
::'''pConfig'''
 
:::Pointer to the smart fan function configuration. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pConfig==NULL
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Wrong configuration
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
== '''3.9 Storage Functions''' ==
 
 
 
Access storage information and read / write data to the selected user data area. Developers can use this area to store their own data.
 
 
 
&nbsp;
 
 
 
:'''Table '''25 Storage ID
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:316px;" |
 
'''Id'''
 
 
 
| style="width:283px;" |
 
'''Description'''
 
 
 
|-
 
| style="width:316px;" |
 
SUSI_ID_STORAGE_STD
 
 
 
| style="width:283px;" |
 
Standard storage device
 
 
 
|-
 
| style="width:316px;" |
 
SUSI_ID_STORAGE_OEM0~1
 
 
 
| style="width:283px;" |
 
Other storage devices
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.9.1 SusiStorageGetCaps''' ===
 
 
 
uint32_t SUSI_API SusiStorageGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
 
 
 
&nbsp;
 
 
 
:'''Description:'''
 
::Reads the capabilities of the current storage implementation from the selected storage interface. 
 
&nbsp;
 
 
 
 
 
&nbsp;
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 25'''. 
 
&nbsp;
 
 
 
::'''ItemId'''
 
:::Selects target capability. See '''Table 26'''. 
 
&nbsp;
 
 
 
::'''pValue'''
 
:::Pointer to a buffer that receives the target capability. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pValue==NULL
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Device not support
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Table '''26 Storage capabilities item Id
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Item Id'''
 
 
 
| style="width:302px;" |
 
'''Description'''
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_STORAGE_TOTAL_SIZE
 
 
 
| style="width:302px;" |
 
Get storage total size in bytes
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_STORAGE_BLOCK_SIZE
 
 
 
| style="width:302px;" |
 
Get storage block size in bytes
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_STORAGE_LOCK_STATUS
 
 
 
| style="width:302px;" |
 
Get storage lock status. See '''Table 27'''.
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_STORAGE_PSW_MAX_LEN
 
 
 
| style="width:302px;" |
 
Get maximum length in byte of storage lock key
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Table '''27 Storage Lock Status
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Lock Status'''
 
 
 
| style="width:302px;" |
 
'''Description'''
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_STORAGE_STATUS_LOCK
 
 
 
| style="width:302px;" |
 
Storage is lock
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_STORAGE_STATUS_UNLOCK
 
 
 
| style="width:302px;" |
 
Storage is unlock
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.9.2 SusiStorageAreaRead''' ===
 
 
 
uint32_t SUSI_API SusiStorageAreaRead(uint32_t Id, uint32_t Offset, uint8_t *pBuffer, uint32_t BufLen)
 
 
 
:'''Description:'''
 
::Reads data from the selected user data area. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 25'''. 
 
&nbsp;
 
 
 
::'''Offset'''
 
:::Storage area start address offset in bytes. 
 
&nbsp;
 
 
 
::'''pBuffer'''
 
:::Size in bytes of the buffer pointed to by the pBuffer parameter. 
 
&nbsp;
 
 
 
::'''BufLen'''
 
:::Size in bytes of the information read to the buffer pointed to by the pBuffer parameter. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pBuffer==NULL &#124;&#124; BufLen==0
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Offset+BufLen>TotalSize
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_INVALID_BLOCK_LENGTH
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Read error
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_READ_ERROR
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.9.3 SusiStorageArea'''Write ===
 
 
 
uint32_t SUSI_API SusiStorageAreaWrite(uint32_t Id, uint32_t Offset, uint8_t *pBuffer, uint32_t BufLen)
 
 
 
:'''Description:'''
 
::Writes data to the selected user data area. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 25'''. 
 
&nbsp;
 
 
 
::'''Offset'''
 
:::Storage area start address offset in bytes. 
 
&nbsp;
 
 
 
::'''pBuffer'''
 
:::Size in bytes of the buffer pointed to by the pBuffer parameter. 
 
&nbsp;
 
 
 
::'''BufLen'''
 
:::Size in bytes of the information read to the buffer pointed to by the pBuffer parameter. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pBuffer==NULL &#124;&#124; BufLen==0
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Offset+BufLen>TotalSize
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_INVALID_BLOCK_LENGTH
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Write error
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_WRITE_ERROR
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.9.4 SusiStorageArea'''SetLock ===
 
 
 
uint32_t SUSI_API SusiStorageAreaSetLock(uint32_t Id, uint8_t *pBuffer, uint32_t BufLen)
 
 
 
:'''Description:'''
 
::Lock a storage area for write protect. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 25'''. 
 
&nbsp;
 
 
 
::'''pBuffer'''
 
:::Lock of key buffer. 
 
&nbsp;
 
 
 
::'''BufLen'''
 
:::Number of key buffer 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pBuffer==NULL &#124;&#124; BufLen==0
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Lock error
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_WRITE_ERROR
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Device not support
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.9.5 SusiStorageArea'''SetUnlock ===
 
 
 
uint32_t SUSI_API SusiStorageAreaSetUnlock(uint32_t Id, uint8_t *pBuffer, uint32_t BufLen)
 
 
 
:'''Description:'''
 
::Unlock a storage area for write protect. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 25'''. 
 
&nbsp;
 
 
 
::'''pBuffer'''
 
:::Unlock of key buffer. 
 
&nbsp;
 
 
 
::'''BufLen'''
 
:::Number of key buffer 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pBuffer==NULL &#124;&#124; BufLen==0
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unlock error
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_WRITE_ERROR
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Device not support
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
== '''3.10Thermal Protection Functions''' ==
 
 
 
The Thermal Protection function call is used to set hardware base thermal monitoring and notify. It takes a pointer to an instance of structure ''SusiThermalProtect'', which is defined as follows:
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:592px;" | <pre>typedef struct _SusiThermalProtect{
 
 
 
uint32_t SourceId;
 
 
 
uint32_t EventType;
 
 
 
uint32_t SendEventTemperature;
 
 
 
uint32_t ClearEventTemperature;
 
 
 
} SusiThermalProtect, *PSusiThermalProtect;
 
</pre>
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Where:'''
 
::'''SourceId'''
 
:::Setting thermal source ID here. See '''Table 3'''. 
 
&nbsp;
 
 
 
::'''EventType'''
 
:::This byte can set up a thermal protect event, see '''Table 28'''. NOT every platform supports all event type. 
 
&nbsp;
 
 
 
::'''SendEevntTemperature'''
 
:::Unit is 0.1 Kelvins. When thermal source goes over this value, SUSI will send event according Event Type. 
 
&nbsp;
 
 
 
::'''ClearEventTemperature'''
 
:::Unit is 0.1 Kelvins. When thermal source goes below this value and Event is sent, SUSI will clear event according Event Type 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Table '''28 Thermal Protection Event Type
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:267px;" |
 
'''Event Type Name'''
 
 
 
| style="width:276px;" |
 
'''Description'''
 
 
 
| style="width:59px;" |
 
'''Value'''
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_THERMAL_EVENT_SHUTDOWN
 
 
 
| style="width:276px;" |
 
Shutdown event
 
 
 
| style="width:59px;" |
 
0x00
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_THERMAL_EVENT_THROTTLE
 
 
 
| style="width:276px;" |
 
Throttle event
 
 
 
| style="width:59px;" |
 
0x01
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_THERMAL_EVENT_POWEROFF
 
 
 
| style="width:276px;" |
 
Power off event
 
 
 
| style="width:59px;" |
 
0x02
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_THERMAL_EVENT_NONE
 
 
 
| style="width:276px;" |
 
No event
 
 
 
| style="width:59px;" |
 
0xFF
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Table '''29 Thermal Protection ID
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:268px;" |
 
'''Id'''
 
 
 
| style="width:331px;" |
 
'''Description'''
 
 
 
|-
 
| style="width:268px;" |
 
SUSI_ID_THERMAL_PROTECT_1
 
 
 
| style="width:331px;" |
 
Thermal protection zone 1
 
 
 
|-
 
| style="width:268px;" |
 
SUSI_ID_THERMAL_PROTECT_2
 
 
 
| style="width:331px;" |
 
Thermal protection zone 2
 
 
 
|-
 
| style="width:268px;" |
 
SUSI_ID_THERMAL_PROTECT_3
 
 
 
| style="width:331px;" |
 
Thermal protection zone 3
 
 
 
|-
 
| style="width:268px;" |
 
SUSI_ID_THERMAL_PROTECT_4
 
 
 
| style="width:331px;" |
 
Thermal protection zone 4
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.10.1 SusiThermalProtectionGetCaps''' ===
 
 
 
uint32_t SUSI_API SusiThermalProtectionGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
 
 
 
:'''Description:'''
 
::Gets Thermal Protection capabilities. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 29'''. 
 
&nbsp;
 
 
 
::'''ItemId'''
 
:::Selects target capability. See '''Table 30'''. This parameter can also input temperature ID ('''Table 3''') to get is it supports in ''SusiThermalProtection'' function. 
 
&nbsp;
 
 
 
::'''pValue'''
 
:::Pointer to a buffer that receives the target capability. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pValue==NULL
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id or ItemId
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
:'''Table '''30 Thermal Protection capabilities item Id
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:297px;" |
 
'''Item Id'''
 
 
 
| style="width:302px;" |
 
'''Description'''
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_TP_EVENT_SUPPORT_FLAGS
 
 
 
| style="width:302px;" |
 
Event support flags (See '''Table 31''')
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_TP_EVENT_TRIGGER_MAXIMUM
 
 
 
| style="width:302px;" |
 
The maximum temperature to trigger event
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_TP_EVENT_TRIGGER_MINIMUM
 
 
 
| style="width:302px;" |
 
The minimum temperature to trigger event
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_TP_EVENT_CLEAR_MAXIMUM
 
 
 
| style="width:302px;" |
 
The maximum temperature to clear event
 
 
 
|-
 
| style="width:297px;" |
 
SUSI_ID_TP_EVENT_CLEAR_MINIMUM
 
 
 
| style="width:302px;" |
 
The minimum temperature to clear event
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
:'''Table '''31 Thermal Protection Support Flags
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:267px;" |
 
'''Flag Name'''
 
 
 
| style="width:276px;" |
 
'''Description'''
 
 
 
| style="width:59px;" |
 
'''Value'''
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_THERMAL_FLAG_SUPPORT_SHUTDOWN
 
 
 
| style="width:276px;" |
 
Support shutdown event
 
 
 
| style="width:59px;" |
 
0x01
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_THERMAL_FLAG_SUPPORT_THROTTLE
 
 
 
| style="width:276px;" |
 
Support throttle event
 
 
 
| style="width:59px;" |
 
0x02
 
 
 
|-
 
| style="width:267px;" |
 
SUSI_THERMAL_FLAG_SUPPORT_POWEROFF
 
 
 
| style="width:276px;" |
 
Support power off event
 
 
 
| style="width:59px;" |
 
0x04
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.10.2 SusiThermalProtectionSetConfig''' ===
 
 
 
uint32_t SUSI_API SusiThermalProtectionSetConfig(uint32_t Id, SusiThermalProtect *pConfig)
 
 
 
:'''Description:'''
 
::Set Thermal Protection configuration. 
 
&nbsp;
 
 
 
 
 
:'''Parameters:'''
 
::'''Id'''
 
:::Selects target device. See '''Table 29'''. 
 
&nbsp;
 
 
 
::'''pConfig'''
 
:::A data package for thermal protection. 
 
&nbsp;
 
 
&nbsp;
 
 
 
 
 
:'''Return Status Code:'''
 
 
 
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
 
|-
 
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
 
 
| style="width:313px;" |
 
'''Return Value'''
 
 
 
|-
 
| style="width:293px;" |
 
Library uninitialized
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_NOT_INITIALIZED
 
 
 
|-
 
| style="width:293px;" |
 
pConfig==NULL
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Config invalid
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_INVALID_PARAMETER
 
 
 
|-
 
| style="width:293px;" |
 
Source Id or event type not support
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Unknown Id
 
 
 
| style="width:313px;" |
 
SUSI _STATUS_UNSUPPORTED
 
 
 
|-
 
| style="width:293px;" |
 
Success
 
 
 
| style="width:313px;" |
 
SUSI_STATUS_SUCCESS
 
 
 
|-
 
| </tbody>
 
|}
 
 
 
&nbsp;
 
 
 
=== '''3.10.3 SusiThermalProtection'''GetConfig ===
 
 
 
uint32_t SUSI_API SusiThermalProtectionGetConfig(uint32_t Id, SusiThermalProtect *pConfig)
 
 
 
:'''Description:'''
 
::Get Thermal Protection configuration. 
 
&nbsp;
 
  
 +
<dl>
 +
<dd><b>Description:</b>
  
:'''Parameters:'''
+
<dl>
::'''Id'''
+
<dd>Get Thermal Protection configuration.</dd>
:::Selects target device. See '''Table 29'''. 
+
</dl>
&nbsp;
+
</dd>
 +
</dl>
  
::'''pConfig'''
+
<p>&nbsp;</p>
:::A data package for thermal protection. 
 
&nbsp;
 
 
&nbsp;
 
  
 +
<p>&nbsp;</p>
  
:'''Return Status Code:'''
+
<dl>
 +
<dd><b>Parameters:</b>
  
{| border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;"
+
<dl>
|-
+
<dd><b>Id</b>
| <tbody>
 
|-
 
| style="width:293px;" |
 
'''Condition'''
 
  
| style="width:313px;" |
+
<dl>
'''Return Value'''
+
<dd>Selects target device. See <b>Table 29</b>.</dd>
 +
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Library uninitialized
 
  
| style="width:313px;" |
+
<dl>
SUSI_STATUS_NOT_INITIALIZED
+
<dd>
 +
<dl>
 +
<dd><b>pConfig</b>
  
|-
+
<dl>
| style="width:293px;" |
+
<dd>A data package for thermal protection.</dd>
pConfig==NULL
+
</dl>
 +
</dd>
 +
</dl>
 +
</dd>
 +
</dl>
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_INVALID_PARAMETER
 
  
|-
+
<p>&nbsp;</p>
| style="width:293px;" |
 
Unknown Id
 
  
| style="width:313px;" |
+
<p>&nbsp;</p>
SUSI _STATUS_UNSUPPORTED
 
  
|-
+
<dl>
| style="width:293px;" |
+
<dd><b>Return Status Code:</b></dd>
Success
+
</dl>
  
| style="width:313px;" |
+
<table border="1" cellpadding="0" cellspacing="0" style="margin:1em auto 1em auto;">
SUSI_STATUS_SUCCESS
+
<tbody>
 +
<tr>
 +
<td>&lt;tbody&gt;</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p><b>Condition</b></p>
 +
</td>
 +
<td style="width:313px;">
 +
<p><b>Return Value</b></p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Library uninitialized</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_NOT_INITIALIZED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>pConfig==NULL</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_INVALID_PARAMETER</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Unknown Id</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI _STATUS_UNSUPPORTED</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td style="width:293px;">
 +
<p>Success</p>
 +
</td>
 +
<td style="width:313px;">
 +
<p>SUSI_STATUS_SUCCESS</p>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>&lt;/tbody&gt;</td>
 +
</tr>
 +
</tbody>
 +
</table>
  
|-
+
<p>&nbsp;</p>
| </tbody>
 
|}
 

Revision as of 07:57, 9 June 2022

Contents

1 Introduction

SUSI – A Bridge to Simplify & Enhance H/W & Application Implementation Efficiency

When developers want to write an application that involves hardware access, they have to study the specifications to write the drivers. This is a time-consuming job and requires lots of expertise.

Advantech has done all the hard work for our customers with the release of a suite of Software APIs (Application Programming Interfaces), called Secured & Unified Smart Interface (SUSI).

SUSI provides not only the underlying drivers required but also a rich set of user-friendly, intelligent and integrated interfaces, which speeds development, enhances security and offers add-on value for Advantech platforms. SUSI plays the role of catalyst between developer and solution, and makes Advantech embedded platforms easier and simpler to adopt and operate with customer applications.

 

1.1 Functions

1.1.1 GPIO

<img _fck_mw_filename="1.1.1 GPIO.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.1 GPIO.png" height="150" src="/wiki/images/b/ba/1.1.1_GPIO.png" style="vertical-align:middle;" title="1.1.1 GPIO.png" width="100" />

General Purpose Input/Output is a flexible parallel interface that allows a variety of custom connections. It supports various Digital I/O devices – input devices like buttons, switches; output devices such as cash drawers, LED lights…etc. And, allows users to monitor the level of signal input or set the output status to switch on/off the device. Our APIs also provided Programmable GPIO and allows developers to dynamically set the GPIO input or output status.

 

1.1.2 SMBus [x86 only and RISC is unavailable]

<img _fck_mw_filename="1.1.2 SMBus.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.2 SMBus.png" height="150" src="/wiki/images/f/f6/1.1.2_SMBus.png" style="vertical-align:middle;" title="1.1.2 SMBus.png" width="100" />

SMBus is the System Management Bus defined by Intel® Corporation in 1995. It is used in personal computers and servers for low-speed system management communications. Today, SMBus is used in all types of embedded systems. The SMBus APIs allows a developer to interface a platform to a downstream embedded system environment and transfer serial messages using the SMBus protocols, allowing multiple simultaneous device control.

 

1.1.3 I2C

<img _fck_mw_filename="1.1.3 i2c.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.3 i2c.png" height="150" src="/wiki/images/4/4d/1.1.3_i2c.png" style="vertical-align:middle;" title="1.1.3 i2c.png" width="100" />

I2C is a bi-directional two wire bus that was developed by Philips for use in their televisions in the 1980s. Today, I2C is used in all types of embedded systems. The I2C API allows a developer to interface a platform to a downstream embedded system environment and transfer serial messages using the I2C protocols, allowing multiple simultaneous device control.

 

1.1.4 Watchdog

<img _fck_mw_filename="1.1.4 watchdog.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.4 watchdog.png" height="150" src="/wiki/images/d/d4/1.1.4_watchdog.png" style="vertical-align:middle;" title="1.1.4 watchdog.png" width="100" />

A watchdog timer (WDT) is a device or electronic card that performs a specific operation after a certain period of time if something goes wrong with an electronic system and the system does not recover on its own.

A watchdog timer can be programmed to perform a warm boot (restarting the system) after a certain number of seconds during which a program or computer fails to respond following the most recent mouse click or keyboard action.

 

1.1.5 Hardware Monitor [x86 only and RISC is limited in some features]

<img _fck_mw_filename="1.1.5 HardwareMonitor 1.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.5 HardwareMonitor 1.png" height="150" src="/wiki/images/1/1f/1.1.5_HardwareMonitor_1.png" style="vertical-align:middle;" title="1.1.5 HardwareMonitor 1.png" width="100" />   <img _fck_mw_filename="1.1.5 HardwareMonitor 2.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.5 HardwareMonitor 2.png" height="150" src="/wiki/images/e/eb/1.1.5_HardwareMonitor_2.png" style="vertical-align:middle;" title="1.1.5 HardwareMonitor 2.png" width="100" />

The Hardware Monitor (HWM) APIs is a system health supervision API that inspects certain condition indexes, such as smart fan, fan speed, temperature, current, case open and voltage.

 

1.1.6 Backlight Control

<img _fck_mw_filename="1.1.6 Backlight 1.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.6 Backlight 1.png" height="150" src="/wiki/images/a/a6/1.1.6_Backlight_1.png" style="vertical-align:middle;" title="1.1.6 Backlight 1.png" width="100" />   <img _fck_mw_filename="1.1.6 Backlight 2.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.6 Backlight 2.png" height="150" src="/wiki/images/5/56/1.1.6_Backlight_2.png" style="vertical-align:middle;" title="1.1.6 Backlight 2.png" width="100" />

The Backlight Control APIs allows a developer to interface platform to easily control brightness through PWM and backlight on/off.

 

1.1.7 Storage [x86 only and RISC is unavailable]

<img _fck_mw_filename="1.1.7 Storage.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.7 Storage.png" height="150" src="/wiki/images/8/83/1.1.7_Storage.png" style="vertical-align:middle;" title="1.1.7 Storage.png" width="100" />

Storage is a non-volatile storage, the storage APIs allows a developer to access storage information, read/write data to storage and lock/unlock data area (same like write protection) by a key.

 

1.1.8 Thermal Protection [x86 only and RISC is unavailable]

<img _fck_mw_filename="1.1.8 Thermal 1.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.8 Thermal 1.png" height="150" src="/wiki/images/4/47/1.1.8_Thermal_1.png" style="vertical-align:middle;" title="1.1.8 Thermal 1.png" width="100" />   <img _fck_mw_filename="1.1.8 Thermal 2.png" _fck_mw_origimgheight="259" _fck_mw_origimgwidth="300" alt="1.1.8 Thermal 2.png" height="150" src="/wiki/images/2/21/1.1.8_Thermal_2.png" style="vertical-align:middle;" title="1.1.8 Thermal 2.png" width="100" />

Thermal Protection can select a thermal source to monitor. When source temperature reach the limit, SUSI can act protect function to protect system.

1.2 Benefits

  • Faster Time to Market
SUSI's unified API helps developers write applications to control the hardware without knowing the hardware specs of the chipsets and driver architecture.

 

  • Reduced Project Effort
When customers have their own devices connected to the onboard bus, they can either: study the data sheet and write the driver & API from scratch, or they can use SUSI to start the integration with a 50% head start. Developers can reference the sample program on the CD to see and learn more about the software development environment.

 

  • Enhances Hardware Platform Reliability
SUSI provides a trusted custom ready solution which combines chipset and library function support, controlling application development through SUSI enhances reliability and brings peace of mind.

 

  • Flexible Upgrade Possibilities
SUSI supports an easy upgrade solution for customers. Customers just need to install the new version SUSI that supports the new functions.

 

  • Backward compatibility
Support SUSI 3.0, iManager 2.0 and EAPI 1.0 interface. Customers don’t need to change any APIs in their applications.

1.3 Environment Requirements

1.3.1Operating Systems

Windows XP Embedded

Windows XP 32-bit

Windows 7 (x86 / x64)

WES7 (x86 / x64)

Windows 8 Desktop (x86 / x64)

Windows 10 (x86 / x64)

Windows CE 5 / 6 / 7

RISC Yocto 2.1

Linux (Project based, request from your local FAE)

Android (Project based, request from your local FAE)

QNX (Project based, request from your local FAE)

VxWorks (Project based, request from your local FAE)

 

2 SUSI Definition

Susi4.h file includes the API declaration, constants and flags that are required for programming.

2.1 Status Codes

All SUSI API functions immediately return a status code from a common list of possible errors. Any function may return any of the defined status codes. See the Appendix for more detailed information.

 

#define SUSI_STATUS_NOT_INITIALIZED					    0xFFFFFFFF
Description
The SUSI API library is not yet or unsuccessfully initialized. SusiLibInitialize needs to be called prior to the first access of any other SUSI API functions.

Actions
Call SusiLibInitialize.

 

#define SUSI_STATUS_INITIALIZED						    0xFFFFFFFE
Description
Library is initialized.

Actions
None.

 

#define SUSI_STATUS_ALLOC_ERROR						    0xFFFFFFFD
Description
Memory Allocation Error.

Actions
Free memory and try again.

 

#define SUSI_STATUS_DRIVER_TIMEOUT						0xFFFFFFFC
Description
Time out in driver. This is Normally caused by hardware/software semaphore timeout.

Actions
Retry.

 

#define SUSI_STATUS_INVALID_PARAMETER					0xFFFFFEFF
Description
One or more of the SUSI API functions call parameters are out of defined range.

Actions
Verify Function Parameters.

 

#define SUSI_STATUS_INVALID_BLOCK_ALIGNMENT			0xFFFFFEFE
Description
The Block Alignment is incorrect.

Actions
Use Inputs and Outputs to correctly select input and outputs.

 

#define SUSI_STATUS_INVALID_BLOCK_LENGTH				0xFFFFFEFD
Description
This means that the Block length is too long.

Actions
Use Alignment Capabilities information to correctly align write access.

 

#define SUSI_STATUS_INVALID_DIRECTION					0xFFFFFEFC
Description
The current Direction Argument attempts to set GPIOs to a unsupported direction. I.E. Setting GPI to Output.

Actions
Use Inputs and Outputs to correctly select input and outputs.

 

#define SUSI_STATUS_INVALID_BITMASK					0xFFFFFEFB
Description
The Bitmask Selects bits/GPIOs which are not supported for the current ID.

Actions
Use Inputs and Outputs to probe supported bits.

 

#define SUSI_STATUS_RUNNING							0xFFFFFEFA
Description
Watchdog timer already started.

Actions
Call SusiWDogStop before retrying.

 

#define SUSI_STATUS_UNSUPPORTED						0xFFFFFCFF
Description
This function or ID is not supported at the actual hardware environment.

Actions
None.

#define SUSI_STATUS_NOT_FOUND							0xFFFFFBFF
Description
Selected device was not found

Actions
None.

 

#define SUSI_STATUS_TIMEOUT							0xFFFFFBFE
Description
Device has no response.

Actions
None.

 

#define SUSI_STATUS_BUSY_COLLISION						0xFFFFFBFD
Description
The selected device or ID is busy or a data collision is detected.

Actions
Retry.

 

#define SUSI_STATUS_READ_ERROR							0xFFFFFAFF
Description
An error is detected during a read operation.

Actions
Retry.

 

#define SUSI_STATUS_WRITE_ERROR						0xFFFFFAFE
Description
An error is detected during a write operation.

Actions
Retry.

 

#define SUSI_STATUS_MORE_DATA							0xFFFFF9FF
Description
The amount of available data exceeds the buffer size. Storage buffer overflow was prevented. Read count was larger than the defined buffer length.

Actions
Either increase the buffer size or reduce the block length.

 

#define SUSI_STATUS_ERROR								0xFFFFF0FF
Description
Generic error message. No further error details are available.

Actions
None.

 

#define SUSI_STATUS_SUCCESS					0
Description
The operation is successful.

Actions
None.

2.2 ID

#define SUSI_ID_UNKNOWN					0xFFFFFFFF
Description
Undefined/Unknown ID

#define SUSI_ID_BOARD_MANUFACTURER_STR			0
#define SUSI_ID_BOARD_NAME_STR				1
#define SUSI_ID_BOARD_REVISION_STR			2
#define SUSI_ID_BOARD_SERIAL_STR			3
#define SUSI_ID_BOARD_BIOS_REVISION_STR			4
#define SUSI_ID_BOARD_HW_REVISION_STR			5
#define SUSI_ID_BOARD_PLATFORM_TYPE_STR			6
#define SUSI_ID_BOARD_EC_FW_STR				7
Description
Board information string ID, use in SusiBoardGetStringA.

#define SUSI_ID_GET_SPEC_VERSION&nbsp				0x00000000
#define SUSI_ID_BOARD_BOOT_COUNTER_VAL				0x00000001
#define SUSI_ID_BOARD_RUNNING_TIME_METER_VAL			0x00000002
#define SUSI_ID_BOARD_PNPID_VAL					0x00000003
#define SUSI_ID_BOARD_PLATFORM_REV_VAL				0x00000004
#define SUSI_ID_BOARD_DRIVER_VERSION_VAL			0x00010000
#define SUSI_ID_BOARD_LIB_VERSION_VAL				0x00010001
#define SUSI_ID_BOARD_FIRMWARE_VERSION_VAL			0x00010002
Description
Board information value ID, use in SusiBoardGetValue.

#define SUSI_ID_HWM_TEMP_CPU					0x00020000
#define SUSI_ID_HWM_TEMP_CHIPSET				0x00020001
#define SUSI_ID_HWM_TEMP_SYSTEM					0x00020002
#define SUSI_ID_HWM_TEMP_CPU2					0x00020003
#define SUSI_ID_HWM_TEMP_OEM0					0x00020004
#define SUSI_ID_HWM_TEMP_OEM1					0x00020005
#define SUSI_ID_HWM_TEMP_OEM2					0x00020006
#define SUSI_ID_HWM_TEMP_OEM3					0x00020007
#define SUSI_ID_HWM_TEMP_OEM4					0x00020008 
#define SUSI_ID_HWM_TEMP_OEM5					0x00020009
Description
Board temperature value ID, use in SusiBoardGetValue.

#define SUSI_ID_HWM_VOLTAGE_VCORE				0x00021000
#define SUSI_ID_HWM_VOLTAGE_VCORE2				0x00021001
#define SUSI_ID_HWM_VOLTAGE_2V5					0x00021002
#define SUSI_ID_HWM_VOLTAGE_3V3					0x00021003
#define SUSI_ID_HWM_VOLTAGE_5V					0x00021004
#define SUSI_ID_HWM_VOLTAGE_12V					0x00021005
#define SUSI_ID_HWM_VOLTAGE_5VSB				0x00021006
#define SUSI_ID_HWM_VOLTAGE_3VSB				0x00021007
#define SUSI_ID_HWM_VOLTAGE_VBAT				0x00021008
#define SUSI_ID_HWM_VOLTAGE_5NV					0x00021009
#define SUSI_ID_HWM_VOLTAGE_12NV				0x0002100A
#define SUSI_ID_HWM_VOLTAGE_VTT					0x0002100B
#define SUSI_ID_HWM_VOLTAGE_24V					0x0002100C
#define SUSI_ID_HWM_VOLTAGE_DC					0x0002100D
#define SUSI_ID_HWM_VOLTAGE_DCSTBY				0x0002100E
#define SUSI_ID_HWM_VOLTAGE_OEM3				0x0002100F
#define SUSI_ID_HWM_VOLTAGE_OEM0				0x00021010
#define SUSI_ID_HWM_VOLTAGE_OEM1				0x00021011
#define SUSI_ID_HWM_VOLTAGE_OEM2				0x00021012
#define SUSI_ID_HWM_VOLTAGE_OEM3				0x00021013
#define SUSI_ID_HWM_VOLTAGE_1V05				0x00021014
#define SUSI_ID_HWM_VOLTAGE_1V5					0x00021015
#define SUSI_ID_HWM_VOLTAGE_1V8					0x00021016
Description
Board voltage value ID, use in SusiBoardGetValue.

#define SUSI_ID_HWM_FAN_CPU					0x00022000
#define SUSI_ID_HWM_FAN_SYSTEM					0x00022001
#define SUSI_ID_HWM_FAN_CPU2					0x00022002
#define SUSI_ID_HWM_FAN_OEM0					0x00022003
#define SUSI_ID_HWM_FAN_OEM1					0x00022004
#define SUSI_ID_HWM_FAN_OEM2					0x00022005
#define SUSI_ID_HWM_FAN_OEM3					0x00022006
#define SUSI_ID_HWM_FAN_OEM4					0x00022007
#define SUSI_ID_HWM_FAN_OEM5					0x00022008
#define SUSI_ID_HWM_FAN_OEM6					0x00022009
Description
Board fan speed value ID, use in SusiBoardGetValue and Smart Fan Functions.

#define SUSI_ID_HWM_CURRENT_OEM0				0x00023000
#define SUSI_ID_HWM_CURRENT_OEM1				0x00023001
#define SUSI_ID_HWM_CURRENT_OEM2				0x00023002
Description
Board current value ID, use in SusiBoardGetValue.

#define SUSI_ID_SMBUS_SUPPORTED					0x00030000
#define SUSI_ID_I2C_SUPPORTED					0x00030100
Description
Board supported information value ID, use in SusiBoardGetValue.

#define SUSI_ID_SMBUS_EXTERNAL					0
#define SUSI_ID_SMBUS_OEM0					1
#define SUSI_ID_SMBUS_OEM1					2
#define SUSI_ID_SMBUS_OEM2					3
#define SUSI_ID_SMBUS_OEM3					4
Description
SMBus device ID, use in SMBus Functions.

#define SUSI_ID_I2C_EXTERNAL					0
#define SUSI_ID_I2C_OEM0					1
#define SUSI_ID_I2C_OEM1					2
#define SUSI_ID_I2C_OEM2					3
Description
I2C device ID, use in I2C Functions.

#define SUSI_ID_GPIO(GPIO_NUM)					(GPIO_NUM)
#define SUSI_ID_GPIO_BANK(BANK_NUM)				(0x00010000 + BANK_NUM)
Description
GPIO device ID, use in GPIO Functions.

#define SUSI_ID_BACKLIGHT_1					0
#define SUSI_ID_BACKLIGHT_2					1
#define SUSI_ID_BACKLIGHT_3					2
Description
Backlight device ID, use in Backlight Functions.

#define SUSI_ID_STORAGE_STD					0x00000000
#define SUSI_ID_STORAGE_OEM0					0x00000001
#define SUSI_ID_STORAGE_OEM1					0x00000002
Description
Storage device ID, use in Storage Functions.

#define SUSI_ID_THERMAL_PROTECT_1				0
#define SUSI_ID_THERMAL_PROTECT_2				1
#define SUSI_ID_THERMAL_PROTECT_3				2
#define SUSI_ID_THERMAL_PROTECT_4				3
Description
Thermal protection device ID, use in Thermal Protection Functions

#define SUSI_ID_WATCHDOG_1					0
#define SUSI_ID_WATCHDOG_2					1
#define SUSI_ID_WATCHDOG_3					2
Description
Watchdog device ID, use in Watchdog Functions.

2.3 Item ID

#define SUSI_ID_I2C_MAXIMUM_BLOCK_LENGTH			0x00000000
Description
Watchdog capabilities item ID, use in SusiI2CGetCaps.

#define SUSI_ID_GPIO_INPUT_SUPPORT				0x00000000
#define SUSI_ID_GPIO_OUTPUT_SUPPORT				0x00000001
Description
GPIO capabilities item ID, use in SusiGPIOGetCaps.

#define SUSI_ID_VGA_BRIGHTNESS_MAXIMUM				0x00010000
#define SUSI_ID_VGA_BRIGHTNESS_MINIMUM				0x00010001
Description
VGA capabilities item ID, use in SusiVgaGetCaps.

#define SUSI_ID_STORAGE_TOTAL_SIZE				0x00000000
#define SUSI_ID_STORAGE_BLOCK_SIZE				0x00000001
#define SUSI_ID_STORAGE_LOCK_STATUS				0x00010000
#define SUSI_ID_STORAGE_PSW_MAX_LEN				0x00010000
Description
Storage capabilities item ID, use in SusiStorageGetCaps.

#define SUSI_ID_WDT_SUPPORT_FLAGS				0x00000000
#define SUSI_ID_WDT_DELAY_MAXIMUM				0x00000001
#define SUSI_ID_WDT_DELAY_MINIMUM				0x00000002
#define SUSI_ID_WDT_EVENT_MAXIMUM				0x00000003
#define SUSI_ID_WDT_EVENT_MINIMUM				0x00000004
#define SUSI_ID_WDT_RESET_MAXIMUM				0x00000005
#define SUSI_ID_WDT_RESET_MINIMUM				0x00000006
#define SUSI_ID_WDT_UNIT_MINIMUM				0x0000000F
#define SUSI_ID_WDT_DELAY_TIME					0x00010001
#define SUSI_ID_WDT_EVENT_TIME					0x00010002
#define SUSI_ID_WDT_RESET_TIME					0x00010003
#define SUSI_ID_WDT_EVENT_TYPE					0x00010004
Description
Watchdog capabilities item ID, use in SusiWDogGetCaps.

#define SUSI_ID_FC_CONTROL_SUPPORT_FLAGS			0x00000000
#define SUSI_ID_FC_AUTO_SUPPORT_FLAGS				0x00000001
Description
Fan control capabilities item ID, use in SusiFanControlGetCaps.

#define SUSI_ID_TP_EVENT_SUPPORT_FLAGS				0x00000000
#define SUSI_ID_TP_EVENT_TRIGGER_MAXIMUM			0x00000001
#define SUSI_ID_TP_EVENT_TRIGGER_MINIMUM			0x00000002
#define SUSI_ID_TP_EVENT_CLEAR_MAXIMUM				0x00000003
#define SUSI_ID_TP_EVENT_CLEAR_MINIMUM				0x00000004
Description
Thermal protection capabilities item ID, use in SusiThermalProtectionGetCaps.

3 SUSI API

The SUSI APIs provide functions to control ADVANTECH platforms. SUSI API functions are based on a dynamic library. SUSI API can be implemented in various other programming languages.

3.1 Initialization Functions

3.1.1 SusiLibInitialize

uint32_t SUSI_API SusiLibInitialize(void)
Description:
General initialization of the SUSI API. Prior to calling any SUSI API functions, the library needs to be initialized by calling this function. The status code for all SUSI API function will be SUSI_STATUS_NOT_INITIALIZED unless this function is called.

 

 

Parameters:
None

 

 

Return Status Code:
<tbody> </tbody>

Condition

Return Value

Library initialized

SUSI_STATUS_INITIALIZED

Fail

SUSI_STATUS_NOT_INITIALIZED

Success

SUSI_STATUS_SUCCESS

 

3.1.2 SusiLibUninitialize

uint32_t SUSI_API SusiLibUninitialize(void)
Description:
General function to uninitialize the SUSI API library that should be called before program exit.

 

 

Parameters:
None

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.2 Information Functions

3.2.1 SusiBoardGetValue

uint32_t SUSI_API SusiBoardGetValue(uint32_t Id, uint32_t *pValue)
Description:
Getting information about the hardware platform in value format.

 

 

Parameters:
Id
Selects target value. See Table 1 to Table 5.

 

pValue
Pointer to a buffer that receives the value's data.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pValue==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

Table 1 Board information value ID
<tbody> </tbody>
<tbody>

Id

Description

Unit

SUSI_ID_GET_SPEC_VERSION

API Specification Version

 

SUSI_ID_BOARD_BOOT_COUNTER_VAL

Boot Counter

boot

SUSI_ID_BOARD_RUNNING_TIME_METER_VAL

Running Time Meter

hour

SUSI_ID_BOARD_PNPID_VAL

Board Vendor PNPID

 

SUSI_ID_BOARD_PLATFORM_REV_VAL

Platform revision

 

SUSI_ID_BOARD_DRIVER_VERSION_VAL

Driver version

 

SUSI_ID_BOARD_LIB_VERSION_VAL

Library version

 

SUSI_ID_BOARD_FIRMWARE_VERSION_VAL

Firmware version

 

</tbody>

 

Table 2 Board voltage value ID
<tbody> </tbody>
<tbody>

Id

Description

Unit

SUSI_ID_HWM_VOLTAGE_VCORE

CPU Core voltage

millivolt

SUSI_ID_HWM_VOLTAGE_VCORE2 

Second CPU Core voltage

millivolt

SUSI_ID_HWM_VOLTAGE_2V5

2.5V

millivolt

SUSI_ID_HWM_VOLTAGE_3V3

3.3V

millivolt

SUSI_ID_HWM_VOLTAGE_5V

5V

millivolt

SUSI_ID_HWM_VOLTAGE_12V

12V

millivolt

SUSI_ID_HWM_VOLTAGE_5VSB      

5V Standby

millivolt

SUSI_ID_HWM_VOLTAGE_3VSB

3V Standby

millivolt

SUSI_ID_HWM_VOLTAGE_VBAT

CMOS Battery voltage

millivolt

SUSI_ID_HWM_VOLTAGE_5NV

-5V

millivolt

SUSI_ID_HWM_VOLTAGE_12NV

-12V

millivolt

SUSI_ID_HWM_VOLTAGE_VTT

DIMM voltage

millivolt

SUSI_ID_HWM_VOLTAGE_24V

24V

millivolt

SUSI_ID_HWM_VOLTAGE_OEM0~3

Other voltages

millivolt

</tbody>

 

Table 3 Board temperature value ID
<tbody> </tbody>
<tbody>

Id

Description

Unit

SUSI_ID_HWM_TEMP_CPU

CPU temperature

0.1 Kelvin

SUSI_ID_HWM_TEMP_CHIPSET

Chipset temperature

0.1 Kelvin

SUSI_ID_HWM_TEMP_SYSTEM

System temperature

0.1 Kelvin

SUSI_ID_HWM_TEMP_CPU2

CPU2 temperature

0.1 Kelvin

SUSI_ID_HWM_TEMP_OEM0~5

Other temperatures

0.1 Kelvin

</tbody>

 

Table 4 Board fan speed value ID
<tbody> </tbody>
<tbody>

Id

Description

Unit

SUSI_ID_HWM_FAN_CPU

CPU fan speed

RPM

SUSI_ID_HWM_FAN_SYSTEM

System fan speed

RPM

SUSI_ID_HWM_FAN_CPU2

Second CPU fan speed

RPM

SUSI_ID_HWM_FAN_OEM0~6

Other fans

RPM

</tbody>

 

Table 5 Board support information value ID
<tbody> </tbody>
<tbody>

Id

Description

SUSI_ID_SMBUS_SUPPORTED

Mask flags:

SUSI_SMBUS_EXTERNAL_SUPPORTED

SUSI_SMBUS_OEM0_SUPPORTED

SUSI_SMBUS_OEM1_SUPPORTED

SUSI_SMBUS_OEM2_SUPPORTED

SUSI_SMBUS_OEM3_SUPPORTED

SUSI_ID_I2C_SUPPORTED

Mask flags:

SUSI_ I2C_EXTERNAL_SUPPORTED

SUSI_ I2C_OEM0_SUPPORTED

SUSI_ I2C_OEM1_SUPPORTED

SUSI_ I2C_OEM2_SUPPORTED

</tbody>

3.2.2 SusiBoardGetStringA

uint32_t SUSI_API SusiBoardGetStringA(uint32_t Id, char *pBuffer, uint32_t *pBufLen)
Description:
Text information about the hardware platform.

 

 

Parameters:
Id
Selects target string. See Table 6.

 

pBuffer
Pointer to a buffer that receives the value's data.

 

pBufLen
Pointer to a variable that specifies the size, in bytes, of the buffer pointed to by the pBuffer parameter. When the function returns, this variable contains the size of the data copied to pBuffer including the terminating null character.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBufLen==NULL

SUSI _STATUS_INVALID_PARAMETER

pBufLen!=NULL&&*pBufLen&&pBuffer==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

strlength + 1 > *pBufLen

SUSI_STATUS_MORE_DATA

Success

SUSI_STATUS_SUCCESS

</tbody>

 

Table 6 Board information string ID
<tbody> </tbody>
<tbody>

Id

Description

SUSI_ID_BOARD_MANUFACTURER_STR

Board Manufacturer Name

SUSI_ID_BOARD_NAME_STR

Board Name

SUSI_ID_BOARD_REVISION_STR

Board Revision

SUSI_ID_BOARD_SERIAL_STR

Board Serial Number

SUSI_ID_BOARD_BIOS_REVISION_STR

Board BIOS Revision

SUSI_ID_BOARD_HW_REVISION_STR

Hardware Revision

SUSI_ID_BOARD_PLATFORM_TYPE_STR

Platform type

SUSI_ID_BOARD_EC_FW_STR

EC FW

</tbody>

3.3 Backlight Functions

This function sub set facilitates backlight control for Integrated flat panel displays, typically LVDS.

Table 7 Backlight ID
<tbody> </tbody>
<tbody>

Id

Description

SUSI_ID_BACKLIGHT_1

Backlight Local Flat Panel 1

SUSI_ID_BACKLIGHT_2

Backlight Local Flat Panel 2

SUSI_ID_BACKLIGHT_3

Backlight Local Flat Panel 3

</tbody>
Table 8 Backlight Enable Values
<tbody> </tbody>
<tbody>

Name

Description

SUSI_BACKLIGHT_SET_ON

Signifies that the Backlight be Enabled

SUSI_BACKLIGHT_SET_OFF

Signifies that the Backlight be Disabled

</tbody>

3.3.1 SusiVgaGetCaps

uint32_t SUSI_API SusiVgaGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue);
Description:
Gets VGA capabilities.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

ItemId
Selects target capability. See Table 9.

 

pValue
Pointer to a buffer that receives the target capability.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pValue==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id or ItemId

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>
Table 9 VGA capabilities item Id
<tbody> </tbody>
<tbody>

Item Id

Description

SUSI_ID_VGA_BRIGHTNESS_MAXIMUM

Maximum backlight value

SUSI_ID_VGA_BRIGHTNESS_MINIMUM

Minimum backlight value

</tbody>

3.3.2 SusiVgaGetBacklightEnable

uint32_t SUSI_API SusiVgaGetBacklightEnable(uint32_t Id, uint32_t *pEnable)
Description:
Gets current Backlight Enable state for specified Flat Panel.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

pEnable
Pointer to a buffer that receives the current backlight enable state. See Table 8.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pEnable==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.3.3 SusiVgaSetBacklightEnable

uint32_t SUSI_API SusiVgaSetBacklightEnable(uint32_t Id, uint32_t Enable)
Description:
Enables or disable the backlight of the selected flat panel display

 

 

Parameters:
Id
Selects target device. See Table 7.

 

Enable
Backlight Enable options. See Table 8.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.3.4 SusiVgaGetBacklightBrightness

uint32_t SUSI_API SusiVgaGetBacklightBrightness(uint32_t Id, uint32_t *pBright)
Description:
Reads the current brightness of the selected flat panel display.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

pBright
Pointer to a buffer that receives the current backlight brightness value.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBright==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.3.5 SusiVgaSetBacklightBrightness

uint32_t SUSI_API SusiVgaSetBacklightBrightness(uint32_t Id, uint32_t Bright)
Description:
Reads the current brightness of the selected flat panel display.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

Bright
Backlight Brightness value.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Bright > MAX value || Bright < MIN value

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.3.6 SusiVgaGetBacklightLevel

uint32_t SUSI_API SusiVgaGetBacklightLevel(uint32_t Id, uint32_t *pLevel)
Description:
Reads the current brightness level of the selected flat panel display.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

pLevel
Pointer to a buffer that receives the current backlight brightness level. See Table 10.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pLevel==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>
Table 10 Brightness level range definition
<tbody> </tbody>
<tbody>

Name

Description

SUSI_BACKLIGHT_LEVEL_MAXIMUM

Maximum backlight level is 9

SUSI_BACKLIGHT_LEVEL_MINIMUM

Minimum backlight level is 0

</tbody>

3.3.7 SusiVgaSetBacklightLevel

uint32_t SUSI_API SusiVgaSetBacklightLevel(uint32_t Id, uint32_t Level)
Description:
Sets the brightness level of the selected flat panel display.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

Level
Backlight Brightness level. See Table 10.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Level>SUSI_BACKLIGHT_LEVEL_MAXIMUM

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.3.8 SusiVgaGetPolarity

uint32_t SUSI_API SusiVgaGetPolarity(uint32_t Id, uint32_t *pPolarity)
Description:
Reads the current backlight polarity of the selected flat panel display.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

pPolarity
Pointer to a buffer that receives the current backlight polarity. See Table 11.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pPolarity==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>
Table 11 Brightness polarity definition
<tbody> </tbody>
<tbody>

Name

Description

SUSI_BACKLIGHT_POLARITY_ON

Backlight signal polarity ON 

SUSI_BACKLIGHT_ POLARITY_OFF

Backlight signal polarity OFF

</tbody>

3.3.9 SusiVgaSetPolarity

uint32_t SUSI_API SusiVgaSetPolarity(uint32_t Id, uint32_t Polarity)
Description:
Sets the polarity of the selected flat panel display.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

Polarity
Polarity state. See Table 11.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.3.10 SusiVgaGetFrequency

uint32_t SUSI_API SusiVgaGetFrequency(uint32_t Id, uint32_t *pFrequency)
Description:
Reads the current backlight frequency of the selected flat panel display.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

pFrequency
Pointer to a buffer that receives the current backlight frequency. (Unit: Hz)

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pFrequency==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.3.11SusiVgaSetFrequency

uint32_t SUSI_API SusiVgaSetFrequency(uint32_t Id, uint32_t Frequency)
Description:
Sets the frequency of the selected flat panel display.

 

 

Parameters:
Id
Selects target device. See Table 7.

 

Polarity
Frequency value. (Unit: Hz)

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.4 I2C Functions

I2C APIs support standard 7 and 10 bits slave address mode. I2C APIs also support word command, it needs encode before set to parameter, see Table 13

Table 12 I2C ID
<tbody> </tbody>
<tbody>
<tbody>

Id

Description

SUSI_ID_I2C_EXTERNAL

Main I2C host device

SUSI_ID_I2C_OEM0~2

Other I2C host devices

</tbody>
</tbody>

 

Table 13 I2C command encode
<tbody> </tbody>
<tbody>
<tbody>

Type

Description

Standard command

Byte command

Extend command

Word command | 0x80000000

Ex. 0x8000FABC

No command

0x4000xxxx, ignore command parameter

</tbody>
</tbody>

 

3.4.1 SusiI2CGetCaps

uint32_t SUSI_API SusiI2CGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
Description:
Gets I2C capabilities.

 

 

 

Parameters:
Id
Selects target device. See Table 12.

 

 

ItemId
Selects target capability. See Table 14.

 

 

pValue
Pointer to a buffer that receives the target capability.

 

 

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pValue==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id or ItemId

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>
</tbody>
Table 14 I2C capabilities item Id
<tbody> </tbody>
<tbody>
<tbody>

Item Id

Description

SUSI_ID_I2C_MAXIMUM_BLOCK_LENGTH

I2C maximum block length

 

 

</tbody>
</tbody>

 

3.4.2 SusiI2CWriteReadCombine

uint32_t SUSI_API SusiI2CWriteReadCombine(uint32_t Id, uint8_t Addr, uint8_t *pWBuffer, uint32_t WriteLen, uint8_t *pRBuffer, uint32_t ReadLen)
Description:
Universal function for read and write operations to the I2C bus.

 

 

 

Parameters:
Id
Selects target device. See Table 12.

 

 

Addr
First byte of I2C device address. 7-bit address only

 

 

pWBuffer
Pointer to a buffer containing the data to be transferred. This parameter can be NULL if the data is not required.

 

 

WriteLen
Size in bytes of the information pointed to by the pWBuffer parameter. If pWBuffer is NULL this will be ignored.

 

 

pRBuffer
Pointer to a buffer that receives the read data. This parameter can be NULL if the data is not required.

 

 

 

 

ReadLen
Size in bytes of the buffer pointed to by the pRBuffer parameter. If pRBuffer is NULL this will be ignored.

 

 

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

(WriteLen>1)&&(pWBuffer==NULL)

SUSI _STATUS_INVALID_PARAMETER

(RBufLen>1)&&(pRBuffer==NULL)

SUSI _STATUS_INVALID_PARAMETER

(WriteLen==0)&&(RBufLen==0)

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>
</tbody>

 

3.4.3 SusiI2CReadTransfer

uint32_t SUSI_API SusiI2CReadTransfer(uint32_t Id, uint32_t Addr, uint32_t Cmd, uint8_t *pBuffer, uint32_t ReadLen)
Description:
Reads from a specific register in the selected I2C device. Reads from I2C device at the I2C address Addr the amount of ReadLen bytes to the buffer pBuffer while using the device specific command Cmd. Depending on the addressed I2C device Cmd can be a specific command or a byte offset.

 

 

 

Parameters:
Id
Selects target device. See Table 12.

 

 

Addr
Encoded 7/10 Bit I2C Device Address.

 

 

Cmd
Encoded I2C Device Command / Index. See Table 13.

 

 

pBuffer
Pointer to a buffer that receives the read data.

 

 

ReadLen
Size in bytes of the buffer pointed to by the pBuffer parameter.

 

 

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL || ReadLen==0

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>
</tbody>

 

3.4.4 SusiI2CWriteTransfer

uint32_t SUSI_API SusiI2CWriteTransfer(uint32_t Id, uint32_t Addr, uint32_t Cmd, uint8_t *pBuffer, uint32_t ByteCnt)
Description:
Write to a specific register in the selected I2C device. Writes to an I2C device at the I2C address Addr the amount of ByteCnt bytes from the buffer *pBuffer while using the device specific command Cmd. Depending on the addressed I2C device Cmd can be a specific command or a byte offset

 

 

 

Parameters:
Id
Selects target device. See Table 12.

 

 

Addr
Encoded 7/10 Bit I2C Device Address.

 

 

Cmd
Encoded I2C Device Command / Index. See Table 13.

 

 

pBuffer
Pointer to a buffer that receives the write data.

 

 

ByteCnt
Size in bytes of the buffer pointed to by the pBuffer parameter.

 

 

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL || ByteCnt==0

SUSI _STATUS_INVALID_PARAMETER

ByteCnt > MaxLength

SUSI_STATUS_INVALID_BLOCK_LENGTH

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>
</tbody>

 

3.4.5 SusiI2CProbeDevice

uint32_t SUSI_API SusiI2CProbeDevice(uint32_t Id, uint32_t Addr)
Description:
Probes I2C address to test I2C device present.

 

 

 

Parameters:
Id
Selects target device. See Table 12.

 

 

Addr
Encoded 7/10 Bit I2C Device Address.

 

 

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>
</tbody>

3.4.6 SusiI2CGetFrequency

uint32_t SUSI_API SusiI2CGetFrequency(uint32_t Id, uint32_t *pFreq)
Description:
Get I2C clock frequency.

 

 

 

Parameters:
Id
Selects target device. See Table 12.

 

 

pFreq
Pointer to a buffer that receives the I2C clock frequency value. (Unit: Hz)

 

 

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

pFreq == NULL

SUSI _STATUS_INVALID_PARAMETER

Success

SUSI_STATUS_SUCCESS

</tbody>
</tbody>

3.4.7 SusiI2CSetFrequency

uint32_t SUSI_API SusiI2CSetFrequency(uint32_t Id, uint32_t Freq)
Description:
Set I2C clock frequency.

 

 

 

Parameters:
Id
Selects target device. See Table 12.

 

 

Freq
I2C clock frequency value. (Unit: Hz)

 

 

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>
</tbody>

3.5 SMBus Functions

SMBus is the System Management Bus defined by Intel® Corporation in 1995. It is used in personal computers and servers for low-speed system management communications.

Table 15 SMBus ID
<tbody> </tbody>
<tbody>

Id

Description

SUSI_ID_ SMBUS _EXTERNAL

Main SMBus host device

SUSI_ID_SMBUS_OEM0~3

Other SMBus host devices

</tbody>

 

3.5.1 SusiSMBReadByte

uint32_t SUSI_API SusiSMBReadByte(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pData)
Description:
Read a byte of data from the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Cmd
Specifies the offset or command of the device register to read data from.

 

pData
Pointer to a variable in which the function reads the byte data.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pData==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.2 SusiSMBWriteByte

uint32_t SUSI_API SusiSMBWriteByte(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t Data)
Description:
Write a byte of data to the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Cmd
Specifies the offset or command of the device register to write data to.

 

Data
Specifies the byte data to be written.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.3 SusiSMBReadWord

uint32_t SUSI_API SusiSMBReadWord(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint16_t *pData)
Description:
Read a word of data from the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Cmd
Specifies the offset or command of the device register to read data from.

 

pData
Pointer to a variable in which the function reads the word data.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pData==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.4 SusiSMBWriteWord

uint32_t SUSI_API SusiSMBWriteWord(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint16_t Data)
Description:
Write a word of data to the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Cmd
Specifies the offset or command of the device register to write data to.

 

Data
Specifies the word data to be written.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.5 SusiSMBReceiveByte

uint32_t SUSI_API SusiSMBReceiveByte(uint32_t Id, uint8_t Addr, uint8_t *pData)
Description:
Receive a byte of data from the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

pData
Pointer to a variable in which the function receive the byte data.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.6 SusiSMBSendByte

uint32_t SUSI_API SusiSMBSendByte(uint32_t Id, uint8_t Addr, uint8_t Data)
Description:
Send a byte of data to the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Data
Specifies the word data to be sent.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.7 SusiSMBReadQuick

uint32_t SUSI_API SusiSMBReadQuick(uint32_t Id, uint8_t Addr)
Description:
Turn SMBus device function off (on) or disable (enable) a specific device mode.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Success

SUSI_STATUS_SUCCESS

</tbody>

3.5.8 SusiSMBWriteQuick

uint32_t SUSI_API SusiSMBWriteQuick(uint32_t Id, uint8_t Addr)
Description:
Turn SMBus device function off (on) or disable (enable) a specific device mode.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.9 SusiSMBReadBlock

uint32_t SUSI_API SusiSMBReadBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t *pLength)
Description:
Read multi-data from the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Cmd
Specifies the offset or command of the device register to read data from.

 

pBuffer
Pointer to a byte array in which the function reads the block data.

 

pLength
Pointer to a byte in which specifies the number of bytes to be read and also return succeed bytes.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.10 SusiSMBWriteBlock

uint32_t SUSI_API SusiSMBWriteBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t Length)
Description:
Write multi-data from the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Cmd
Specifies the offset or command of the device register to write data to.

 

pBuffer
Pointer to a byte array in which the function writes the block data.

 

Length
Specifies the number of bytes to be write.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.11 SusiSMBI2CReadBlock

uint32_t SUSI_API SusiSMBI2CReadBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t *pLength)
Description:
Read multi-data using I2C block protocol from the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Cmd
Specifies the offset or command of the device register to read data from.

 

pBuffer
Pointer to a byte array in which the function reads the block data.

 

pLength
Pointer to a byte in which specifies the number of bytes to be read and also return succeed bytes.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.5.12 SusiSMBI2CWriteBlock

uint32_t SUSI_API SusiSMBI2CWriteBlock(uint32_t Id, uint8_t Addr, uint8_t Cmd, uint8_t *pBuffer, uint32_t Length)
Description:
Write multi-data using I2C block protocol from the target slave device in the SMBus.

 

 

Parameters:
Id
Selects target device. See Table '15'.

 

Addr
Specifies the 8-bit device address, ranging from 0x00 to 0xFF. Whether to give a 1 (read) or 0 (write) to the LSB of slave address could be ignored.

 

Cmd
Specifies the offset or command of the device register to write data to.

 

pBuffer
Pointer to a byte array in which the function writes the block data.

 

Length
Specifies the number of bytes to be write.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device unsupported

SUSI _STATUS_UNSUPPORTED

Bus Busy SDA/SDC low

SUSI_STATUS_BUSY_COLLISION

Arbitration Error/Collision Error

On Write 1 write cycle

SDA Remains low

SUSI_STATUS_BUSY_COLLISION

Time-out due to clock stretching

SUSI_STATUS_TIMEOUT

Address Non-ACK

SUSI_STATUS_NOT_FOUND

Write Non-ACK

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

3.6 Watchdog Functions

After the watchdog timer has been start function it must be triggered within (Delay + Event Timeout) milliseconds as set with the start function, following the initial trigger every subsequent trigger must occur within (Event Timeout) milliseconds. Should trigger not be called within the relevant time limit a system reset will occur. The SUSI watchdog timer may support two stages. If the watchdog is not triggered within the event timeout, an NMI, IRQ, or hardware output will be generated. Then the reset timeout becomes active. If the watchdog timer is not triggered within the reset timeout a reset will be generated

Initial timing:
<img _fck_mw_filename="Initial timing.png" _fck_mw_origimgheight="121" _fck_mw_origimgwidth="652" alt="RTENOTITLE" src="/wiki/images/9/9e/Initial_timing.png" style="vertical-align:middle;" title="RTENOTITLE" />

 

 

Timing after trigger:
<img _fck_mw_filename="Timing after trigger.png" _fck_mw_origimgheight="127" _fck_mw_origimgwidth="584" alt="RTENOTITLE" src="/wiki/images/a/a4/Timing_after_trigger.png" style="vertical-align:middle;" title="RTENOTITLE" />

 

 

Where:
Stage A
Watchdog is started.

 

Stage B
Initial Delay Period is exhausted.

 

Stage C/F
Event is triggered, NMI, IRQ, or PIN is Triggered. To Allow for possible Software Recovery.

 

Stage D/G
System is reset.

 

Stage E

 

  • Watchdog is Triggered.
  • Trigger / Stop must be called before Stage C/F to prevent event from being generated.
  • Trigger / Stop must be called before Stage D/G to prevent The system from being reset.
Table 16 Watchdog ID
<tbody> </tbody>
<tbody>

Id

Description

SUSI_ID_WATCHDOG_1

First watchdog timer

SUSI_ID_WATCHDOG_2

Second watchdog timer

SUSI_ID_WATCHDOG_3

Third watchdog timer

</tbody>

 

3.6.1 SusiWDogGetCaps

uint32_t SUSI_API SusiWDogGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
Description:
Gets watchdog capabilities.

 

Parameters:
Id
Selects target device. See Table 16.

 

ItemId
Selects target capability. See Table 17.

 

pValue
Pointer to a buffer that receives the target capability.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pValue==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id or ItemId

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>
Table 17 Watchdog capabilities item Id
<tbody> </tbody>
<tbody>

Item Id

Description

SUSI_ID_WDT_SUPPORT_FLAGS

Event support flags (Table 18)

SUSI_ID_WDT_DELAY_MAXIMUM

The maximum delay time value

SUSI_ID_WDT_DELAY_MINIMUM

The minimum delay time value

SUSI_ID_WDT_EVENT_MAXIMUM

The maximum event time value

SUSI_ID_WDT_EVENT_MINIMUM

The minimum event time value

SUSI_ID_WDT_RESET_MAXIMUM

The maximum reset time value

SUSI_ID_WDT_RESET_MINIMUM

The minimum reset time value

SUSI_ID_WDT_UNIT_MINIMUM

The minimum unit value

SUSI_ID_WDT_DELAY_TIME

Current delay time setting

SUSI_ID_WDT_EVENT_TIME

Current event time setting

SUSI_ID_WDT_RESET_TIME

Current reset time setting

SUSI_ID_WDT_EVENT_TYPE

Current event type (Table 19)

</tbody>

 

3.6.2 SusiWDogStart

uint32_t SUSI_API SusiWDogStart(uint32_t Id, uint32_t DelayTime, uint32_t EventTime, uint32_t ResetTime, uint32_t EventType)
Description:
Start the watchdog timer and set the parameters. To adjust the parameters, the watchdog must be stopped and then start again with the new values. If the hardware implementation of the watchdog timer does not allow a setting at the exact time selected, the SUSI API selects the next possible longer timing.

 

 

Parameters:
Id
Selects target device. See Table 16.

 

DelayTime
Initial delay for the watchdog timer in milliseconds.

 

EventTime
Watchdog timeout interval in milliseconds to trigger an event.

 

ResetTime
Watchdog timeout interval in milliseconds to trigger a reset.

 

EventType
To select one kind of event type. See Table 19.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Wrong time range

SUSI _STATUS_INVALID_PARAMETER

Success

SUSI_STATUS_SUCCESS

</tbody>
Table 18 Watchdog Support Flags
<tbody> </tbody>
<tbody>

Flag Name

Description

Value

SUSI_WDT_FLAG_SUPPORT_IRQ

Support IRQ event

0x01

SUSI_WDT_FLAG_SUPPORT_SCI

Support SCI event

0x02

SUSI_WDT_FLAG_SUPPORT_PWRBTN

Support power button event

0x04

</tbody>
Table 19 Watchdog timer event type
<tbody> </tbody>
<tbody>

Event Type

Description

SUSI_WDT_EVENT_TYPE_NONE

No event

SUSI_WDT_EVENT_TYPE_SCI

SCI event

SUSI_WDT_EVENT_TYPE_IRQ

IRQ event

SUSI_WDT_EVENT_TYPE_PWRBTN

Power button event

</tbody>

 

3.6.3 SusiWDogStop

uint32_t SUSI_API SusiWDogStop(uint32_t Id)
Description:
Stops the operation of the watchdog timer.

 

Parameters:
Id
Selects target device. See Table 16.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.6.4 SusiWDogTrigger

uint32_t SUSI_API SusiWDogTrigger(uint32_t Id)
Description:
Trigger the watchdog timer.

 

Parameters:
Id
Selects target device. See Table 16.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.6.5 SusiWDogSetCallBack

uint32_t SUSI_API SusiWDogSetCallBack(uint32_t Id, SUSI_WDT_INT_CALLBACK pfnCallback, void *Context)
Description:
The call back function pointer can be transmit from Application when IRQ triggered.

 

 

Parameters:
Id
Selects target device. See Table 16.

 

pfnCallback
Call back function pointer, SUSI_WDT_INT_CALLBACK is function pointer type, it can set NULL to clear. The type definition just like show below,
typedef void (*SUSI_WDT_INT_CALLBACK)(void*);

 

Context
Pointer to a user context structure for callback function.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.7 GPIO Functions

Programmable GPIO allows developers to dynamically set the GPIO input or output status

 

Table 20 GPIO ID
<tbody> </tbody>
<tbody>

Id

Description

SUSI_ID_GPIO(X)

X is GPIO pin number, definition as below:

  1. define SUSI_ID_GPIO(x) (0x0000 | x)

This ID control single pin only.

SUSI_ID_GPIO_BANK(Y)

Y is GPIO bank number, definition as below:

  1. define SUSI_ID_GPIO_BANK(Y) (0x10000 | Y)

This ID control maximum 32 pins per bank.

</tbody>

 

3.7.1 SusiGPIOGetCaps

uint32_t SUSI_API SusiGPIOGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)

 

Description:
Reads the capabilities of the current GPIO implementation from the selected GPIO interface.

 

 

Parameters:
Id
Selects target device. See Table 20.

 

ItemId
Selects target capability. See Table 21.

 

pValue
Pointer to a buffer that receives the target capability. Each bit of the buffer value represents support situation of a GPIO, according to the order. 1 is supportive, and 0 is unsupportive.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pValue==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

Table 21 GPIO capabilities item Id
<tbody> </tbody>
<tbody>

Item Id

Description

SUSI_ID_GPIO_INPUT_SUPPORT

Get GPIO input support state

SUSI_ID_GPIO_OUTPUT_SUPPORT

Get GPIO output support state

</tbody>

 

 

3.7.2 SusiGPIOGetDirection

uint32_t SUSI_API SusiGPIOGetDirection(uint32_t Id, uint32_t Bitmask, uint32_t *pDirection)
Description:
Gets the configuration for the selected GPIO ports.

 

 

Parameters:
Id
Selects target device. See Table 20.

 

Bitmask
Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode.

 

pDirection
Pointer to a buffer that receives the direction of the selected GPIO ports. (0 means output and 1 means input)

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pDirection==NULL

SUSI _STATUS_INVALID_PARAMETER

Bitmask==0 when bank mode

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.7.3 SusiGPIOSetDirection

uint32_t SUSI_API SusiGPIOSetDirection(uint32_t Id, uint32_t Bitmask, uint32_t Direction)

 

Description:
Sets the configuration for the selected GPIO ports.

 

 

 

Parameters:
Id
Selects target device. See Table 20.

 

Bitmask
Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode.

 

Direction
Sets the direction of the selected GPIO ports. (0 means output and 1 means input)

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Bitmask==0 when bank mode

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.7.4 SusiGPIOGetLevel

uint32_t SUSI_API SusiGPIOGetLevel(uint32_t Id, uint32_t Bitmask, uint32_t *pLevel)
Description:
Read level the from GPIO ports.

 

 

Parameters:
Id
Selects target device. See Table 20.

 

Bitmask
Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode.

 

pLevel
Pointer to a buffer that receives the GPIO level.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pLevel==NULL

SUSI _STATUS_INVALID_PARAMETER

Bitmask==0 when bank mode

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.7.5 SusiGPIOSetLevel

uint32_t SUSI_API SusiGPIOSetLevel(uint32_t Id, uint32_t Bitmask, uint32_t Level)
Description:
Write level to GPIO ports. Depending on the hardware implementation writing multiple GPIO ports with the bit mask option does not guarantee a time synchronous change of the output levels.

 

 

Parameters:
Id
Selects target device. See Table 20.

 

Bitmask
Value for a bit mask. Only selected bits are changed, unselected bits remain unchanged. This parameter will be ignored when single pin mode.

 

Level
Input level of the selected GPIO port.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

Bitmask==0 when bank mode

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

3.8 Smart Fan Functions

The Smart Fan function call is used to set fan speed configuration. You can use this function to easily control the fan speed. It takes a pointer to an instance of structure SusiFanControl, which is defined as follows:

<tbody> </tbody>
<tbody>
#define SUSI_FAN_AUTO_CTRL_OPMODE_PWM 0

#define SUSI_FAN_AUTO_CTRL_OPMODE_RPM 1

typedef struct _AutoFan {

 uint32_t TmlSource; // Thermal source

 uint32_t OpMode;

 uint32_t LowStopLimit; // Temperature (0.1 Kelvins)

 uint32_t LowLimit; // Temperature (0.1 Kelvins)

 uint32_t HighLimit; // Temperature (0.1 Kelvins)

 uint32_t MinPWM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_PWM

 uint32_t MaxPWM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_PWM

 uint32_t MinRPM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_RPM

 uint32_t MaxRPM; // Enable when OpMode == FAN_AUTO_CTRL_OPMODE_RPM

} AutoFan , *PAutoFan&amp;nbsp;;



// Mode

#define SUSI_FAN_CTRL_MODE_OFF 0

#define SUSI_FAN_CTRL_MODE_FULL 1

#define SUSI_FAN_CTRL_MODE_MANUAL 2

#define SUSI_FAN_CTRL_MODE_AUTO 3

typedef struct _SusiFanControl {

 uint32_t Mode;

 uint32_t PWM; // Manual mode only (0 - 100%)

 AutoFan AutoControl; // Auto mode only

} SusiFanControl, *PSusiFanControl;
</tbody>

If Mode member of SusiFanControl is not Auto, AutoControl member will be ignored. In auto mode, parameter “TmlSource” is use SUSI_ID_HWM_TEMP_XXX (Table 3) to select which thermal type to reference. If TmlSource is not match any temperature ID means unknown or unsupported.

 

3.8.1 SusiFanControlGetCaps

uint32_t SUSI_API SusiFanControlGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
Description:
Gets fan control capabilities.

 

 

Parameters:
Id
Smart fan ID is same as Fan Speed Value ID. See Table 4.

 

ItemId
Selects target capability. See Table 22. This parameter can also input temperature ID (Table 3) to get is it supports in SusiFanControl function.

 

pValue
Pointer to a buffer that receives the target capability.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pValue==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id or ItemId

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

Table 22 Fan control capabilities item Id
<tbody> </tbody>
<tbody>

Item Id

Description

SUSI_ID_FC_CONTROL_SUPPORT_FLAGS

Control support flags (See Table 23)

SUSI_ID_FC_AUTO_SUPPORT_FLAGS

Auto support flags (See Table 24)

</tbody>

 

Table 23 Control Support Flags
<tbody> </tbody>
<tbody>

Flag Name

Description

Value

SUSI_FC_FLAG_SUPPORT_OFF_MODE

Support off mode

0x01

SUSI_FC_FLAG_SUPPORT_FULL_MODE

Support full mode

0x02

SUSI_FC_FLAG_SUPPORT_MANUAL_MODE

Support manual mode

0x04

SUSI_FC_FLAG_SUPPORT_AUTO_MODE

Support auto mode

More detail to get Auto Support Flags

0x08

</tbody>

 

Table 24 Auto Support Flags
<tbody> </tbody>
<tbody>

Flag Name

Description

Value

SUSI_FC_FLAG_SUPPORT_AUTO_LOW_STOP

Auto mode support Low Stop

0x01

SUSI_FC_FLAG_SUPPORT_AUTO_LOW_LIMIT

Auto mode support Low Limit

0x02

SUSI_FC_FLAG_SUPPORT_AUTO_HIGH_LIMIT

Auto mode support High Limit

0x04

SUSI_FC_FLAG_SUPPORT_AUTO_PWM

Auto mode support PWM operation

0x0100

SUSI_FC_FLAG_SUPPORT_AUTO_RPM

Auto mode support RPM operation

0x0200

</tbody>

 

3.8.2 SusiFanControlGetConfig

uint32_t SUSI_API SusiFanControlGetConfig(uint32_t Id, SusiFanControl *pConfig)
Description:
Get information about smart fan function mode and configuration.

 

 

Parameters:
Id
Smart fan ID is same as Fan Speed Value ID. See Table 4.

 

pConfig
Pointer to the smart fan function configuration.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pConfig==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device not support smart mode

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.8.3 SusiFanControlSetConfig

uint32_t SUSI_API SusiFanControlSetConfig(uint32_t Id, SusiFanControl *pConfig)
Description:
Set smart fan function mode and configuration.

 

 

 

Parameters:
Id
Smart fan ID is same as Fan Speed Value ID. See Table 4.

 

pConfig
Pointer to the smart fan function configuration.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pConfig==NULL

SUSI _STATUS_INVALID_PARAMETER

Wrong configuration

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.9 Storage Functions

Access storage information and read / write data to the selected user data area. Developers can use this area to store their own data.

 

Table 25 Storage ID
<tbody> </tbody>
<tbody>

Id

Description

SUSI_ID_STORAGE_STD

Standard storage device

SUSI_ID_STORAGE_OEM0~1

Other storage devices

</tbody>

 

3.9.1 SusiStorageGetCaps

uint32_t SUSI_API SusiStorageGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)

 

Description:
Reads the capabilities of the current storage implementation from the selected storage interface.

 

 

Parameters:
Id
Selects target device. See Table 25.

 

ItemId
Selects target capability. See Table 26.

 

pValue
Pointer to a buffer that receives the target capability.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pValue==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device not support

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

Table 26 Storage capabilities item Id
<tbody> </tbody>
<tbody>

Item Id

Description

SUSI_ID_STORAGE_TOTAL_SIZE

Get storage total size in bytes

SUSI_ID_STORAGE_BLOCK_SIZE

Get storage block size in bytes

SUSI_ID_STORAGE_LOCK_STATUS

Get storage lock status. See Table 27.

SUSI_ID_STORAGE_PSW_MAX_LEN

Get maximum length in byte of storage lock key

</tbody>

 

Table 27 Storage Lock Status
<tbody> </tbody>
<tbody>

Lock Status

Description

SUSI_STORAGE_STATUS_LOCK

Storage is lock

SUSI_STORAGE_STATUS_UNLOCK

Storage is unlock

</tbody>

 

3.9.2 SusiStorageAreaRead

uint32_t SUSI_API SusiStorageAreaRead(uint32_t Id, uint32_t Offset, uint8_t *pBuffer, uint32_t BufLen)
Description:
Reads data from the selected user data area.

 

 

Parameters:
Id
Selects target device. See Table 25.

 

Offset
Storage area start address offset in bytes.

 

pBuffer
Size in bytes of the buffer pointed to by the pBuffer parameter.

 

BufLen
Size in bytes of the information read to the buffer pointed to by the pBuffer parameter.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL || BufLen==0

SUSI _STATUS_INVALID_PARAMETER

Offset+BufLen>TotalSize

SUSI_STATUS_INVALID_BLOCK_LENGTH

Unknown Id

SUSI _STATUS_UNSUPPORTED

Read error

SUSI_STATUS_READ_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.9.3 SusiStorageAreaWrite

uint32_t SUSI_API SusiStorageAreaWrite(uint32_t Id, uint32_t Offset, uint8_t *pBuffer, uint32_t BufLen)
Description:
Writes data to the selected user data area.

 

 

Parameters:
Id
Selects target device. See Table 25.

 

Offset
Storage area start address offset in bytes.

 

pBuffer
Size in bytes of the buffer pointed to by the pBuffer parameter.

 

BufLen
Size in bytes of the information read to the buffer pointed to by the pBuffer parameter.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL || BufLen==0

SUSI _STATUS_INVALID_PARAMETER

Offset+BufLen>TotalSize

SUSI_STATUS_INVALID_BLOCK_LENGTH

Unknown Id

SUSI _STATUS_UNSUPPORTED

Write error

SUSI_STATUS_WRITE_ERROR

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.9.4 SusiStorageAreaSetLock

uint32_t SUSI_API SusiStorageAreaSetLock(uint32_t Id, uint8_t *pBuffer, uint32_t BufLen)
Description:
Lock a storage area for write protect.

 

 

Parameters:
Id
Selects target device. See Table 25.

 

pBuffer
Lock of key buffer.

 

BufLen
Number of key buffer

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL || BufLen==0

SUSI _STATUS_INVALID_PARAMETER

Lock error

SUSI_STATUS_WRITE_ERROR

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device not support

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.9.5 SusiStorageAreaSetUnlock

uint32_t SUSI_API SusiStorageAreaSetUnlock(uint32_t Id, uint8_t *pBuffer, uint32_t BufLen)
Description:
Unlock a storage area for write protect.

 

 

Parameters:
Id
Selects target device. See Table 25.

 

pBuffer
Unlock of key buffer.

 

BufLen
Number of key buffer

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pBuffer==NULL || BufLen==0

SUSI _STATUS_INVALID_PARAMETER

Unlock error

SUSI_STATUS_WRITE_ERROR

Unknown Id

SUSI _STATUS_UNSUPPORTED

Device not support

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.10Thermal Protection Functions

The Thermal Protection function call is used to set hardware base thermal monitoring and notify. It takes a pointer to an instance of structure SusiThermalProtect, which is defined as follows:

<tbody> </tbody>
<tbody>
typedef struct _SusiThermalProtect{

 uint32_t SourceId;

 uint32_t EventType;

 uint32_t SendEventTemperature;

 uint32_t ClearEventTemperature;

} SusiThermalProtect, *PSusiThermalProtect;
</tbody>

 

Where:
SourceId
Setting thermal source ID here. See Table 3.

 

EventType
This byte can set up a thermal protect event, see Table 28. NOT every platform supports all event type.

 

SendEevntTemperature
Unit is 0.1 Kelvins. When thermal source goes over this value, SUSI will send event according Event Type.

 

ClearEventTemperature
Unit is 0.1 Kelvins. When thermal source goes below this value and Event is sent, SUSI will clear event according Event Type

 

 

 

Table 28 Thermal Protection Event Type
<tbody> </tbody>
<tbody>

Event Type Name

Description

Value

SUSI_THERMAL_EVENT_SHUTDOWN

Shutdown event

0x00

SUSI_THERMAL_EVENT_THROTTLE

Throttle event

0x01

SUSI_THERMAL_EVENT_POWEROFF

Power off event

0x02

SUSI_THERMAL_EVENT_NONE

No event

0xFF

</tbody>

 

Table 29 Thermal Protection ID
<tbody> </tbody>
<tbody>

Id

Description

SUSI_ID_THERMAL_PROTECT_1

Thermal protection zone 1

SUSI_ID_THERMAL_PROTECT_2

Thermal protection zone 2

SUSI_ID_THERMAL_PROTECT_3

Thermal protection zone 3

SUSI_ID_THERMAL_PROTECT_4

Thermal protection zone 4

</tbody>

 

3.10.1 SusiThermalProtectionGetCaps

uint32_t SUSI_API SusiThermalProtectionGetCaps(uint32_t Id, uint32_t ItemId, uint32_t *pValue)
Description:
Gets Thermal Protection capabilities.

 

 

Parameters:
Id
Selects target device. See Table 29.

 

ItemId
Selects target capability. See Table 30. This parameter can also input temperature ID (Table 3) to get is it supports in SusiThermalProtection function.

 

pValue
Pointer to a buffer that receives the target capability.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pValue==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id or ItemId

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

Table 30 Thermal Protection capabilities item Id
<tbody> </tbody>
<tbody>

Item Id

Description

SUSI_ID_TP_EVENT_SUPPORT_FLAGS

Event support flags (See Table 31)

SUSI_ID_TP_EVENT_TRIGGER_MAXIMUM

The maximum temperature to trigger event

SUSI_ID_TP_EVENT_TRIGGER_MINIMUM

The minimum temperature to trigger event

SUSI_ID_TP_EVENT_CLEAR_MAXIMUM

The maximum temperature to clear event

SUSI_ID_TP_EVENT_CLEAR_MINIMUM

The minimum temperature to clear event

</tbody>
Table 31 Thermal Protection Support Flags
<tbody> </tbody>
<tbody>

Flag Name

Description

Value

SUSI_THERMAL_FLAG_SUPPORT_SHUTDOWN

Support shutdown event

0x01

SUSI_THERMAL_FLAG_SUPPORT_THROTTLE

Support throttle event

0x02

SUSI_THERMAL_FLAG_SUPPORT_POWEROFF

Support power off event

0x04

</tbody>

 

3.10.2 SusiThermalProtectionSetConfig

uint32_t SUSI_API SusiThermalProtectionSetConfig(uint32_t Id, SusiThermalProtect *pConfig)
Description:
Set Thermal Protection configuration.

 

 

Parameters:
Id
Selects target device. See Table 29.

 

pConfig
A data package for thermal protection.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pConfig==NULL

SUSI _STATUS_INVALID_PARAMETER

Config invalid

SUSI _STATUS_INVALID_PARAMETER

Source Id or event type not support

SUSI _STATUS_UNSUPPORTED

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>

 

3.10.3 SusiThermalProtectionGetConfig

uint32_t SUSI_API SusiThermalProtectionGetConfig(uint32_t Id, SusiThermalProtect *pConfig)
Description:
Get Thermal Protection configuration.

 

 

Parameters:
Id
Selects target device. See Table 29.

 

pConfig
A data package for thermal protection.

 

 

 

Return Status Code:
<tbody> </tbody>
<tbody>

Condition

Return Value

Library uninitialized

SUSI_STATUS_NOT_INITIALIZED

pConfig==NULL

SUSI _STATUS_INVALID_PARAMETER

Unknown Id

SUSI _STATUS_UNSUPPORTED

Success

SUSI_STATUS_SUCCESS

</tbody>