RMUL2025/lib/cmsis_svd/data/SiFive-Community/e310x.svd

2374 lines
99 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD.xsd" >
<vendor>SiFive</vendor>
<name>FE310</name>
<addressUnitBits>8</addressUnitBits>
<width>32</width>
<size>32</size>
<access>read-write</access>
<resetValue>0x00000000</resetValue>
<resetMask>0xFFFFFFFF</resetMask>
<peripherals>
<!-- CLINT -->
<peripheral>
<name>CLINT</name>
<baseAddress>0x02000000</baseAddress>
<groupName>CLINT</groupName>
<description>Coreplex Local Interrupts</description>
<registers>
<register>
<name>msip</name>
<description>Hart 0 software interrupt register</description>
<addressOffset>0x0000</addressOffset>
<writeConstraint>
<range>
<minimum>0</minimum>
<maximum>1</maximum>
</range>
</writeConstraint>
</register>
<register>
<name>mtimecmp</name>
<description>Hart 0 time comparator register</description>
<addressOffset>0x4000</addressOffset>
</register>
<register>
<name>mtimecmph</name>
<description>Hart 0 time comparator register</description>
<addressOffset>0x4004</addressOffset>
</register>
<register>
<name>mtime</name>
<description>Timer register</description>
<addressOffset>0xBFF8</addressOffset>
</register>
<register>
<name>mtimeh</name>
<description>Timer register</description>
<addressOffset>0xBFFC</addressOffset>
</register>
</registers>
</peripheral>
<!-- CLINT -->
<!-- PLIC -->
<peripheral>
<name>PLIC</name>
<baseAddress>0x0C000000</baseAddress>
<groupName>PLIC</groupName>
<description>Platform Level Interrupt Control</description>
<registers>
<register>
<dim>52</dim>
<dimIncrement>0x04</dimIncrement>
<name>priority[%s]</name>
<description>Interrupt Priority Register</description>
<addressOffset>0x000000</addressOffset>
<enumeratedValues derivedFrom="threshold">
</enumeratedValues>
</register>
<register>
<dim>2</dim>
<dimIncrement>0x04</dimIncrement>
<name>pending[%s]</name>
<description>Interrupt Pending Register</description>
<addressOffset>0x001000</addressOffset>
</register>
<register>
<dim>2</dim>
<dimIncrement>0x04</dimIncrement>
<name>enable[%s]</name>
<description>Interrupt Enable Register</description>
<addressOffset>0x002000</addressOffset>
</register>
<register>
<name>threshold</name>
<description>Priority Threshold Register</description>
<addressOffset>0x200000</addressOffset>
<fields>
<field>
<name>priority</name>
<msb>2</msb><lsb>0</lsb>
<enumeratedValues>
<name>Priority</name>
<enumeratedValue>
<name>Never</name>
<description>Never interrupt</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>P1</name>
<description>Priority 1</description>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>P2</name>
<description>Priority 2</description>
<value>2</value>
</enumeratedValue>
<enumeratedValue>
<name>P3</name>
<description>Priority 3</description>
<value>3</value>
</enumeratedValue>
<enumeratedValue>
<name>P4</name>
<description>Priority 4</description>
<value>4</value>
</enumeratedValue>
<enumeratedValue>
<name>P5</name>
<description>Priority 5</description>
<value>5</value>
</enumeratedValue>
<enumeratedValue>
<name>P6</name>
<description>Priority 6</description>
<value>6</value>
</enumeratedValue>
<enumeratedValue>
<name>P7</name>
<description>Priority 7</description>
<value>7</value>
</enumeratedValue>
</enumeratedValues>
</field>
</fields>
</register>
<register>
<name>claim</name>
<description>Claim/Complete Register</description>
<addressOffset>0x200004</addressOffset>
<range>
<minimum>0x00000000</minimum>
<maximum>0xFFFFFFFF</maximum>
</range>
</register>
</registers>
</peripheral>
<!-- PLIC -->
<!-- WDOG -->
<peripheral>
<name>WDOG</name>
<baseAddress>0x10000000</baseAddress>
<groupName>Watchdog</groupName>
<description>Watchdog</description>
<registers>
<register>
<name>wdogcfg</name>
<description>Watchdog Configuration Register</description>
<addressOffset>0x000</addressOffset>
<fields>
<field><name>cmpip</name><msb>28</msb><lsb>28</lsb></field>
<field><name>encoreawake</name><msb>13</msb><lsb>13</lsb></field>
<field><name>enalways</name><msb>12</msb><lsb>12</lsb></field>
<field><name>zerocmp</name><msb>9</msb><lsb>9</lsb></field>
<field><name>rsten</name><msb>8</msb><lsb>8</lsb></field>
<field><name>scale</name><msb>3</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>wdogcount</name>
<description>Watchdog Counter Register</description>
<addressOffset>0x008</addressOffset>
</register>
<register>
<name>wdogs</name>
<description>Watchdog Scaled Counter Register</description>
<addressOffset>0x010</addressOffset>
</register>
<register>
<name>wdogfeed</name>
<description>Watchdog Feed Register</description>
<addressOffset>0x018</addressOffset>
</register>
<register>
<name>wdogkey</name>
<description>Watchdog Key Register</description>
<addressOffset>0x01C</addressOffset>
<access>write-only</access>
<resetValue>0x51F15E</resetValue>
</register>
<register>
<name>wdogcmp</name>
<description>Watchdog Compare Register</description>
<addressOffset>0x020</addressOffset>
<fields>
<field><name>value</name><msb>15</msb><lsb>0</lsb></field>
</fields>
</register>
</registers>
<interrupt>
<name>WATCHDOG</name>
<value>1</value>
</interrupt>
</peripheral>
<!-- WDOG -->
<!-- RTC -->
<peripheral>
<name>RTC</name>
<baseAddress>0x10000000</baseAddress>
<groupName>RTC</groupName>
<description>Watchdog</description>
<registers>
<register>
<name>rtccfg</name>
<description>RTC Configuration Register</description>
<addressOffset>0x040</addressOffset>
<fields>
<field><name>cmpip</name><msb>28</msb><lsb>28</lsb></field>
<field><name>enalways</name><msb>12</msb><lsb>12</lsb></field>
<field><name>scale</name><msb>3</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>rtclo</name>
<description>RTC Counter Low Register</description>
<addressOffset>0x048</addressOffset>
</register>
<register>
<name>rtchi</name>
<description>RTC Counter High Register</description>
<addressOffset>0x04C</addressOffset>
<fields>
<field><name>value</name><msb>15</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>rtcs</name>
<description>RTC Scaled Counter Register</description>
<addressOffset>0x050</addressOffset>
</register>
<register>
<name>rtccmp</name>
<description>RTC Compare Register</description>
<addressOffset>0x060</addressOffset>
</register>
</registers>
<interrupt>
<name>RTC</name>
<value>2</value>
</interrupt>
</peripheral>
<!-- RTC -->
<!-- AONCLK -->
<peripheral>
<name>AONCLK</name>
<baseAddress>0x10000000</baseAddress>
<groupName>AONCLOCK</groupName>
<description>Always-On Clock Configuration</description>
<registers>
<register>
<name>lfrosccfg</name>
<description>AON Clock Configuration Register</description>
<addressOffset>0x070</addressOffset>
<fields>
<field><name>ready</name><msb>31</msb><lsb>31</lsb></field>
<field><name>enable</name><msb>30</msb><lsb>30</lsb></field>
<field><name>trim</name><bitRange>[20:16]</bitRange></field>
<field><name>div</name><msb>5</msb><lsb>0</lsb></field>
</fields>
</register>
</registers>
</peripheral>
<!-- AONCLK -->
<!-- BACKUP -->
<peripheral>
<name>BACKUP</name>
<baseAddress>0x10000000</baseAddress>
<groupName>BACKUP</groupName>
<description>Backup Registers</description>
<registers>
<register>
<dim>16</dim>
<dimIncrement>0x04</dimIncrement>
<name>backup[%s]</name>
<description>Backup Register</description>
<addressOffset>0x080</addressOffset>
</register>
</registers>
</peripheral>
<!-- BACKUP -->
<!-- PMU -->
<peripheral>
<name>PMU</name>
<baseAddress>0x10000000</baseAddress>
<groupName>PMU</groupName>
<description>PMU</description>
<registers>
<register>
<dim>8</dim>
<dimIncrement>0x04</dimIncrement>
<name>pmuwakepm[%s]</name>
<description>PMU Wake Program Memory</description>
<addressOffset>0x100</addressOffset>
<fields>
<field><name>isolate</name><msb>9</msb><lsb>9</lsb></field>
<field><name>hfclkrst</name><msb>8</msb><lsb>8</lsb></field>
<field><name>corerst</name><msb>7</msb><lsb>7</lsb></field>
<field><name>pmu_out_1_en</name><msb>5</msb><lsb>5</lsb></field>
<field><name>pmu_out_0_en</name><msb>4</msb><lsb>4</lsb></field>
<field><name>delay</name><msb>3</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<dim>8</dim>
<dimIncrement>0x04</dimIncrement>
<name>pmusleeppm[%s]</name>
<description>PMU Sleep Program Memory</description>
<addressOffset>0x120</addressOffset>
<fields>
<field><name>isolate</name><msb>9</msb><lsb>9</lsb></field>
<field><name>hfclkrst</name><msb>8</msb><lsb>8</lsb></field>
<field><name>corerst</name><msb>7</msb><lsb>7</lsb></field>
<field><name>pmu_out_1_en</name><msb>5</msb><lsb>5</lsb></field>
<field><name>pmu_out_0_en</name><msb>4</msb><lsb>4</lsb></field>
<field><name>delay</name><msb>3</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>pmuie</name>
<description>PMU Interrupt Enable Register</description>
<addressOffset>0x140</addressOffset>
<fields>
<field><name>awakeup</name><msb>3</msb><lsb>3</lsb></field>
<field><name>dwakeup</name><msb>2</msb><lsb>2</lsb></field>
<field><name>rtc</name><msb>1</msb><lsb>1</lsb></field>
</fields>
</register>
<register>
<name>pmucause</name>
<description>PMU Cause Register</description>
<addressOffset>0x144</addressOffset>
<fields>
<field>
<name>resetcause</name>
<msb>9</msb><lsb>8</lsb>
<enumeratedValues>
<enumeratedValue>
<name>PowerOn</name>
<description>Power-on reset</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>External</name>
<description>External reset</description>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>Watchdog</name>
<description>Watchdog reset</description>
<value>2</value>
</enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>wakeupcause</name>
<msb>1</msb><lsb>0</lsb>
<enumeratedValues>
<enumeratedValue>
<name>Reset</name>
<description>Reset wakeup</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>RTC</name>
<description>RTC wakeup</description>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>Digital</name>
<description>Digital input wakeup</description>
<value>2</value>
</enumeratedValue>
</enumeratedValues>
</field>
</fields>
</register>
<register>
<name>pmusleep</name>
<description>PMU Sleep Register</description>
<addressOffset>0x148</addressOffset>
<access>write-only</access>
<fields>
<!-- Writing any value to pmusleep will start the sleep sequence -->
<field><name>sleep</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>pmukey</name>
<description>PMU Key Register</description>
<addressOffset>0x14C</addressOffset>
</register>
</registers>
</peripheral>
<!-- PMU -->
<!-- PRCI -->
<peripheral>
<name>PRCI</name>
<baseAddress>0x10008000</baseAddress>
<groupName>PRCI</groupName>
<description>Power Reset Clock Interrupts</description>
<registers>
<register>
<name>hfrosccfg</name>
<description>Clock Configuration Register</description>
<addressOffset>0x000</addressOffset>
<fields>
<field><name>ready</name><msb>31</msb><lsb>31</lsb></field>
<field><name>enable</name><msb>30</msb><lsb>30</lsb></field>
<field><name>trim</name><msb>20</msb><lsb>16</lsb></field>
<field><name>div</name><msb>5</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>hfxosccfg</name>
<description>Clock Configuration Register</description>
<addressOffset>0x004</addressOffset>
<fields>
<field><name>ready</name><msb>31</msb><lsb>31</lsb></field>
<field><name>enable</name><msb>30</msb><lsb>30</lsb></field>
</fields>
</register>
<register>
<name>pllcfg</name>
<description>PLL Configuration Register</description>
<addressOffset>0x008</addressOffset>
<!-- bypass 1, sel: 0, refsel: 1, r=2: 01, f=64: 011111, q=8: 11 -->
<resetValue>0x306F9</resetValue>
<fields>
<field><name>lock</name><msb>31</msb><lsb>31</lsb></field>
<field><name>bypass</name><msb>18</msb><lsb>18</lsb></field>
<field><name>refsel</name><msb>17</msb><lsb>17</lsb></field>
<field><name>sel</name><msb>16</msb><lsb>16</lsb></field>
<field>
<name>pllq</name>
<msb>11</msb><lsb>10</lsb>
<enumeratedValues>
<name>PLLQ</name>
<enumeratedValue>
<name>Q2</name>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>Q4</name>
<value>2</value>
</enumeratedValue>
<enumeratedValue>
<name>Q8</name>
<value>3</value>
</enumeratedValue>
</enumeratedValues>
</field>
<field><name>pllf</name><msb>9</msb><lsb>4</lsb></field>
<field>
<name>pllr</name>
<msb>2</msb><lsb>0</lsb>
<enumeratedValues>
<name>PLLR</name>
<enumeratedValue>
<name>R1</name>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>R2</name>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>R3</name>
<value>2</value>
</enumeratedValue>
<enumeratedValue>
<name>R4</name>
<value>3</value>
</enumeratedValue>
</enumeratedValues>
</field>
</fields>
</register>
<register>
<name>plloutdiv</name>
<description>PLL Divider Register</description>
<addressOffset>0x00C</addressOffset>
<!-- divby1 is enabled after reset -->
<resetValue>0x100</resetValue>
<fields>
<field><name>divby1</name><msb>8</msb><lsb>8</lsb></field>
<field><name>div</name><msb>5</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>coreclkcfg</name>
<description>Clock Configuration Register</description>
<addressOffset>0x010</addressOffset>
</register>
</registers>
</peripheral>
<!-- PRCI -->
<!-- OTP -->
<peripheral>
<name>OTP</name>
<baseAddress>0x10010000</baseAddress>
<groupName>OTP</groupName>
<description>One Time Programmable Memory</description>
<registers>
<register>
<name>lock</name>
<description>Programmed-I/O lock register</description>
<addressOffset>0x00</addressOffset>
</register>
<register>
<name>clock</name>
<description>OTP device clock signal</description>
<addressOffset>0x04</addressOffset>
</register>
<register>
<name>output_en</name>
<description>OTP device output-enable signal</description>
<addressOffset>0x08</addressOffset>
</register>
<register>
<name>select</name>
<description>OTP device chip-select signal</description>
<addressOffset>0x0C</addressOffset>
</register>
<register>
<name>write_en</name>
<description>OTP device write-enable signal</description>
<addressOffset>0x10</addressOffset>
</register>
<register>
<name>mode</name>
<description>OTP device mode register</description>
<addressOffset>0x14</addressOffset>
</register>
<register>
<name>mrr</name>
<description>OTP read-voltage regulator control</description>
<addressOffset>0x18</addressOffset>
</register>
<register>
<name>mpp</name>
<description>OTP write-voltage charge pump control</description>
<addressOffset>0x1C</addressOffset>
</register>
<register>
<name>vrren</name>
<description>OTP read-voltage enable</description>
<addressOffset>0x20</addressOffset>
</register>
<register>
<name>vppen</name>
<description>OTP write-voltage enable</description>
<addressOffset>0x24</addressOffset>
</register>
<register>
<name>addr</name>
<description>OTP device address</description>
<addressOffset>0x28</addressOffset>
</register>
<register>
<name>data_in</name>
<description>OTP device data input</description>
<addressOffset>0x2C</addressOffset>
</register>
<register>
<name>data_out</name>
<description>OTP device data output</description>
<addressOffset>0x30</addressOffset>
</register>
<register>
<name>rsctrl</name>
<description>OTP read sequencer control</description>
<addressOffset>0x34</addressOffset>
</register>
</registers>
</peripheral>
<!-- OTP -->
<!-- GPIO0 -->
<peripheral>
<name>GPIO0</name>
<baseAddress>0x10012000</baseAddress>
<groupName>GPIO</groupName>
<description>General Purpose Input Output</description>
<registers>
<register>
<name>value</name>
<description>Pin value.</description>
<addressOffset>0x000</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>input_en</name>
<description>Pin Input Enable Register</description>
<addressOffset>0x004</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>output_en</name>
<description>Pin Output Enable Register</description>
<addressOffset>0x008</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>port</name>
<description>Output Port Value Register</description>
<addressOffset>0x00C</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>pullup</name>
<description>Internal Pull-Up Enable Register</description>
<addressOffset>0x010</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>drive</name>
<description>Drive Strength Register</description>
<addressOffset>0x014</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>rise_ie</name>
<description>Rise Interrupt Enable Register</description>
<addressOffset>0x018</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>rise_ip</name>
<description>Rise Interrupt Pending Register</description>
<addressOffset>0x01C</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>fall_ie</name>
<description>Fall Interrupt Enable Register</description>
<addressOffset>0x020</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>fall_ip</name>
<description>Fall Interrupt Pending Register</description>
<addressOffset>0x024</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>high_ie</name>
<description>High Interrupt Enable Register</description>
<addressOffset>0x028</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>high_ip</name>
<description>High Interrupt Pending Register</description>
<addressOffset>0x02C</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>low_ie</name>
<description>Low Interrupt Enable Register</description>
<addressOffset>0x030</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>low_ip</name>
<description>Low Interrupt Pending Register</description>
<addressOffset>0x034</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>iof_en</name>
<description>HW I/O Function Enable Register</description>
<addressOffset>0x038</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
<register>
<name>iof_sel</name>
<description>HW I/O Function Select Register</description>
<addressOffset>0x03C</addressOffset>
<fields>
<field>
<name>pin0</name><msb>0</msb><lsb>0</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM0_0</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin1</name><msb>1</msb><lsb>1</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM0_1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin2</name><msb>2</msb><lsb>2</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SS0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM0_2</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin3</name><msb>3</msb><lsb>3</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SD0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM0_3</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin4</name><msb>4</msb><lsb>4</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SD1</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin5</name><msb>5</msb><lsb>5</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SCK</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin6</name><msb>6</msb><lsb>6</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SD2</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin7</name><msb>7</msb><lsb>7</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SD3</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin8</name><msb>8</msb><lsb>8</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SS1</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin9</name><msb>9</msb><lsb>9</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SS2</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin10</name><msb>10</msb><lsb>10</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI1_SS3</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM2_0</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin11</name><msb>11</msb><lsb>11</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM2_1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin12</name><msb>12</msb><lsb>12</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM2_2</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin13</name><msb>13</msb><lsb>13</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM2_3</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin14</name><msb>14</msb><lsb>14</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin15</name><msb>15</msb><lsb>15</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin16</name><msb>16</msb><lsb>16</lsb>
<enumeratedValues>
<enumeratedValue><name>UART0_RX</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin17</name><msb>17</msb><lsb>17</lsb>
<enumeratedValues>
<enumeratedValue><name>UART0_TX</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin18</name><msb>18</msb><lsb>18</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin19</name><msb>19</msb><lsb>19</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM1_1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin20</name><msb>20</msb><lsb>20</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM1_0</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin21</name><msb>21</msb><lsb>21</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM1_2</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin22</name><msb>22</msb><lsb>22</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>PWM1_3</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin23</name><msb>23</msb><lsb>23</lsb>
<enumeratedValues>
<enumeratedValue><name>IOF0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin24</name><msb>24</msb><lsb>24</lsb>
<enumeratedValues>
<enumeratedValue><name>UART1_RX</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin25</name><msb>25</msb><lsb>25</lsb>
<enumeratedValues>
<enumeratedValue><name>UART1_TX</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin26</name><msb>26</msb><lsb>26</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI2_SS</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin27</name><msb>27</msb><lsb>27</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI2_SD0</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin28</name><msb>28</msb><lsb>28</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI2_SD1</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin29</name><msb>29</msb><lsb>29</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI2_SCK</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin30</name><msb>30</msb><lsb>30</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI2_SD2</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pin31</name><msb>31</msb><lsb>31</lsb>
<enumeratedValues>
<enumeratedValue><name>QSPI2_SD3</name><value>0</value></enumeratedValue>
<enumeratedValue><name>IOF1</name><value>1</value></enumeratedValue>
</enumeratedValues>
</field>
</fields>
</register>
<register>
<name>out_xor</name>
<description>Output XOR (invert) Register</description>
<addressOffset>0x040</addressOffset>
<fields>
<field><name>pin0</name><lsb>0</lsb><msb>0</msb></field>
<field><name>pin1</name><lsb>1</lsb><msb>1</msb></field>
<field><name>pin2</name><lsb>2</lsb><msb>2</msb></field>
<field><name>pin3</name><lsb>3</lsb><msb>3</msb></field>
<field><name>pin4</name><lsb>4</lsb><msb>4</msb></field>
<field><name>pin5</name><lsb>5</lsb><msb>5</msb></field>
<field><name>pin6</name><lsb>6</lsb><msb>6</msb></field>
<field><name>pin7</name><lsb>7</lsb><msb>7</msb></field>
<field><name>pin8</name><lsb>8</lsb><msb>8</msb></field>
<field><name>pin9</name><lsb>9</lsb><msb>9</msb></field>
<field><name>pin10</name><lsb>10</lsb><msb>10</msb></field>
<field><name>pin11</name><lsb>11</lsb><msb>11</msb></field>
<field><name>pin12</name><lsb>12</lsb><msb>12</msb></field>
<field><name>pin13</name><lsb>13</lsb><msb>13</msb></field>
<field><name>pin14</name><lsb>14</lsb><msb>14</msb></field>
<field><name>pin15</name><lsb>15</lsb><msb>15</msb></field>
<field><name>pin16</name><lsb>16</lsb><msb>16</msb></field>
<field><name>pin17</name><lsb>17</lsb><msb>17</msb></field>
<field><name>pin18</name><lsb>18</lsb><msb>18</msb></field>
<field><name>pin19</name><lsb>19</lsb><msb>19</msb></field>
<field><name>pin20</name><lsb>20</lsb><msb>20</msb></field>
<field><name>pin21</name><lsb>21</lsb><msb>21</msb></field>
<field><name>pin22</name><lsb>22</lsb><msb>22</msb></field>
<field><name>pin23</name><lsb>23</lsb><msb>23</msb></field>
<field><name>pin24</name><lsb>24</lsb><msb>24</msb></field>
<field><name>pin25</name><lsb>25</lsb><msb>25</msb></field>
<field><name>pin26</name><lsb>26</lsb><msb>26</msb></field>
<field><name>pin27</name><lsb>27</lsb><msb>27</msb></field>
<field><name>pin28</name><lsb>28</lsb><msb>28</msb></field>
<field><name>pin29</name><lsb>29</lsb><msb>29</msb></field>
<field><name>pin30</name><lsb>30</lsb><msb>30</msb></field>
<field><name>pin31</name><lsb>31</lsb><msb>31</msb></field>
</fields>
</register>
</registers>
<interrupt>
<name>GPIO0</name>
<value>8</value>
</interrupt>
<interrupt>
<name>GPIO1</name>
<value>9</value>
</interrupt>
<interrupt>
<name>GPIO2</name>
<value>10</value>
</interrupt>
<interrupt>
<name>GPIO3</name>
<value>11</value>
</interrupt>
<interrupt>
<name>GPIO4</name>
<value>12</value>
</interrupt>
<interrupt>
<name>GPIO5</name>
<value>13</value>
</interrupt>
<interrupt>
<name>GPIO6</name>
<value>14</value>
</interrupt>
<interrupt>
<name>GPIO7</name>
<value>15</value>
</interrupt>
<interrupt>
<name>GPIO8</name>
<value>16</value>
</interrupt>
<interrupt>
<name>GPIO9</name>
<value>17</value>
</interrupt>
<interrupt>
<name>GPIO10</name>
<value>18</value>
</interrupt>
<interrupt>
<name>GPIO11</name>
<value>19</value>
</interrupt>
<interrupt>
<name>GPIO12</name>
<value>20</value>
</interrupt>
<interrupt>
<name>GPIO13</name>
<value>21</value>
</interrupt>
<interrupt>
<name>GPIO14</name>
<value>22</value>
</interrupt>
<interrupt>
<name>GPIO15</name>
<value>23</value>
</interrupt>
<interrupt>
<name>GPIO16</name>
<value>24</value>
</interrupt>
<interrupt>
<name>GPIO17</name>
<value>25</value>
</interrupt>
<interrupt>
<name>GPIO18</name>
<value>26</value>
</interrupt>
<interrupt>
<name>GPIO19</name>
<value>27</value>
</interrupt>
<interrupt>
<name>GPIO20</name>
<value>28</value>
</interrupt>
<interrupt>
<name>GPIO21</name>
<value>29</value>
</interrupt>
<interrupt>
<name>GPIO22</name>
<value>30</value>
</interrupt>
<interrupt>
<name>GPIO23</name>
<value>31</value>
</interrupt>
<interrupt>
<name>GPIO24</name>
<value>32</value>
</interrupt>
<interrupt>
<name>GPIO25</name>
<value>33</value>
</interrupt>
<interrupt>
<name>GPIO26</name>
<value>34</value>
</interrupt>
<interrupt>
<name>GPIO27</name>
<value>35</value>
</interrupt>
<interrupt>
<name>GPIO28</name>
<value>36</value>
</interrupt>
<interrupt>
<name>GPIO29</name>
<value>37</value>
</interrupt>
<interrupt>
<name>GPIO30</name>
<value>38</value>
</interrupt>
<interrupt>
<name>GPIO31</name>
<value>39</value>
</interrupt>
</peripheral>
<!-- GPIO0 -->
<!-- UART0 -->
<peripheral>
<name>UART0</name>
<baseAddress>0x10013000</baseAddress>
<groupName>UART</groupName>
<description>Universal Asynchronous Receiver Transmitter</description>
<registers>
<!-- Data Registers -->
<register>
<name>txdata</name>
<description>Transmit Data Register</description>
<addressOffset>0x00</addressOffset>
<fields>
<field><name>full</name><msb>31</msb><lsb>31</lsb></field>
<field><name>data</name><msb>7</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>rxdata</name>
<description>Receive Data Register</description>
<addressOffset>0x04</addressOffset>
<fields>
<field><name>empty</name><msb>31</msb><lsb>31</lsb></field>
<field><name>data</name><msb>7</msb><lsb>0</lsb></field>
</fields>
</register>
<!-- Data Registers -->
<!-- Control Registers -->
<register>
<name>txctrl</name>
<description>Transmit Control Register</description>
<addressOffset>0x08</addressOffset>
<fields>
<field><name>counter</name><msb>18</msb><lsb>16</lsb></field>
<field><name>nstop</name><msb>1</msb><lsb>1</lsb></field>
<field><name>enable</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>rxctrl</name>
<description>Receive Control Register</description>
<addressOffset>0x0C</addressOffset>
<fields>
<field><name>counter</name><msb>18</msb><lsb>16</lsb></field>
<field><name>enable</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
<!-- Control Registers -->
<!-- Interrupt Registers -->
<register>
<name>ie</name>
<description>Interrupt Enable Register</description>
<addressOffset>0x10</addressOffset>
<fields>
<field><name>rxwm</name><msb>1</msb><lsb>1</lsb></field>
<field><name>txwm</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>ip</name>
<description>Interrupt Pending Register</description>
<addressOffset>0x14</addressOffset>
<fields>
<field><name>rxwm</name><msb>1</msb><lsb>1</lsb></field>
<field><name>txwm</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
<!-- Interrupt Registers -->
<!-- Configuration Registers -->
<register>
<name>div</name>
<description>Baud Rate Divisor Register</description>
<addressOffset>0x18</addressOffset>
<fields>
<field><name>value</name><msb>15</msb><lsb>0</lsb></field>
</fields>
</register>
<!-- Configuration Registers -->
</registers>
<interrupt>
<name>UART0</name>
<value>3</value>
</interrupt>
</peripheral>
<!-- UART0 -->
<!-- QSPI0 -->
<peripheral>
<name>QSPI0</name>
<baseAddress>0x10014000</baseAddress>
<groupName>QSPI</groupName>
<description>Quad Serial Peripheral Interface</description>
<registers>
<register>
<name>div</name>
<description>Serial Clock Divisor Register</description>
<addressOffset>0x00</addressOffset>
<fields>
<field><name>value</name><msb>11</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>mode</name>
<description>Serial Clock Mode Register</description>
<addressOffset>0x04</addressOffset>
<fields>
<field><name>polarity</name><msb>1</msb><lsb>1</lsb></field>
<field><name>phase</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>csid</name>
<description>Chip Select ID Register</description>
<addressOffset>0x10</addressOffset>
</register>
<register>
<name>csdef</name>
<description>Chip Select Default Register</description>
<addressOffset>0x14</addressOffset>
<resetValue>0xFFFF</resetValue>
</register>
<register>
<name>csmode</name>
<description>Chip Select Mode Register</description>
<addressOffset>0x18</addressOffset>
<enumeratedValues>
<enumeratedValue>
<name>Auto</name>
<description>
Assert/de-assert CS at the beginning/end of each frame.
</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>Hold</name>
<description>
Keep CS continuously asserted after the initial frame.
</description>
<value>2</value>
</enumeratedValue>
<enumeratedValue>
<name>Off</name>
<description>Disable hardware control of the CS pin.</description>
<value>3</value>
</enumeratedValue>
</enumeratedValues>
</register>
<register>
<name>delay0</name>
<description>Delay Control 0 Register</description>
<addressOffset>0x28</addressOffset>
<fields>
<field><name>sckcs</name><msb>23</msb><lsb>16</lsb></field>
<field><name>cssck</name><msb>7</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>delay1</name>
<description>Delay Control 1 Register</description>
<addressOffset>0x2C</addressOffset>
<fields>
<field><name>interxfr</name><msb>23</msb><lsb>16</lsb></field>
<field><name>intercs</name><msb>7</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>fmt</name>
<description>Frame Format Register</description>
<addressOffset>0x40</addressOffset>
<fields>
<field><name>length</name><msb>19</msb><lsb>16</lsb></field>
<field>
<name>direction</name>
<msb>3</msb><lsb>3</lsb>
<enumeratedValues>
<enumeratedValue>
<name>Rx</name>
<description>
For dual and quad protocols, the DQ pins are tri-stated. For
the single protocol, the DQ0 pin is driven with the transmit
data as normal.
</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>Tx</name>
<description>The receive FIFO is not populated.</description>
<value>1</value>
</enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>endian</name>
<msb>2</msb><lsb>2</lsb>
<enumeratedValues>
<enumeratedValue>
<name>Big</name>
<description>Transmit MSB first.</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>Little</name>
<description>Transmit LSB first.</description>
<value>1</value>
</enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>protocol</name>
<msb>1</msb><lsb>0</lsb>
<enumeratedValues>
<enumeratedValue>
<name>Single</name>
<description>DQ0 (MOSI), DQ1 (MISO)</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>Dual</name>
<description>DQ0, DQ1</description>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>Quad</name>
<description>DQ0, DQ1, DQ2, DQ3</description>
<value>2</value>
</enumeratedValue>
</enumeratedValues>
</field>
</fields>
</register>
<register>
<name>txdata</name>
<description>Transmit Data Register</description>
<addressOffset>0x48</addressOffset>
<fields>
<field><name>full</name><msb>31</msb><lsb>31</lsb></field>
<field><name>data</name><msb>7</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>rxdata</name>
<description>Receive Data Register</description>
<addressOffset>0x4C</addressOffset>
<fields>
<field><name>empty</name><msb>31</msb><lsb>31</lsb></field>
<field><name>data</name><msb>7</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>txmark</name>
<description>Transmit Watermark Register</description>
<addressOffset>0x50</addressOffset>
<fields>
<field><name>value</name><msb>2</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>rxmark</name>
<description>Receive Watermark Register</description>
<addressOffset>0x54</addressOffset>
<fields>
<field><name>value</name><msb>2</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>fctrl</name>
<description>SPI Flash Interface Control Register</description>
<addressOffset>0x60</addressOffset>
<fields>
<field><name>enable</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>ffmt</name>
<description>SPI Flash Instruction Format Register</description>
<addressOffset>0x64</addressOffset>
<fields>
<field>
<name>pad_code</name>
<msb>31</msb><lsb>24</lsb>
<description>First 8 bits to transmit during dummy cycles</description>
<resetValue>0x00</resetValue>
</field>
<field>
<name>cmd_code</name>
<msb>23</msb><lsb>16</lsb>
<description>Value of command byte</description>
<resetValue>0x03</resetValue>
</field>
<field>
<name>data_proto</name>
<msb>13</msb><lsb>12</lsb>
<description>Protocol for receiving data bytes</description>
<resetValue>0x0</resetValue>
<enumeratedValues>
<enumeratedValue>
<name>Single</name>
<description>DQ0 (MOSI), DQ1 (MISO)</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>Dual</name>
<description>DQ0, DQ1</description>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>Quad</name>
<description>DQ0, DQ1, DQ2, DQ3</description>
<value>2</value>
</enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>addr_proto</name>
<msb>11</msb><lsb>10</lsb>
<description>Protocol for transmitting address and padding</description>
<resetValue>0x0</resetValue>
<enumeratedValues>
<enumeratedValue>
<name>Single</name>
<description>DQ0 (MOSI), DQ1 (MISO)</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>Dual</name>
<description>DQ0, DQ1</description>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>Quad</name>
<description>DQ0, DQ1, DQ2, DQ3</description>
<value>2</value>
</enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>cmd_proto</name>
<msb>9</msb><lsb>8</lsb>
<description>Protocol for transmitting command</description>
<resetValue>0x0</resetValue>
<enumeratedValues>
<enumeratedValue>
<name>Single</name>
<description>DQ0 (MOSI), DQ1 (MISO)</description>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>Dual</name>
<description>DQ0, DQ1</description>
<value>1</value>
</enumeratedValue>
<enumeratedValue>
<name>Quad</name>
<description>DQ0, DQ1, DQ2, DQ3</description>
<value>2</value>
</enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>pad_cnt</name>
<msb>0</msb><lsb>0</lsb>
<description>Number of dummy cycles</description>
<resetValue>0x0</resetValue>
</field>
<field>
<name>addr_len</name>
<msb>3</msb><lsb>1</lsb>
<description>Number of address bytes (0 to 4)</description>
<resetValue>0x3</resetValue>
</field>
<field>
<name>cmd_en</name>
<msb>0</msb><lsb>0</lsb>
<description>Enable sending of command</description>
<resetValue>0x1</resetValue>
</field>
</fields>
</register>
<register>
<name>ie</name>
<description>SPI Interrupt Enable Register</description>
<addressOffset>0x70</addressOffset>
<fields>
<field><name>rxwm</name><msb>1</msb><lsb>1</lsb></field>
<field><name>txwm</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>ip</name>
<description>SPI Interrupt Pending Register</description>
<addressOffset>0x74</addressOffset>
<fields>
<field><name>rxwm</name><msb>1</msb><lsb>1</lsb></field>
<field><name>txwm</name><msb>0</msb><lsb>0</lsb></field>
</fields>
</register>
</registers>
<interrupt>
<name>QSPI0</name>
<value>5</value>
</interrupt>
</peripheral>
<!-- QSPI0 -->
<!-- PWM0 -->
<peripheral>
<name>PWM0</name>
<baseAddress>0x10015000</baseAddress>
<groupName>PWM</groupName>
<description>8-bit timer with 4 cmp</description>
<registers>
<register>
<name>cfg</name>
<description>PWM Configuration Register</description>
<addressOffset>0x00</addressOffset>
<fields>
<field><name>cmp3ip</name><msb>31</msb><lsb>31</lsb></field>
<field><name>cmp2ip</name><msb>30</msb><lsb>30</lsb></field>
<field><name>cmp1ip</name><msb>29</msb><lsb>29</lsb></field>
<field><name>cmp0ip</name><msb>28</msb><lsb>28</lsb></field>
<field><name>cmp3gang</name><msb>27</msb><lsb>27</lsb></field>
<field><name>cmp2gang</name><msb>36</msb><lsb>26</lsb></field>
<field><name>cmp1gang</name><msb>25</msb><lsb>25</lsb></field>
<field><name>cmp0gang</name><msb>24</msb><lsb>24</lsb></field>
<field><name>cmp3center</name><msb>19</msb><lsb>19</lsb></field>
<field><name>cmp2center</name><msb>18</msb><lsb>18</lsb></field>
<field><name>cmp1center</name><msb>17</msb><lsb>17</lsb></field>
<field><name>cmp0center</name><msb>16</msb><lsb>16</lsb></field>
<field><name>enoneshot</name><msb>13</msb><lsb>13</lsb></field>
<field><name>enalways</name><msb>12</msb><lsb>12</lsb></field>
<field><name>deglitch</name><msb>10</msb><lsb>10</lsb></field>
<field><name>zerocmp</name><msb>9</msb><lsb>9</lsb></field>
<field><name>sticky</name><msb>8</msb><lsb>8</lsb></field>
<field><name>scale</name><msb>3</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>count</name>
<description>Counter Register</description>
<addressOffset>0x08</addressOffset>
</register>
<register>
<name>pwms</name>
<description>Scaled Halfword Counter Register</description>
<addressOffset>0x10</addressOffset>
</register>
<register>
<name>cmp0</name>
<description>Compare Register</description>
<addressOffset>0x20</addressOffset>
<fields>
<field><name>value</name><msb>15</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>cmp1</name>
<description>Compare Register</description>
<addressOffset>0x24</addressOffset>
<fields>
<field><name>value</name><msb>15</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>cmp2</name>
<description>Compare Register</description>
<addressOffset>0x28</addressOffset>
<fields>
<field><name>value</name><msb>15</msb><lsb>0</lsb></field>
</fields>
</register>
<register>
<name>cmp3</name>
<description>Compare Register</description>
<addressOffset>0x2C</addressOffset>
<fields>
<field><name>value</name><msb>15</msb><lsb>0</lsb></field>
</fields>
</register>
</registers>
<interrupt>
<name>PWM0CMP0</name>
<value>40</value>
</interrupt>
<interrupt>
<name>PWM0CMP1</name>
<value>41</value>
</interrupt>
<interrupt>
<name>PWM0CMP2</name>
<value>42</value>
</interrupt>
<interrupt>
<name>PWM0CMP3</name>
<value>43</value>
</interrupt>
</peripheral>
<!-- PWM0 -->
<!-- I2C0 -->
<peripheral>
<name>I2C0</name>
<baseAddress>0x10016000</baseAddress>
<groupName>I2C</groupName>
<description>Inter-Integrated Circuit Master Interface (FE310-G002 only)</description>
<registers>
<register>
<name>prer_lo</name>
<description>Clock Prescale register lo-byte</description>
<addressOffset>0x00</addressOffset>
<fields>
<field>
<name>value</name>
<bitRange>[7:0]</bitRange>
</field>
</fields>
</register>
<register>
<name>prer_hi</name>
<description>Clock Prescale register hi-byte</description>
<addressOffset>0x04</addressOffset>
<fields>
<field>
<name>value</name>
<bitRange>[7:0]</bitRange>
</field>
</fields>
</register>
<register>
<name>ctr</name>
<description>Control register</description>
<addressOffset>0x08</addressOffset>
<fields>
<field>
<name>en</name>
<description>I2C core enable bit</description>
<bitRange>[7:7]</bitRange>
</field>
<field>
<name>ien</name>
<description>I2C core interrupt enable bit</description>
<bitRange>[6:6]</bitRange>
</field>
</fields>
</register>
<register>
<name>txr_rxr</name>
<description>Transmit register / Receive register</description>
<addressOffset>0x0c</addressOffset>
<fields>
<field>
<name>data</name>
<bitRange>[7:0]</bitRange>
</field>
</fields>
</register>
<register>
<name>cr_sr</name>
<description>Command register / Status register</description>
<addressOffset>0x10</addressOffset>
</register>
<!-- TODO: remove this hack -->
<register>
<name>cr</name>
<description>Command register</description>
<addressOffset>0x10</addressOffset>
<access>write-only</access>
<fields>
<field>
<name>sta</name>
<description>Generate (repeated) start condition</description>
<bitRange>[7:7]</bitRange>
</field>
<field>
<name>sto</name>
<description>Generate stop condition</description>
<bitRange>[6:6]</bitRange>
</field>
<field>
<name>rd</name>
<description>Read from slave</description>
<bitRange>[5:5]</bitRange>
</field>
<field>
<name>wr</name>
<description>Write to slave</description>
<bitRange>[4:4]</bitRange>
</field>
<field>
<name>ack</name>
<description>When a receiver, sent ACK (0) or NACK (1)</description>
<bitRange>[3:3]</bitRange>
<enumeratedValues>
<enumeratedValue>
<name>ack</name>
<value>0</value>
</enumeratedValue>
<enumeratedValue>
<name>nack</name>
<value>1</value>
</enumeratedValue>
</enumeratedValues>
</field>
<field>
<name>iack</name>
<description>Interrupt acknowledge. When set, clears a pending interrupt</description>
<bitRange>[0:0]</bitRange>
</field>
</fields>
</register>
<register>
<name>sr</name>
<description>Status register</description>
<addressOffset>0x10</addressOffset>
<access>read-only</access>
<alternateRegister>cr</alternateRegister>
<fields>
<field>
<name>rx_ack</name>
<description>Received acknowledge from slave.
This flag represents acknowledge from the addressed slave.
'1' = No acknowledge received
'0' = Acknowledge received
</description>
<bitRange>[7:7]</bitRange>
</field>
<field>
<name>busy</name>
<description>I2C bus busy</description>
<bitRange>[6:6]</bitRange>
</field>
<field>
<name>al</name>
<description>Arbitration lost</description>
<bitRange>[5:5]</bitRange>
</field>
<field>
<name>tip</name>
<description>Transfer in progress</description>
<bitRange>[1:1]</bitRange>
</field>
<field>
<name>if</name>
<description>Interrupt Flag. This bit is set when an interrupt is pending, which
will cause a processor interrupt request if the IEN bit is set.</description>
<bitRange>[0:0]</bitRange>
</field>
</fields>
</register>
</registers>
<interrupt>
<name>I2C0</name>
<value>52</value>
</interrupt>
</peripheral>
<!-- I2C0 -->
<!-- UART1 -->
<peripheral derivedFrom="UART0">
<name>UART1</name>
<baseAddress>0x10023000</baseAddress>
<interrupt>
<name>UART1</name>
<value>4</value>
</interrupt>
</peripheral>
<!-- UART1 -->
<!-- QSPI1 -->
<peripheral derivedFrom="QSPI0">
<name>QSPI1</name>
<baseAddress>0x10024000</baseAddress>
<interrupt>
<name>QSPI1</name>
<value>6</value>
</interrupt>
</peripheral>
<!-- QSPI1 -->
<!-- PWM1 -->
<peripheral derivedFrom="PWM0">
<name>PWM1</name>
<baseAddress>0x10025000</baseAddress>
<interrupt>
<name>PWM1CMP0</name>
<value>44</value>
</interrupt>
<interrupt>
<name>PWM1CMP1</name>
<value>45</value>
</interrupt>
<interrupt>
<name>PWM1CMP2</name>
<value>46</value>
</interrupt>
<interrupt>
<name>PWM1CMP3</name>
<value>47</value>
</interrupt>
</peripheral>
<!-- PWM1 -->
<!-- QSPI2 -->
<peripheral derivedFrom="QSPI0">
<name>QSPI2</name>
<baseAddress>0x10034000</baseAddress>
<interrupt>
<name>QSPI2</name>
<value>7</value>
</interrupt>
</peripheral>
<!-- QSPI2 -->
<!-- PWM2 -->
<peripheral derivedFrom="PWM0">
<name>PWM2</name>
<baseAddress>0x10035000</baseAddress>
<interrupt>
<name>PWM2CMP0</name>
<value>48</value>
</interrupt>
<interrupt>
<name>PWM2CMP1</name>
<value>49</value>
</interrupt>
<interrupt>
<name>PWM2CMP2</name>
<value>50</value>
</interrupt>
<interrupt>
<name>PWM2CMP3</name>
<value>51</value>
</interrupt>
</peripheral>
<!-- PWM2 -->
</peripherals>
</device>