<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE featureDefinitions SYSTEM "../featureDefinitions.dtd">

<featureDefinitions name="I2C" iconName="I2C" helpIndex="">

<userControlGroup name="none" caption="none">
<userControlSubGroup name="none" caption="none">

<userControl name="applyButton">
<dialogConfig type="applyButton" caption="none"></dialogConfig>
<userAction name="apply">
	<claimResource type="pin" pin="SCL" polarity="Out"></claimResource>
	<claimResource type="pin" pin="SDA" polarity="Out"></claimResource>
	<claimResource type="register" registerField="RCEN" value="1"></claimResource>
</userAction>
</userControl>

</userControlSubGroup>
</userControlGroup>

<userControlGroup name="operationalSettings" caption="Operational Settings">
<userControlSubGroup name="none" caption="none">

<userControl name="enable">
<dialogConfig type="CK" caption="Enable on Startup"></dialogConfig>
<userAction name="enable">
	<claimResource type="register" registerField="I2CEN" value="1"></claimResource>
</userAction>
<userAction name="disable">
	<claimResource type="register" registerField="I2CEN" value="0"></claimResource>
</userAction>
</userControl>

<userControl name="enableSlew">
<dialogConfig type="CK" caption="Enable Slew Rate Control"></dialogConfig>
<userAction name="disable">
	<claimResource type="register" registerField="DISSLW" value="1"></claimResource>
</userAction>
<userAction name="enable">
	<claimResource type="register" registerField="DISSLW" value="0"></claimResource>
</userAction>
</userControl>

<userControl name="enableInputCheck">
<dialogConfig type="CK" caption="Enable checking of input levels for conformance to SM Bus specifications"></dialogConfig>
<userAction name="disable">
</userAction>
<userAction name="enable">
</userAction>
</userControl>

<userControl name="interruptEnable" enableForInt="I2C">
<dialogConfig type="CK" caption="Enable Interrupt on Startup"></dialogConfig>
<userAction name="enable">
	<claimResource type="register" registerField="I2CIE" value="1"></claimResource>
</userAction>
<userAction name="disable">
	<claimResource type="register" registerField="I2CIE" value="0"></claimResource>
</userAction>
</userControl>

<userControl name="interruptPriority" priorityForInt="I2C">
<dialogConfig type="CB" range="7" caption="Interrupt Priority">
	<selection name="rxPriorityLevelTo%index%" value="%index%"></selection>
</dialogConfig>
<userAction>
	<!-- method to compute txPriority in bit mode should reference register info table read from XML -->
	<claimResource type="register" registerField="I2CIP" method="rxPriorityLevel3Bit"></claimResource>
</userAction>
</userControl>

<userControl name="operateDuringIdle">
<dialogConfig type="CB" caption="CPU Idle Operation">
	<selection name="continueOnIdle" value="Continue"></selection> 
	<selection name="stopOnIdle" value="Stop"></selection> 
</dialogConfig>
<userAction name="stopOnIdle">
	<claimResource type="register" registerField="I2CSIDL" value="1"></claimResource>
</userAction>
<userAction name="continueOnIdle">
	<claimResource type="register" registerField="I2CSIDL" value="0"></claimResource>
</userAction>
</userControl>
 
</userControlSubGroup>
</userControlGroup>

<userControlGroup name="slaveSettings" caption="none">
<userControlSubGroup name="slaveSettings" caption="Slave Settings">

<userControl name="addrLen">
<dialogConfig type="CB" caption="Address Length (bits)">
	<selection name="addrLen7" value="7"></selection>
	<selection name="addrLen10" value="10"></selection>
</dialogConfig>
<userAction name="addrLen10">
	<claimResource type="register" registerField="ADD10" value="1"></claimResource>
</userAction>
<userAction name="addrLen7">
	<claimResource type="register" registerField="ADD10" value="0"></claimResource>
</userAction>
</userControl>

<userControl name="nodeAddr">
<dialogConfig type="TB" caption="Node Address"></dialogConfig>
<userAction>
	<!-- what to do here - and set GCEN dependency? -->
</userAction>
</userControl>

<userControl name="enableSWStretch">
<dialogConfig type="CK" caption="Enable Sw-controlled clock stretching during reception"></dialogConfig>
<userAction name="enableSWStetch">
	<claimResource type="register" registerField="STREN" value="1"></claimResource>
</userAction>
<userAction name="disable">
	<claimResource type="register" registerField="STREN" value="0"></claimResource>
</userAction>
</userControl>

<userControl name="enableGCADetect">
<dialogConfig type="CK" caption="Enable General Call Address Detect"></dialogConfig>
<userAction name="enable">
	<claimResource type="register" registerField="GCEN" value="1"></claimResource>
</userAction>
<userAction name="disable">
	<claimResource type="register" registerField="GCEN" value="0"></claimResource>
</userAction>
</userControl>

<userControl name="enableIPMI">
<dialogConfig type="CK" caption="Enable Intelligent Peripheral Management Interface (IPMI)"></dialogConfig>
<userAction name="enable">
	<claimResource type="register" registerField="IPMIEN" value="1"></claimResource>
</userAction>
<userAction name="disable">
	<claimResource type="register" registerField="IPMIEN" value="0"></claimResource>
</userAction>
</userControl>

</userControlSubGroup>
</userControlGroup>

<userControlGroup name="masterSettings" caption="none">

<userControlSubGroup name="masterSettings" caption="Master Settings">

<userControl name="baudRate">
<dialogConfig type="TB" caption="Baud Rate"></dialogConfig>
<userAction>
</userAction>
</userControl>

<userControl name="baudRateUnits">
<dialogConfig type="CB" caption="none">
	<selection name="setToBps" value="bps"></selection>
	<selection name="setToKpbs" value="kbps"></selection>
</dialogConfig>
<userAction name="setToBps">
</userAction>
<userAction name="setToKbps">
</userAction>
</userControl>

<userControl type="readOnly" name="baudRateError">
<dialogConfig type="general" caption="Baud Rate Error (%)"></dialogConfig>
<userAction>
</userAction>
</userControl>

</userControlSubGroup>
</userControlGroup>

</featureDefinitions>
