<?xml version="1.0" encoding="UTF-8"?>
<device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd">
  <name>STM32G041</name>
  <version>1.5</version>
  <description>STM32G041</description>
  <cpu>
    <name>CM0</name>
    <revision>r0p1</revision>
    <endian>little</endian>
    <mpuPresent>true</mpuPresent>
    <fpuPresent>false</fpuPresent>
    <nvicPrioBits>2</nvicPrioBits>
    <vendorSystickConfig>false</vendorSystickConfig>
  </cpu>
  <addressUnitBits>8</addressUnitBits>
  <width>32</width>
  <size>0x20</size>
  <resetValue>0x00000000</resetValue>
  <resetMask>0xFFFFFFFF</resetMask>
  <peripherals>
    <peripheral>
      <name>IWDG</name>
      <description>Independent watchdog</description>
      <groupName>IWDG</groupName>
      <baseAddress>0x40003000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>KR</name>
          <displayName>KR</displayName>
          <description>Key register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>Key value (write only, read
              0x0000)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <enumeratedValues>
                <name>KEY</name>
                <enumeratedValue>
                  <name>Unlock</name>
                  <description>Enable access to PR, RLR and WINR registers</description>
                  <value>21845</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Feed</name>
                  <description>Feed watchdog with RLR register value</description>
                  <value>43690</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Start the watchdog</description>
                  <value>52428</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>PR</name>
          <displayName>PR</displayName>
          <description>Prescaler register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PR</name>
              <description>Prescaler divider</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>PR</name>
                <enumeratedValue>
                  <name>DivideBy4</name>
                  <description>Divider /4</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy8</name>
                  <description>Divider /8</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy16</name>
                  <description>Divider /16</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy32</name>
                  <description>Divider /32</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy64</name>
                  <description>Divider /64</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy128</name>
                  <description>Divider /128</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy256</name>
                  <description>Divider /256</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>RLR</name>
          <displayName>RLR</displayName>
          <description>Reload register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000FFF</resetValue>
          <fields>
            <field>
              <name>RL</name>
              <description>Watchdog counter reload
              value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>Status register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WVU</name>
              <description>Watchdog counter window value
              update</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RVU</name>
              <description>Watchdog counter reload value
              update</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PVU</name>
              <description>Watchdog prescaler value
              update</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>WINR</name>
          <displayName>WINR</displayName>
          <description>Window register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000FFF</resetValue>
          <fields>
            <field>
              <name>WIN</name>
              <description>Watchdog counter window
              value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>WWDG</name>
      <description>System window watchdog</description>
      <groupName>WWDG</groupName>
      <baseAddress>0x40002C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>WWDG</name>
        <description>Window watchdog interrupt</description>
        <value>0</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>Control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000007F</resetValue>
          <fields>
            <field>
              <name>WDGA</name>
              <description>Activation bit</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WDGA</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Watchdog disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Watchdog enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>T</name>
              <description>7-bit counter (MSB to LSB)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CFR</name>
          <displayName>CFR</displayName>
          <description>Configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000007F</resetValue>
          <fields>
            <field>
              <name>WDGTB</name>
              <description>Timer base</description>
              <bitOffset>11</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>WDGTB</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Counter clock (PCLK1 div 4096) div 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Counter clock (PCLK1 div 4096) div 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Counter clock (PCLK1 div 4096) div 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Counter clock (PCLK1 div 4096) div 8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Counter clock (PCLK1 div 4096) div 16</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>Counter clock (PCLK1 div 4096) div 32</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>Counter clock (PCLK1 div 4096) div 64</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>Counter clock (PCLK1 div 4096) div 128</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EWI</name>
              <description>Early wakeup interrupt</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EWIW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Enable</name>
                  <description>interrupt occurs whenever the counter reaches the value 0x40</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>W</name>
              <description>7-bit window value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>Status register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EWIF</name>
              <description>Early wakeup interrupt
              flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EWIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Finished</name>
                  <description>The EWI Interrupt Service Routine has been serviced</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pending</name>
                  <description>The EWI Interrupt Service Routine has been triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EWIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Finished</name>
                  <description>The EWI Interrupt Service Routine has been serviced</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>FLASH</name>
      <description>Flash</description>
      <groupName>Flash</groupName>
      <baseAddress>0x40022000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>FLASH</name>
        <description>Flash global interrupt</description>
        <value>3</value>
      </interrupt>
      <registers>
        <register>
          <name>ACR</name>
          <displayName>ACR</displayName>
          <description>Access control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000600</resetValue>
          <fields>
            <field>
              <name>LATENCY</name>
              <description>Latency</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>PRFTEN</name>
              <description>Prefetch enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ICEN</name>
              <description>Instruction cache enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ICRST</name>
              <description>Instruction cache reset</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EMPTY</name>
              <description>Flash User area empty</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_SWEN</name>
              <description>Debug access software
              enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR</name>
          <displayName>KEYR</displayName>
          <description>Flash key register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>KEYR</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>OPTKEYR</name>
          <displayName>OPTKEYR</displayName>
          <description>Option byte key register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>OPTKEY</name>
              <description>Option byte key</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>Status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EOP</name>
              <description>End of operation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>OPERR</name>
              <description>Operation error</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PROGERR</name>
              <description>Programming error</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WRPERR</name>
              <description>Write protected error</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PGAERR</name>
              <description>Programming alignment
              error</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>SIZERR</name>
              <description>Size error</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PGSERR</name>
              <description>Programming sequence error</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>MISSERR</name>
              <description>Fast programming data miss
              error</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>FASTERR</name>
              <description>Fast programming error</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RDERR</name>
              <description>PCROP read error</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>OPTVERR</name>
              <description>Option and Engineering bits loading
              validity error</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BSY</name>
              <description>Busy</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CFGBSY</name>
              <description>Programming or erase configuration
              busy.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>Flash control register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xC0000000</resetValue>
          <fields>
            <field>
              <name>PG</name>
              <description>Programming</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PER</name>
              <description>Page erase</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>MER1</name>
              <description>Mass erase</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PNB</name>
              <description>Page number</description>
              <bitOffset>3</bitOffset>
              <bitWidth>10</bitWidth>
            </field>
            <field>
              <name>BKER</name>
              <description>Bank selection for erase operation</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>MER2</name>
              <description>Mass erase, Bank 2</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>STRT</name>
              <description>Start</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>OPTSTRT</name>
              <description>Options modification start</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>FSTPG</name>
              <description>Fast programming</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EOPIE</name>
              <description>End of operation interrupt
              enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Error interrupt enable</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RDERRIE</name>
              <description>PCROP read error interrupt
              enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>OBL_LAUNCH</name>
              <description>Force the option byte
              loading</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>SEC_PROT</name>
              <description>Securable memory area protection
              enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>SEC_PROT2</name>
              <description>Securable memory area protection enable, Bank 2</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>OPTLOCK</name>
              <description>Options Lock</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>LOCK</name>
              <description>FLASH_CR Lock</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>ECCR</name>
          <displayName>ECCR</displayName>
          <description>Flash ECC register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ADDR_ECC</name>
              <description>ECC fail address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SYSF_ECC</name>
              <description>ECC fail for Corrected ECC Error or
              Double ECC Error in info block</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ECCIE</name>
              <description>ECC correction interrupt
              enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCC</name>
              <description>ECC correction</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCD</name>
              <description>ECC detection</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ECCR2</name>
          <displayName>ECCR2</displayName>
          <description>Flash ECC register 2</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ADDR_ECC</name>
              <description>ECC fail address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SYSF_ECC</name>
              <description>ECC fail for Corrected ECC Error or
              Double ECC Error in info block</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ECCIE</name>
              <description>ECC correction interrupt
              enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCC</name>
              <description>ECC correction</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCD</name>
              <description>ECC detection</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OPTR</name>
          <displayName>OPTR</displayName>
          <description>Flash option register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xF0000000</resetValue>
          <fields>
            <field>
              <name>RDP</name>
              <description>Read protection level</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field>
              <name>BOREN</name>
              <description>BOR reset Level</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BORF_LEV</name>
              <description>These bits contain the VDD supply level
              threshold that activates the reset</description>
              <bitOffset>9</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>BORR_LEV</name>
              <description>These bits contain the VDD supply level
              threshold that releases the reset.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>nRST_STOP</name>
              <description>nRST_STOP</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>nRST_STDBY</name>
              <description>nRST_STDBY</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>nRSTS_HDW</name>
              <description>nRSTS_HDW</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>IWDG_SW</name>
              <description>Independent watchdog
              selection</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>IWDG_STOP</name>
              <description>Independent watchdog counter freeze in
              Stop mode</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>IWDG_STDBY</name>
              <description>Independent watchdog counter freeze in
              Standby mode</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WWDG_SW</name>
              <description>Window watchdog selection</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RAM_PARITY_CHECK</name>
              <description>SRAM parity check control</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>nBOOT_SEL</name>
              <description>nBOOT_SEL</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>nBOOT1</name>
              <description>Boot configuration</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>nBOOT0</name>
              <description>nBOOT0 option bit</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>NRST_MODE</name>
              <description>NRST_MODE</description>
              <bitOffset>27</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>IRHEN</name>
              <description>Internal reset holder enable
              bit</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PCROP1ASR</name>
          <displayName>PCROP1ASR</displayName>
          <description>Flash PCROP zone A Start address
          register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0xF0000000</resetValue>
          <fields>
            <field>
              <name>PCROP1A_STRT</name>
              <description>PCROP1A area start offset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PCROP1AER</name>
          <displayName>PCROP1AER</displayName>
          <description>Flash PCROP zone A End address
          register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0xF0000000</resetValue>
          <fields>
            <field>
              <name>PCROP1A_END</name>
              <description>PCROP1A area end offset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field>
              <name>PCROP_RDP</name>
              <description>PCROP area preserved when RDP level
              decreased</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>WRP1AR</name>
          <displayName>WRP1AR</displayName>
          <description>Flash WRP area A address
          register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x000000FF</resetValue>
          <fields>
            <field>
              <name>WRP1A_STRT</name>
              <description>WRP area A start offset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
            </field>
            <field>
              <name>WRP1A_END</name>
              <description>WRP area A end offset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>6</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>WRP1BR</name>
          <displayName>WRP1BR</displayName>
          <description>Flash WRP area B address
          register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x000000FF</resetValue>
          <fields>
            <field>
              <name>WRP1B_STRT</name>
              <description>WRP area B start offset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
            </field>
            <field>
              <name>WRP1B_END</name>
              <description>WRP area B end offset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>6</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PCROP1BSR</name>
          <displayName>PCROP1BSR</displayName>
          <description>Flash PCROP zone B Start address
          register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0xF0000000</resetValue>
          <fields>
            <field>
              <name>PCROP1B_STRT</name>
              <description>PCROP1B area start offset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PCROP1BER</name>
          <displayName>PCROP1BER</displayName>
          <description>Flash PCROP zone B End address
          register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0xF0000000</resetValue>
          <fields>
            <field>
              <name>PCROP1B_END</name>
              <description>PCROP1B area end offset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SECR</name>
          <displayName>SECR</displayName>
          <description>Flash Security register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0xF0000000</resetValue>
          <fields>
            <field>
              <name>SEC_SIZE</name>
              <description>Securable memory area size</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
            </field>
            <field>
              <name>BOOT_LOCK</name>
              <description>used to force boot from user
              area</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>RCC</name>
      <description>Reset and clock control</description>
      <groupName>RCC</groupName>
      <baseAddress>0x40021000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>RCC</name>
        <description>RCC global interrupt</description>
        <value>4</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>Clock control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000063</resetValue>
          <fields>
            <field>
              <name>HSION</name>
              <description>HSI16 clock enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HSION</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>HSI oscillator powered off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>HSI oscillator enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSIKERON</name>
              <description>HSI16 always enable for peripheral
              kernels</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HSIKERON</name>
                <enumeratedValue>
                  <name>NotForce</name>
                  <description>No effect on HSI16 oscillator</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Forced</name>
                  <description>HSI16 oscillator forced on even in Stop modes</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSIRDY</name>
              <description>HSI16 clock ready flag</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HSIRDY</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>HSI oscillator not ready</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>HSI oscillator ready</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSIDIV</name>
              <description>HSI16 clock division
              factor</description>
              <bitOffset>11</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>HSIDIV</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Divide HSI16 by 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Divide HSI16 by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Divide HSI16 by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Divide HSI16 by 8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Divide HSI16 by 16</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>Divide HSI16 by 32</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>Divide HSI16 by 64</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>Divide HSI16 by 128</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSEON</name>
              <description>HSE clock enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HSEON</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>HSE oscillator powered off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>HSE oscillator enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSERDY</name>
              <description>HSE clock ready flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HSERDY</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>HSE oscillator not ready</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>HSE oscillator ready</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSEBYP</name>
              <description>HSE crystal oscillator
              bypass</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HSEBYP</name>
                <enumeratedValue>
                  <name>Crystal</name>
                  <description>HSE is a crystal oscillator or ceramic resonator</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ExtClock</name>
                  <description>HSE is driven by an external clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CSSON</name>
              <description>Clock security system
              enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CSSON</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>HSE clock is not monitored</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>HSE clock monitor enabled when HSE is ready, otherwise disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLLON</name>
              <description>PLL enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PLLON</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>PLL powered off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>PLL enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLLRDY</name>
              <description>PLL clock ready flag</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PLLRDY</name>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>PLL unlocked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>PLL locked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICSCR</name>
          <displayName>ICSCR</displayName>
          <description>Internal clock sources calibration
          register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x10000000</resetValue>
          <fields>
            <field>
              <name>HSICAL</name>
              <description>HSI16 clock calibration</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HSITRIM</name>
              <description>HSI16 clock trimming</description>
              <bitOffset>8</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>Clock configuration register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MCOPRE</name>
              <description>Microcontroller clock output
              prescaler</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>MCOPRE</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Divide by 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Divide by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div3</name>
                  <description>Divide by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Divide by 8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Divide by 16</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>Divide by 32</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>Divide by 64</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>Divide by 128</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MCOSEL</name>
              <description>Microcontroller clock
              output</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MCOSEL</name>
                <enumeratedValue>
                  <name>NoClock</name>
                  <description>No clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>SYSCLK clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 oscillator clock selected</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE oscillator clock selected</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLLR</name>
                  <description>PLLRCLK clock selected</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI oscillator clock selected</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE oscillator clock selected</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PPRE</name>
              <description>APB prescaler</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PPRE</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Divide by 2</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Divide by 4</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Divide by 8</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Divide by 16</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Divide by 1</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HPRE</name>
              <description>AHB prescaler</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HPRE</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Divide by 2</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Divide by 4</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Divide by 8</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Divide by 16</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>Divide by 64</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>Divide by 128</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>Divide by 256</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div512</name>
                  <description>Divide by 512</description>
                  <value>15</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Divide by 1</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWS</name>
              <description>System clock switch status</description>
              <bitOffset>3</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>SWS</name>
                <enumeratedValue>
                  <name>HSISYS</name>
                  <description>HSISYS clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLLR</name>
                  <description>PLLRCLK clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI clock selected</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE clock selected</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SW</name>
              <description>System clock switch</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SW</name>
                <enumeratedValue>
                  <name>HSISYS</name>
                  <description>HSISYS clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLLR</name>
                  <description>PLLRCLK clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI clock selected</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE clock selected</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>PLLCFGR</name>
          <displayName>PLLSYSCFGR</displayName>
          <description>PLL configuration register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00001000</resetValue>
          <fields>
            <field>
              <name>PLLSRC</name>
              <description>PLL input clock source</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>PLLSRC</name>
                <enumeratedValue>
                  <name>NoClock</name>
                  <description>No clock selected (saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE clock selected</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLLM</name>
              <description>Division factor M of the PLL input clock
              divider</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PLLN</name>
              <description>PLL frequency multiplication factor
              N</description>
              <bitOffset>8</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>8</minimum>
                  <maximum>86</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PLLPEN</name>
              <description>PLLPCLK clock output
              enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PLLPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>PLL output disabled (saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>PLL output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLLP</name>
              <description>PLL VCO division factor P for PLLPCLK
              clock output</description>
              <bitOffset>17</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PLLQEN</name>
              <description>PLLQCLK clock output
              enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="PLLPEN"/>
            </field>
            <field>
              <name>PLLQ</name>
              <description>PLL VCO division factor Q for PLLQCLK
              clock output</description>
              <bitOffset>25</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PLLREN</name>
              <description>PLLRCLK clock output
              enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="PLLPEN"/>
            </field>
            <field>
              <name>PLLR</name>
              <description>PLL VCO division factor R for PLLRCLK
              clock output</description>
              <bitOffset>29</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CIER</name>
          <displayName>CIER</displayName>
          <description>Clock interrupt enable
          register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LSIRDYIE</name>
              <description>LSI ready interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSIRDYIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDYIE</name>
              <description>LSE ready interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>HSIRDYIE</name>
              <description>HSI ready interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>HSERDYIE</name>
              <description>HSE ready interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>PLLSYSRDYIE</name>
              <description>PLL ready interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CIFR</name>
          <displayName>CIFR</displayName>
          <description>Clock interrupt flag register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LSIRDYF</name>
              <description>LSI ready interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSIRDYF</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDYF</name>
              <description>LSE ready interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYF"/>
            </field>
            <field>
              <name>HSIRDYF</name>
              <description>HSI ready interrupt flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYF"/>
            </field>
            <field>
              <name>HSERDYF</name>
              <description>HSE ready interrupt flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYF"/>
            </field>
            <field>
              <name>PLLSYSRDYF</name>
              <description>PLL ready interrupt flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYF"/>
            </field>
            <field>
              <name>CSSF</name>
              <description>Clock security system interrupt
              flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYF"/>
            </field>
            <field>
              <name>LSECSSF</name>
              <description>LSE Clock security system interrupt
              flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYF"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CICR</name>
          <displayName>CICR</displayName>
          <description>Clock interrupt clear register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LSIRDYC</name>
              <description>LSI ready interrupt clear</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSIRDYC</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear interrupt flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDYC</name>
              <description>LSE ready interrupt clear</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>HSIRDYC</name>
              <description>HSI ready interrupt clear</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>HSERDYC</name>
              <description>HSE ready interrupt clear</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>PLLSYSRDYC</name>
              <description>PLL ready interrupt clear</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>CSSC</name>
              <description>Clock security system interrupt
              clear</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>LSECSSC</name>
              <description>LSE Clock security system interrupt
              clear</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHBRSTR</name>
          <displayName>AHBRSTR</displayName>
          <description>AHB peripheral reset register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMARST</name>
              <description>DMA1 reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMARST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset peripheral</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FLASHRST</name>
              <description>FLITF reset</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMARST"/>
            </field>
            <field>
              <name>CRCRST</name>
              <description>CRC reset</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMARST"/>
            </field>
            <field>
              <name>AESRST</name>
              <description>AES hardware accelerator
              reset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMARST"/>
            </field>
            <field>
              <name>RNGRST</name>
              <description>Random number generator
              reset</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMARST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>IOPRSTR</name>
          <displayName>IOPRSTR</displayName>
          <description>GPIO reset register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IOPARST</name>
              <description>I/O port A reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IOPARST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset peripheral</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IOPBRST</name>
              <description>I/O port B reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
            <field>
              <name>IOPCRST</name>
              <description>I/O port C reset</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
            <field>
              <name>IOPDRST</name>
              <description>I/O port D reset</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
            <field>
              <name>IOPFRST</name>
              <description>I/O port F reset</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APBRSTR1</name>
          <displayName>APBRSTR1</displayName>
          <description>APB peripheral reset register
          1</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM2RST</name>
              <description>TIM2 timer reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM2RST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset peripheral</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM3RST</name>
              <description>TIM3 timer reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>SPI2RST</name>
              <description>SPI2 reset</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>USART2RST</name>
              <description>USART2 reset</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>LPUART1RST</name>
              <description>LPUART1 reset</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>I2C1RST</name>
              <description>I2C1 reset</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>I2C2RST</name>
              <description>I2C2 reset</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>DBGRST</name>
              <description>Debug support reset</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>PWRRST</name>
              <description>Power interface reset</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>LPTIM2RST</name>
              <description>Low Power Timer 2 reset</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>LPTIM1RST</name>
              <description>Low Power Timer 1 reset</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APBRSTR2</name>
          <displayName>APBRSTR2</displayName>
          <description>APB peripheral reset register
          2</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SYSCFGRST</name>
              <description>SYSCFG, COMP and VREFBUF
              reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SYSCFGRST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset peripheral</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM1RST</name>
              <description>TIM1 timer reset</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>SPI1RST</name>
              <description>SPI1 reset</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>USART1RST</name>
              <description>USART1 reset</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>TIM14RST</name>
              <description>TIM14 timer reset</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>TIM16RST</name>
              <description>TIM16 timer reset</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>TIM17RST</name>
              <description>TIM17 timer reset</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>ADCRST</name>
              <description>ADC reset</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>IOPENR</name>
          <displayName>IOPENR</displayName>
          <description>GPIO clock enable register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IOPAEN</name>
              <description>I/O port A clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IOPAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled (typically saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IOPBEN</name>
              <description>I/O port B clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPAEN"/>
            </field>
            <field>
              <name>IOPCEN</name>
              <description>I/O port C clock enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPAEN"/>
            </field>
            <field>
              <name>IOPDEN</name>
              <description>I/O port D clock enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPAEN"/>
            </field>
            <field>
              <name>IOPFEN</name>
              <description>I/O port F clock enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPAEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHBENR</name>
          <displayName>AHBENR</displayName>
          <description>AHB peripheral clock enable
          register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAEN</name>
              <description>DMA clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled (typically saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FLASHEN</name>
              <description>Flash memory interface clock
              enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMAEN"/>
            </field>
            <field>
              <name>CRCEN</name>
              <description>CRC clock enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMAEN"/>
            </field>
            <field>
              <name>AESEN</name>
              <description>AES hardware accelerator</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMAEN"/>
            </field>
            <field>
              <name>RNGEN</name>
              <description>Random number generator clock
              enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMAEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APBENR1</name>
          <displayName>APBENR1</displayName>
          <description>APB peripheral clock enable register
          1</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM2EN</name>
              <description>TIM2 timer clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM2EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled (typically saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM3EN</name>
              <description>TIM3 timer clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>RTCAPBEN</name>
              <description>RTC APB clock enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>WWDGEN</name>
              <description>WWDG clock enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>SPI2EN</name>
              <description>SPI2 clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>USART2EN</name>
              <description>USART2 clock enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>LPUART1EN</name>
              <description>LPUART1 clock enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>I2C1EN</name>
              <description>I2C1 clock enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>I2C2EN</name>
              <description>I2C2 clock enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>DBGEN</name>
              <description>Debug support clock enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>PWREN</name>
              <description>Power interface clock
              enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>LPTIM2EN</name>
              <description>LPTIM2 clock enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>LPTIM1EN</name>
              <description>LPTIM1 clock enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APBENR2</name>
          <displayName>APBENR2</displayName>
          <description>APB peripheral clock enable register
          2</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SYSCFGEN</name>
              <description>SYSCFG, COMP and VREFBUF clock
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SYSCFGEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled (typically saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM1EN</name>
              <description>TIM1 timer clock enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>SPI1EN</name>
              <description>SPI1 clock enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>USART1EN</name>
              <description>USART1 clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>TIM14EN</name>
              <description>TIM14 timer clock enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>TIM16EN</name>
              <description>TIM16 timer clock enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>TIM17EN</name>
              <description>TIM16 timer clock enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>ADCEN</name>
              <description>ADC clock enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>IOPSMENR</name>
          <displayName>IOPSMENR</displayName>
          <description>GPIO in Sleep mode clock enable
          register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IOPASMEN</name>
              <description>I/O port A clock enable during Sleep
              mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IOPASMEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled (typically saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IOPBSMEN</name>
              <description>I/O port B clock enable during Sleep
              mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPASMEN"/>
            </field>
            <field>
              <name>IOPCSMEN</name>
              <description>I/O port C clock enable during Sleep
              mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPASMEN"/>
            </field>
            <field>
              <name>IOPDSMEN</name>
              <description>I/O port D clock enable during Sleep
              mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPASMEN"/>
            </field>
            <field>
              <name>IOPFSMEN</name>
              <description>I/O port F clock enable during Sleep
              mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPASMEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHBSMENR</name>
          <displayName>AHBSMENR</displayName>
          <description>AHB peripheral clock enable in Sleep mode
          register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMASMEN</name>
              <description>DMA clock enable during Sleep
              mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMASMEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled (typically saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FLASHSMEN</name>
              <description>Flash memory interface clock enable
              during Sleep mode</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMASMEN"/>
            </field>
            <field>
              <name>SRAMSMEN</name>
              <description>SRAM clock enable during Sleep
              mode</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMASMEN"/>
            </field>
            <field>
              <name>CRCSMEN</name>
              <description>CRC clock enable during Sleep
              mode</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMASMEN"/>
            </field>
            <field>
              <name>AESSMEN</name>
              <description>AES hardware accelerator clock enable
              during Sleep mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMASMEN"/>
            </field>
            <field>
              <name>RNGSMEN</name>
              <description>Random number generator clock enable
              during Sleep mode</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMASMEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APBSMENR1</name>
          <displayName>APBSMENR1</displayName>
          <description>APB peripheral clock enable in Sleep mode
          register 1</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM2SMEN</name>
              <description>TIM2 timer clock enable during Sleep
              mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM2SMEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled (typically saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM3SMEN</name>
              <description>TIM3 timer clock enable during Sleep
              mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>RTCAPBSMEN</name>
              <description>RTC APB clock enable during Sleep
              mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>WWDGSMEN</name>
              <description>WWDG clock enable during Sleep
              mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>SPI2SMEN</name>
              <description>SPI2 clock enable during Sleep
              mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>USART2SMEN</name>
              <description>USART2 clock enable during Sleep
              mode</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>LPUART1SMEN</name>
              <description>LPUART1 clock enable during Sleep
              mode</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>I2C1SMEN</name>
              <description>I2C1 clock enable during Sleep
              mode</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>I2C2SMEN</name>
              <description>I2C2 clock enable during Sleep
              mode</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>DBGSMEN</name>
              <description>Debug support clock enable during Sleep
              mode</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>PWRSMEN</name>
              <description>Power interface clock enable during
              Sleep mode</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>LPTIM2SMEN</name>
              <description>Low Power Timer 2 clock enable during
              Sleep mode</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
            <field>
              <name>LPTIM1SMEN</name>
              <description>Low Power Timer 1 clock enable during
              Sleep mode</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2SMEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APBSMENR2</name>
          <displayName>APBSMENR2</displayName>
          <description>APB peripheral clock enable in Sleep mode
          register 2</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SYSCFGSMEN</name>
              <description>SYSCFG, COMP and VREFBUF clock enable
              during Sleep mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SYSCFGSMEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled (typically saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM1SMEN</name>
              <description>TIM1 timer clock enable during Sleep
              mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGSMEN"/>
            </field>
            <field>
              <name>SPI1SMEN</name>
              <description>SPI1 clock enable during Sleep
              mode</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGSMEN"/>
            </field>
            <field>
              <name>USART1SMEN</name>
              <description>USART1 clock enable during Sleep
              mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGSMEN"/>
            </field>
            <field>
              <name>TIM14SMEN</name>
              <description>TIM14 timer clock enable during Sleep
              mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGSMEN"/>
            </field>
            <field>
              <name>TIM16SMEN</name>
              <description>TIM16 timer clock enable during Sleep
              mode</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGSMEN"/>
            </field>
            <field>
              <name>TIM17SMEN</name>
              <description>TIM16 timer clock enable during Sleep
              mode</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGSMEN"/>
            </field>
            <field>
              <name>ADCSMEN</name>
              <description>ADC clock enable during Sleep
              mode</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGSMEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CCIPR</name>
          <displayName>CCIPR</displayName>
          <description>Peripherals independent clock configuration
          register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>USART1SEL</name>
              <description>USART1 clock source
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>USART1SEL</name>
                <enumeratedValue>
                  <name>PCLK</name>
                  <description>PCLK clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>SYSCLK clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE clock selected</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPUART1SEL</name>
              <description>LPUART1 clock source
              selection</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>LPUART1SEL</name>
                <enumeratedValue>
                  <name>PCLK</name>
                  <description>PCLK clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>SYSCLK clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE clock selected</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C1SEL</name>
              <description>I2C1 clock source
              selection</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>I2C1SEL</name>
                <enumeratedValue>
                  <name>PCLK</name>
                  <description>PCLK clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>SYSCLK clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 clock selected</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2S1SEL</name>
              <description>I2S1 clock source
              selection</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>I2S1SEL</name>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>SYSCLK clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLLP</name>
                  <description>PLLPCLK clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CKIN</name>
                  <description>I2S_CKIN clock selected</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPTIM1SEL</name>
              <description>LPTIM1 clock source
              selection</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>LPTIM1SEL</name>
                <enumeratedValue>
                  <name>PCLK</name>
                  <description>PCLK clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE clock selected</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPTIM2SEL</name>
              <description>LPTIM2 clock source
              selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues derivedFrom="LPTIM1SEL"/>
            </field>
            <field>
              <name>TIM1SEL</name>
              <description>TIM1 clock source
              selection</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM1SEL</name>
                <enumeratedValue>
                  <name>TIMP</name>
                  <description>TIMPCLK clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLLQ</name>
                  <description>PLLQCLK clock selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RNGSEL</name>
              <description>RNG clock source selection</description>
              <bitOffset>26</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>RNGSEL</name>
                <enumeratedValue>
                  <name>NoClock</name>
                  <description>No clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>SYSCLK clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLLQ</name>
                  <description>PLLQCLK clock selected</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RNGDIV</name>
              <description>Division factor of RNG clock
              divider</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>RNGDIV</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Divide by 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Divide by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Divide by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Divide by 8</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADCSEL</name>
              <description>ADCs clock source
              selection</description>
              <bitOffset>30</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ADCSEL</name>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>System clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLLP</name>
                  <description>PLLPCLK clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI16</name>
                  <description>HSI16 clock selected</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>BDCR</name>
          <displayName>BDCR</displayName>
          <description>RTC domain control register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LSEON</name>
              <description>LSE oscillator enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSEON</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>LSE oscillator powered off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>LSE oscillator enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDY</name>
              <description>LSE oscillator ready</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSERDY</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>LSE oscillator not ready</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>LSE oscillator ready</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSEBYP</name>
              <description>LSE oscillator bypass</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSEBYP</name>
                <enumeratedValue>
                  <name>Crystal</name>
                  <description>LSE is a crystal oscillator or ceramic resonator</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ExtClock</name>
                  <description>LSE is driven by an external clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSEDRV</name>
              <description>LSE oscillator drive
              capability</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>LSEDRV</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Xtal mode lower driving capability</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MedLow</name>
                  <description>Xtal mode medium-low driving capability</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MedHigh</name>
                  <description>Xtal mode medium-high driving capability</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Xtal mode higher driving capability</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSECSSON</name>
              <description>CSS on LSE enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSECSSON</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>LSE clock is not monitored</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>LSE clock monitor enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSECSSD</name>
              <description>CSS on LSE failure
              Detection</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSECSSD</name>
                <enumeratedValue>
                  <name>NoFailure</name>
                  <description>No failure detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Failure</name>
                  <description>Failure detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTCSEL</name>
              <description>RTC clock source selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>RTCSEL</name>
                <enumeratedValue>
                  <name>NoClock</name>
                  <description>No clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE clock selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE32</name>
                  <description>HSI clock divided by 32 selected</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTCEN</name>
              <description>RTC clock enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTC disabled (saves power)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTC enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BDRST</name>
              <description>RTC domain software reset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BDRST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>RTC domain software reset</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSCOEN</name>
              <description>Low-speed clock output (LSCO)
              enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSCOEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Low-speed clock output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Low-speed clock output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSCOSEL</name>
              <description>Low-speed clock output
              selection</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSCOSEL</name>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI clock selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE clock selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>Control/status register</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LSION</name>
              <description>LSI oscillator enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSION</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>LSI oscillator powered off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>LSI oscillator enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSIRDY</name>
              <description>LSI oscillator ready</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSIRDY</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>LSI oscillator not ready</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>LSI oscillator ready</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RMVF</name>
              <description>Remove reset flags</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RMVF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear reset flags</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OBLRSTF</name>
              <description>Option byte loader reset
              flag</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OBLRSTF</name>
                <enumeratedValue>
                  <name>NoReset</name>
                  <description>This reset type has not occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>This reset type has occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PINRSTF</name>
              <description>Pin reset flag</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="OBLRSTF"/>
            </field>
            <field>
              <name>PWRRSTF</name>
              <description>BOR or POR/PDR flag</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="OBLRSTF"/>
            </field>
            <field>
              <name>SFTRSTF</name>
              <description>Software reset flag</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="OBLRSTF"/>
            </field>
            <field>
              <name>IWDGRSTF</name>
              <description>Independent window watchdog reset
              flag</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="OBLRSTF"/>
            </field>
            <field>
              <name>WWDGRSTF</name>
              <description>Window watchdog reset flag</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="OBLRSTF"/>
            </field>
            <field>
              <name>LPWRRSTF</name>
              <description>Low-power reset flag</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="OBLRSTF"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>PWR</name>
      <description>Power control</description>
      <groupName>PWR</groupName>
      <baseAddress>0x40007000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>PVD</name>
        <description>Power voltage detector interrupt</description>
        <value>1</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>Power control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000208</resetValue>
          <fields>
            <field>
              <name>LPR</name>
              <description>Low-power run</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>VOS</name>
              <description>Voltage scaling range
              selection</description>
              <bitOffset>9</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>DBP</name>
              <description>Disable backup domain write
              protection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>FPD_LPSLP</name>
              <description>Flash memory powered down during
              Low-power sleep mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>FPD_LPRUN</name>
              <description>Flash memory powered down during
              Low-power run mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>FPD_STOP</name>
              <description>Flash memory powered down during Stop
              mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>LPMS</name>
              <description>Low-power mode selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>Power control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PVDE</name>
              <description>Power voltage detector
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PVDFT</name>
              <description>Power voltage detector falling threshold selection</description>
              <bitOffset>1</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>PVDRT</name>
              <description>Power voltage detector rising threshold selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>PVMENDAC</name>
              <description>PVMENDAC</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PVMENUSB</name>
              <description>PVMENUSB</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>IOSV</name>
              <description>IOSV</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>USV</name>
              <description>USV</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR3</name>
          <displayName>CR3</displayName>
          <description>Power control register 3</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00008000</resetValue>
          <fields>
            <field>
              <name>EWUP1</name>
              <description>Enable Wakeup pin WKUP1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EWUP2</name>
              <description>Enable Wakeup pin WKUP2</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EWUP3</name>
              <description>Enable Wakeup pin WKUP3</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EWUP4</name>
              <description>Enable Wakeup pin WKUP4</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EWUP5</name>
              <description>Enable WKUP5 wakeup pin</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EWUP6</name>
              <description>Enable WKUP6 wakeup pin</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RRS</name>
              <description>SRAM retention in Standby
              mode</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ENB_ULP</name>
              <description>Ultra-low-power enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>APC</name>
              <description>Apply pull-up and pull-down
              configuration</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EIWUL</name>
              <description>Enable internal wakeup
              line</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR4</name>
          <displayName>CR4</displayName>
          <description>Power control register 4</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WP1</name>
              <description>Wakeup pin WKUP1 polarity</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WP2</name>
              <description>Wakeup pin WKUP2 polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WP3</name>
              <description>Wakeup pin WKUP3 polarity</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WP4</name>
              <description>Wakeup pin WKUP4 polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WP5</name>
              <description>Wakeup pin WKUP5 polarity</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WP6</name>
              <description>WKUP6 wakeup pin polarity</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>VBE</name>
              <description>VBAT battery charging
              enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>VBRS</name>
              <description>VBAT battery charging resistor
              selection</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SR1</name>
          <displayName>SR1</displayName>
          <description>Power status register 1</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WUF1</name>
              <description>Wakeup flag 1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUF2</name>
              <description>Wakeup flag 2</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUF3</name>
              <description>Wakeup flag 3</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUF4</name>
              <description>Wakeup flag 4</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUF5</name>
              <description>Wakeup flag 5</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUF6</name>
              <description>Wakeup flag 6</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>SBF</name>
              <description>Standby flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUFI</name>
              <description>Wakeup flag internal</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SR2</name>
          <displayName>SR2</displayName>
          <description>Power status register 2</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PVMODAC</name>
              <description>VDDA monitoring output flag</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PVMOUSB</name>
              <description>USB supply voltage monitoring output flag</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PVDO</name>
              <description>Power voltage detector
              output</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>VOSF</name>
              <description>Voltage scaling flag</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>REGLPF</name>
              <description>Low-power regulator flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>REGLPS</name>
              <description>Low-power regulator
              started</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>FLASH_RDY</name>
              <description>Flash ready flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SCR</name>
          <displayName>SCR</displayName>
          <description>Power status clear register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CSBF</name>
              <description>Clear standby flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CWUF6</name>
              <description>Clear wakeup flag 6</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CWUF5</name>
              <description>Clear wakeup flag 5</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CWUF4</name>
              <description>Clear wakeup flag 4</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CWUF3</name>
              <description>Clear wakeup flag 3</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CWUF2</name>
              <description>Clear wakeup flag 2</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CWUF1</name>
              <description>Clear wakeup flag 1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PUCRA</name>
          <displayName>PUCRA</displayName>
          <description>Power Port A pull-up control
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PU15</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU14</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU13</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU12</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU11</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU10</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU9</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU8</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU7</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU6</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU5</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU4</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU3</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU2</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU1</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU0</name>
              <description>Port A pull-up bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRA</name>
          <displayName>PDCRA</displayName>
          <description>Power Port A pull-down control
          register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PD15</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD14</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD13</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD12</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD11</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD10</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD9</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD8</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD7</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD6</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD5</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD4</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD3</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD2</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD1</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD0</name>
              <description>Port A pull-down bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PUCRB</name>
          <displayName>PUCRB</displayName>
          <description>Power Port B pull-up control
          register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PU15</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU14</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU13</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU12</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU11</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU10</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU9</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU8</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU7</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU6</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU5</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU4</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU3</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU2</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU1</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU0</name>
              <description>Port B pull-up bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRB</name>
          <displayName>PDCRB</displayName>
          <description>Power Port B pull-down control
          register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PD15</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD14</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD13</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD12</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD11</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD10</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD9</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD8</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD7</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD6</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD5</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD4</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD3</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD2</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD1</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD0</name>
              <description>Port B pull-down bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PUCRC</name>
          <displayName>PUCRC</displayName>
          <description>Power Port C pull-up control
          register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PU15</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU14</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU13</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU12</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU11</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU10</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU9</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU8</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU7</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU6</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU5</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU4</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU3</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU2</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU1</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU0</name>
              <description>Port C pull-up bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRC</name>
          <displayName>PDCRC</displayName>
          <description>Power Port C pull-down control
          register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PD15</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD14</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD13</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD12</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD11</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD10</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD9</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD8</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD7</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD6</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD5</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD4</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD3</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD2</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD1</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD0</name>
              <description>Port C pull-down bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PUCRD</name>
          <displayName>PUCRD</displayName>
          <description>Power Port D pull-up control
          register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PU15</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU14</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU13</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU12</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU11</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU10</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU9</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU8</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU7</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU6</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU5</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU4</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU3</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU2</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU1</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU0</name>
              <description>Port D pull-up bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRD</name>
          <displayName>PDCRD</displayName>
          <description>Power Port D pull-down control
          register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PD15</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD14</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD13</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD12</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD11</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD10</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD9</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD8</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD7</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD6</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD5</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD4</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD3</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD2</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD1</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD0</name>
              <description>Port D pull-down bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PUCRE</name>
          <displayName>PUCRE</displayName>
          <description>Power Port E pull-UP control
          register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PU15</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU14</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU13</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU12</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU11</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU10</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU9</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU8</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU7</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU6</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU5</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU4</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU3</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU2</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU1</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU0</name>
              <description>Port E pull-up bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRE</name>
          <displayName>PDCRE</displayName>
          <description>Power Port E pull-down control
          register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PD15</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD14</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD13</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD12</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD11</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD10</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD9</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD8</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD7</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD6</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD5</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD4</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD3</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD2</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD1</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD0</name>
              <description>Port E pull-down bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PUCRF</name>
          <displayName>PUCRF</displayName>
          <description>Power Port F pull-up control
          register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PU13</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU12</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU11</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU10</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU9</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU8</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU7</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU6</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU5</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU4</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU3</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU2</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU1</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PU0</name>
              <description>Port F pull-up bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRF</name>
          <displayName>PDCRF</displayName>
          <description>Power Port F pull-down control
          register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PD13</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD12</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD11</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD10</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD9</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD8</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD7</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD6</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD5</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD4</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD3</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD2</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD1</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PD0</name>
              <description>Port F pull-down bit y
              (y=0..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DMA1</name>
      <description>DMA controller</description>
      <groupName>DMA</groupName>
      <baseAddress>0x40020000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>DMA1_Channel1</name>
        <description>DMA channel 1 interrupt</description>
        <value>9</value>
      </interrupt>
      <interrupt>
        <name>DMA1_Channel2_3</name>
        <description>DMA channel 2 and 3 interrupts</description>
        <value>10</value>
      </interrupt>
      <interrupt>
        <name>DMA1_Channel4_5_DMAMUX</name>
        <description>interrupts for DMA1 channels 4-5 and DMAMUX</description>
        <value>11</value>
      </interrupt>
      <registers>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>DMA interrupt status register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>5</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-5</dimIndex>
              <name>GIF%s</name>
              <description>Channel %s Global interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>GIF1</name>
                <enumeratedValue>
                  <name>NoEvent</name>
                  <description>No transfer error, half event, complete event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Event</name>
                  <description>A transfer error, half event or complete event has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>5</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-5</dimIndex>
              <name>TCIF%s</name>
              <description>Channel %s Transfer Complete flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TCIF1</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>No transfer complete event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>A transfer complete event has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>5</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-5</dimIndex>
              <name>HTIF%s</name>
              <description>Channel %s Half Transfer Complete flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>HTIF1</name>
                <enumeratedValue>
                  <name>NotHalf</name>
                  <description>No half transfer event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Half</name>
                  <description>A half transfer event has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>5</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-5</dimIndex>
              <name>TEIF%s</name>
              <description>Channel %s Transfer Error flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TEIF1</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No transfer error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>A transfer error has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IFCR</name>
          <displayName>IFCR</displayName>
          <description>DMA interrupt flag clear register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>5</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-5</dimIndex>
              <name>CGIF%s</name>
              <description>Channel %s Global interrupt clear</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>CGIF1</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the GIF, TEIF, HTIF, TCIF flags in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>5</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-5</dimIndex>
              <name>CTCIF%s</name>
              <description>Channel %s Transfer Complete clear</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>CTCIF1</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TCIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>5</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-5</dimIndex>
              <name>CHTIF%s</name>
              <description>Channel %s Half Transfer clear</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>CHTIF1</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the HTIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>5</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-5</dimIndex>
              <name>CTEIF%s</name>
              <description>Channel %s Transfer Error clear</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>CTEIF1</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TEIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>5</dim>
          <dimIncrement>0x14</dimIncrement>
          <dimIndex>1-5</dimIndex>
          <name>CH%s</name>
          <description>Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers</description>
          <addressOffset>0x8</addressOffset>
          <register>
            <name>CR</name>
            <displayName>CCR1</displayName>
            <description>DMA channel 1 configuration register</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>EN</name>
                <description>channel enable
When a channel transfer error occurs, this bit is cleared by hardware. It can not be set again by software (channel x re-activated) until the TEIFx bit of the DMA_ISR register is cleared (by setting the CTEIFx bit of the DMA_IFCR register).
Note: this bit is set and cleared by software.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>EN</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Channel disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Channel enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>TCIE</name>
                <description>transfer complete interrupt enable
Note: this bit is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is not read-only when the channel is enabled (EN=1).</description>
                <bitOffset>1</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>TCIE</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Transfer Complete interrupt disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Transfer Complete interrupt enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>HTIE</name>
                <description>half transfer interrupt enable
Note: this bit is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is not read-only when the channel is enabled (EN=1).</description>
                <bitOffset>2</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>HTIE</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Half Transfer interrupt disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Half Transfer interrupt enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>TEIE</name>
                <description>transfer error interrupt enable
Note: this bit is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is not read-only when the channel is enabled (EN=1).</description>
                <bitOffset>3</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>TEIE</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Transfer Error interrupt disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Transfer Error interrupt enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>DIR</name>
                <description>data transfer direction
This bit must be set only in memory-to-peripheral and peripheral-to-memory modes.
Source attributes are defined by PSIZE and PINC, plus the DMA_CPARx register. This is still valid in a memory-to-memory mode.
Destination attributes are defined by MSIZE and MINC, plus the DMA_CMARx register. This is still valid in a peripheral-to-peripheral mode.
Destination attributes are defined by PSIZE and PINC, plus the DMA_CPARx register. This is still valid in a memory-to-memory mode.
Source attributes are defined by MSIZE and MINC, plus the DMA_CMARx register. This is still valid in a peripheral-to-peripheral mode.
Note: this bit is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is read-only when the channel is enabled (EN=1).</description>
                <bitOffset>4</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>DIR</name>
                  <enumeratedValue>
                    <name>FromPeripheral</name>
                    <description>Read from peripheral</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>FromMemory</name>
                    <description>Read from memory</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>CIRC</name>
                <description>circular mode
Note: this bit is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is not read-only when the channel is enabled (EN=1).</description>
                <bitOffset>5</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>CIRC</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Circular buffer disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Circular buffer enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>PINC</name>
                <description>peripheral increment mode
Defines the increment mode for each DMA transfer to the identified peripheral.
n memory-to-memory mode, this field identifies the memory destination if DIR=1 and the memory source if DIR=0.
In peripheral-to-peripheral mode, this field identifies the peripheral destination if DIR=1 and the peripheral source if DIR=0.
Note: this bit is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is read-only when the channel is enabled (EN=1).</description>
                <bitOffset>6</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>PINC</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Increment mode disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Increment mode enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>MINC</name>
                <description>memory increment mode
Defines the increment mode for each DMA transfer to the identified memory.
In memory-to-memory mode, this field identifies the memory source if DIR=1 and the memory destination if DIR=0.
In peripheral-to-peripheral mode, this field identifies the peripheral source if DIR=1 and the peripheral destination if DIR=0.
Note: this bit is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is read-only when the channel is enabled (EN=1).</description>
                <bitOffset>7</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues derivedFrom="PINC"/>
              </field>
              <field>
                <name>PSIZE</name>
                <description>peripheral size
Defines the data size of each DMA transfer to the identified peripheral.
In memory-to-memory mode, this field identifies the memory destination if DIR=1 and the memory source if DIR=0.
In peripheral-to-peripheral mode, this field identifies the peripheral destination if DIR=1 and the peripheral source if DIR=0.
Note: this field is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is read-only when the channel is enabled (EN=1).</description>
                <bitOffset>8</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>PSIZE</name>
                  <enumeratedValue>
                    <name>Bits8</name>
                    <description>8-bit size</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Bits16</name>
                    <description>16-bit size</description>
                    <value>1</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Bits32</name>
                    <description>32-bit size</description>
                    <value>2</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>MSIZE</name>
                <description>memory size
Defines the data size of each DMA transfer to the identified memory.
In memory-to-memory mode, this field identifies the memory source if DIR=1 and the memory destination if DIR=0.
In peripheral-to-peripheral mode, this field identifies the peripheral source if DIR=1 and the peripheral destination if DIR=0.
Note: this field is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is read-only when the channel is enabled (EN=1).</description>
                <bitOffset>10</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
                <enumeratedValues derivedFrom="PSIZE"/>
              </field>
              <field>
                <name>PL</name>
                <description>priority level
Note: this field is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is read-only when the channel is enabled (EN=1).</description>
                <bitOffset>12</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>PL</name>
                  <enumeratedValue>
                    <name>Low</name>
                    <description>Low priority</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Medium</name>
                    <description>Medium priority</description>
                    <value>1</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>High</name>
                    <description>High priority</description>
                    <value>2</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>VeryHigh</name>
                    <description>Very high priority</description>
                    <value>3</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>MEM2MEM</name>
                <description>memory-to-memory mode
Note: this bit is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is read-only when the channel is enabled (EN=1).</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>MEM2MEM</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Memory to memory mode disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Memory to memory mode enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
            </fields>
          </register>
          <register>
            <name>NDTR</name>
            <displayName>CNDTR1</displayName>
            <description>DMA channel x number of data register</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>NDT</name>
                <description>number of data to transfer</description>
                <bitOffset>0</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>65535</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>PAR</name>
            <displayName>CPAR1</displayName>
            <description>DMA channel x peripheral address register</description>
            <addressOffset>0x8</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>PA</name>
                <description>peripheral address
It contains the base address of the peripheral data register from/to which the data will be read/written.
When PSIZE[1:0]=01 (16 bits), bit 0 of PA[31:0] is ignored. Access is automatically aligned to a half-word address.
When PSIZE=10 (32 bits), bits 1 and 0 of PA[31:0] are ignored. Access is automatically aligned to a word address.
In memory-to-memory mode, this register identifies the memory destination address if DIR=1 and the memory source address if DIR=0.
In peripheral-to-peripheral mode, this register identifies the peripheral destination address DIR=1 and the peripheral source address if DIR=0.
Note: this register is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is not read-only when the channel is enabled (EN=1).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>MAR</name>
            <displayName>CMAR1</displayName>
            <description>DMA channel x memory address register</description>
            <addressOffset>0xC</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>MA</name>
                <description>peripheral address
It contains the base address of the memory from/to which the data will be read/written.
When MSIZE[1:0]=01 (16 bits), bit 0 of MA[31:0] is ignored. Access is automatically aligned to a half-word address.
When MSIZE=10 (32 bits), bits 1 and 0 of MA[31:0] are ignored. Access is automatically aligned to a word address.
In memory-to-memory mode, this register identifies the memory source address if DIR=1 and the memory destination address if DIR=0.
In peripheral-to-peripheral mode, this register identifies the peripheral source address DIR=1 and the peripheral destination address if DIR=0.
Note: this register is set and cleared by software.
It must not be written when the channel is enabled (EN = 1).
It is not read-only when the channel is enabled (EN=1).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
      </registers>
    </peripheral>
    <peripheral>
      <name>DMAMUX</name>
      <description>DMAMUX</description>
      <groupName>DMAMUX</groupName>
      <baseAddress>0x40020800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <dim>7</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-6</dimIndex>
          <name>CCR%s</name>
          <displayName>C%sCR</displayName>
          <description>DMA Multiplexer Channel %s Control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAREQ_ID</name>
              <description>Input DMA request line
              selected</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field>
              <name>SOIE</name>
              <description>Interrupt enable at synchronization
              event overrun</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SOIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Synchronization overrun interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Synchronization overrun interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EGE</name>
              <description>Event generation
              enable/disable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EGE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Event generation disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Event generation enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SE</name>
              <description>Synchronous operating mode
              enable/disable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Synchronization disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Synchronization enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPOL</name>
              <description>Synchronization event type selector
              Defines the synchronization event on the selected
              synchronization input:</description>
              <bitOffset>17</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>SPOL</name>
                <enumeratedValue>
                  <name>NoEdge</name>
                  <description>No event, i.e. no synchronization nor detection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Rising edge</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Falling edge</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BothEdges</name>
                  <description>Rising and falling edges</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NBREQ</name>
              <description>Number of DMA requests to forward
              Defines the number of DMA requests forwarded before
              output event is generated. In synchronous mode, it
              also defines the number of DMA requests to forward
              after a synchronization event, then stop forwarding.
              The actual number of DMA requests forwarded is
              NBREQ+1. Note: This field can only be written when
              both SE and EGE bits are reset.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SYNC_ID</name>
              <description>Synchronization input
              selected</description>
              <bitOffset>24</bitOffset>
              <bitWidth>5</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>DMAMUX request line multiplexer interrupt channel status register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>7</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-6</dimIndex>
              <name>SOF%s</name>
              <description>Synchronization Overrun Flag %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SOF0</name>
                <enumeratedValue>
                  <name>NoSyncEvent</name>
                  <description>No synchronization event occured on a DMA request line multiplexer channel x, while the DMA request counter value is lower than NBREQ</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SyncEvent</name>
                  <description>Synchronization event occured on a DMA request line multiplexer channel x, while the DMA request counter value is lower than NBREQ</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CFR</name>
          <displayName>CFR</displayName>
          <description>DMAMUX request line multiplexer interrupt clear flag register</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>7</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-6</dimIndex>
              <name>CSOF%s</name>
              <description>Synchronization Clear Overrun Flag %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CSOF0W</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear synchronization flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-3</dimIndex>
          <name>RGCR%s</name>
          <displayName>RG%sCR</displayName>
          <description>DMAMux - DMA request generator channel x
          control register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SIG_ID</name>
              <description>DMA request trigger input
              selected</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
            </field>
            <field>
              <name>OIE</name>
              <description>Interrupt enable at trigger event
              overrun</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger overrun interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger overrun interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GE</name>
              <description>DMA request generator channel
              enable/disable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>GE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA request generation disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GPOL</name>
              <description>DMA request generator trigger event type
              selection Defines the trigger event on the selected
              DMA request trigger input</description>
              <bitOffset>17</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>GPOL</name>
                <enumeratedValue>
                  <name>NoEdge</name>
                  <description>No event, i.e. no detection nor generation</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Rising edge</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Falling edge</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BothEdges</name>
                  <description>Rising and falling edges</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GNBREQ</name>
              <description>Number of DMA requests to generate
              Defines the number of DMA requests generated after a
              trigger event, then stop generating. The actual
              number of generated DMA requests is GNBREQ+1. Note:
              This field can only be written when GE bit is
              reset.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RGSR</name>
          <displayName>RGSR</displayName>
          <description>DMAMux - DMA request generator status
          register</description>
          <addressOffset>0x140</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-3</dimIndex>
              <name>OF%s</name>
              <description>Generator Overrun Flag %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OF0</name>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No new trigger event occured on DMA request generator channel x, before the request counter underrun</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>New trigger event occured on DMA request generator channel x, before the request counter underrun</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>RGCFR</name>
          <displayName>RGCFR</displayName>
          <description>DMAMux - DMA request generator clear flag
          register</description>
          <addressOffset>0x144</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-3</dimIndex>
              <name>COF%s</name>
              <description>Generator Clear Overrun Flag %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>COF0W</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear overrun flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>GPIOA</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x50000000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>MODER</name>
          <displayName>MODER</displayName>
          <description>GPIO port mode register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xEBFFFFFF</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MODER%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>Mode</name>
                <enumeratedValue>
                  <name>Input</name>
                  <description>Input mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Output</name>
                  <description>General purpose output mode</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Alternate</name>
                  <description>Alternate function mode</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Analog</name>
                  <description>Analog mode</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>OTYPER</name>
          <displayName>OTYPER</displayName>
          <description>GPIO port output type register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OT%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OutputType</name>
                <enumeratedValue>
                  <name>PushPull</name>
                  <description>Output push-pull (reset state)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OpenDrain</name>
                  <description>Output open-drain</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>OSPEEDR</name>
          <displayName>OSPEEDR</displayName>
          <description>GPIO port output speed
          register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0C000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OSPEEDR%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>OutputSpeed</name>
                <enumeratedValue>
                  <name>LowSpeed</name>
                  <description>Low speed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MediumSpeed</name>
                  <description>Medium speed</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HighSpeed</name>
                  <description>High speed</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>VeryHighSpeed</name>
                  <description>Very high speed</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>PUPDR</name>
          <displayName>PUPDR</displayName>
          <description>GPIO port pull-up/pull-down
          register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x24000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PUPDR%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>Pull</name>
                <enumeratedValue>
                  <name>Floating</name>
                  <description>No pull-up, pull-down</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PullUp</name>
                  <description>Pull-up</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PullDown</name>
                  <description>Pull-down</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IDR</name>
          <displayName>IDR</displayName>
          <description>GPIO port input data register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>IDR%s</name>
              <description>Port input data pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>InputData</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Input is logic low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Input is logic high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ODR</name>
          <displayName>ODR</displayName>
          <description>GPIO port output data register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>ODR%s</name>
              <description>Port output data pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OutputData</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Set output to logic low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Set output to logic high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>BSRR</name>
          <displayName>BSRR</displayName>
          <description>GPIO port bit set/reset
          register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>BR%s</name>
              <description>Port x reset pin %s</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BitReset</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Resets the corresponding ODx bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>BS%s</name>
              <description>Port x set pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BitSet</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Sets the corresponding ODx bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>LCKR</name>
          <displayName>LCKR</displayName>
          <description>GPIO port configuration lock
          register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LCKK</name>
              <description>Port x lock bit y (y=
              0..15)</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LockKey</name>
                <enumeratedValue>
                  <name>NotActive</name>
                  <description>Port configuration lock key not active</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Port configuration lock key active</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>LCK%s</name>
              <description>Port x lock pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>Lock</name>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>Port configuration not locked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>Port configuration locked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>AFRL</name>
          <displayName>AFRL</displayName>
          <description>GPIO alternate function low
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>EL0,EL1,EL2,EL3,EL4,EL5,EL6,EL7</dimIndex>
              <name>AFR%s</name>
              <description>Alternate function selection for port x
              bit y (y = 0..7)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>AlternateFunction</name>
                <enumeratedValue>
                  <name>AF0</name>
                  <description>AF0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF1</name>
                  <description>AF1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF2</name>
                  <description>AF2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF3</name>
                  <description>AF3</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF4</name>
                  <description>AF4</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF5</name>
                  <description>AF5</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF6</name>
                  <description>AF6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF7</name>
                  <description>AF7</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>AFRH</name>
          <displayName>AFRH</displayName>
          <description>GPIO alternate function high
          register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="GPIOA.AFRL.AFR%s">
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>EL8,EL9,EL10,EL11,EL12,EL13,EL14,EL15</dimIndex>
              <name>AFR%s</name>
              <description>Alternate function selection for port x
              bit y (y = 8..15)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>port bit reset register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>BR%s</name>
              <description>Port x reset pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BitReset</name>
                <enumeratedValue>
                  <name>NoAction</name>
                  <description>No action on the corresponding ODx bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the ODx bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>GPIOB</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x50000400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>MODER</name>
          <displayName>MODER</displayName>
          <description>GPIO port mode register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xFFFFFFFF</resetValue>
          <fields>
            <field derivedFrom="GPIOA.MODER.MODER%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MODER%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register derivedFrom="GPIOA.OTYPER">
          <name>OTYPER</name>
          <displayName>OTYPER</displayName>
          <description>GPIO port output type register</description>
          <addressOffset>0x4</addressOffset>
        </register>
        <register>
          <name>OSPEEDR</name>
          <displayName>OSPEEDR</displayName>
          <description>GPIO port output speed
          register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="GPIOA.OSPEEDR.OSPEEDR%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OSPEEDR%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>PUPDR</name>
          <displayName>PUPDR</displayName>
          <description>GPIO port pull-up/pull-down
          register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="GPIOA.PUPDR.PUPDR%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PUPDR%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register derivedFrom="GPIOA.IDR">
          <name>IDR</name>
          <displayName>IDR</displayName>
          <description>GPIO port input data register</description>
          <addressOffset>0x10</addressOffset>
        </register>
        <register derivedFrom="GPIOA.ODR">
          <name>ODR</name>
          <displayName>ODR</displayName>
          <description>GPIO port output data register</description>
          <addressOffset>0x14</addressOffset>
        </register>
        <register derivedFrom="GPIOA.BSRR">
          <name>BSRR</name>
          <displayName>BSRR</displayName>
          <description>GPIO port bit set/reset
          register</description>
          <addressOffset>0x18</addressOffset>
        </register>
        <register derivedFrom="GPIOA.LCKR">
          <name>LCKR</name>
          <displayName>LCKR</displayName>
          <description>GPIO port configuration lock
          register</description>
          <addressOffset>0x1C</addressOffset>
        </register>
        <register derivedFrom="GPIOA.AFRL">
          <name>AFRL</name>
          <displayName>AFRL</displayName>
          <description>GPIO alternate function low
          register</description>
          <addressOffset>0x20</addressOffset>
        </register>
        <register derivedFrom="GPIOA.AFRH">
          <name>AFRH</name>
          <displayName>AFRH</displayName>
          <description>GPIO alternate function high
          register</description>
          <addressOffset>0x24</addressOffset>
        </register>
        <register derivedFrom="GPIOA.BRR">
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>port bit reset register</description>
          <addressOffset>0x28</addressOffset>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="GPIOB">
      <name>GPIOC</name>
      <baseAddress>0x50000800</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOB">
      <name>GPIOD</name>
      <baseAddress>0x50000C00</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOB">
      <name>GPIOF</name>
      <baseAddress>0x50001400</baseAddress>
    </peripheral>
    <peripheral>
      <name>AES</name>
      <description>Advanced encryption standard hardware
      accelerator 1</description>
      <groupName>AES</groupName>
      <baseAddress>0x40026000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>AES_RNG</name>
        <description>AES and RNG global interrupts</description>
        <value>31</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>NPBLB</name>
              <description>Number of padding bytes in last block of
              payload</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>KEYSIZE</name>
              <description>Key size selection</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>KEYSIZE</name>
                <enumeratedValue>
                  <name>AES128</name>
                  <description>128</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AES256</name>
                  <description>256</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CHMOD_2</name>
              <description>AES chaining mode Bit2</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CHMOD_2</name>
                <enumeratedValue>
                  <name>CHMOD</name>
                  <description>Mode as per CHMOD (ECB, CBC, CTR, GCM)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CCM</name>
                  <description>Counter with CBC-MAC (CCM) - CHMOD must be 0 (ECB)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GCMPH</name>
              <description>Used only for GCM, CCM and GMAC
              algorithms and has no effect when other algorithms
              are selected</description>
              <bitOffset>13</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>GCMPH</name>
                <enumeratedValue>
                  <name>Init</name>
                  <description>Init phase</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Header</name>
                  <description>Header phase</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Payload</name>
                  <description>Payload phase</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Final</name>
                  <description>Final Phase</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAOUTEN</name>
              <description>Enable DMA management of data output
              phase</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAOUTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disable DMA Output</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enabled DMA Output</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAINEN</name>
              <description>Enable DMA management of data input
              phase</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAINEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disable DMA Input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enable DMA Input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Error interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ERRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disable (mask) error interrupt</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enable error interrupt</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCFIE</name>
              <description>CCF flag interrupt enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCFIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disable (mask) CCF interrupt</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enable CCF interrupt</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ERRC</name>
              <description>Error clear</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ERRCW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear RDERR and WRERR flags</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCFC</name>
              <description>Computation Complete Flag
              Clear</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCFCW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear computation complete flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CHMOD</name>
              <description>AES chaining mode Bit1
              Bit0</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CHMOD</name>
                <enumeratedValue>
                  <name>ECB</name>
                  <description>Electronic codebook (ECB) / Counter with CBC-MAC (CCM) if CHMOD2 is 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CBC</name>
                  <description>Cipher-block chaining (CBC)</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CTR</name>
                  <description>Counter mode (CTR)</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>GCM</name>
                  <description>Galois counter mode (GCM) and Galois message authentication code (GMAC)</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MODE</name>
              <description>AES operating mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>MODE</name>
                <enumeratedValue>
                  <name>Mode1</name>
                  <description>Mode 1: encryption</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mode2</name>
                  <description>Mode 2: key derivation (or key preparation for ECB/CBC decryption)</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mode3</name>
                  <description>Mode 3: decryption</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mode4</name>
                  <description>Mode 4: key derivation then single decryption</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DATATYPE</name>
              <description>Data type selection (for data in and
              data out to/from the cryptographic
              block)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>DATATYPE</name>
                <enumeratedValue>
                  <name>None</name>
                  <description>Word</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HalfWord</name>
                  <description>Half-word (16-bit)</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Byte</name>
                  <description>Byte (8-bit)</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit</name>
                  <description>Bit</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EN</name>
              <description>AES enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disable AES</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enable AES</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BUSY</name>
              <description>Busy flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BUSY</name>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>Idle</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>Busy</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WRERR</name>
              <description>Write error flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WRERR</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>Write error not detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Write error detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RDERR</name>
              <description>Read error flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RDERR</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>Read error not detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Read error detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCF</name>
              <description>Computation complete flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCF</name>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Computation complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Computation not complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR</name>
          <displayName>DINR</displayName>
          <description>data input register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DIN</name>
              <description>Data Input Register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR</name>
          <displayName>DOUTR</displayName>
          <description>data output register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DOUT</name>
              <description>Data output register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR0</name>
          <displayName>KEYR0</displayName>
          <description>key register 0</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>Data Output Register (LSB key
              [31:0])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR1</name>
          <displayName>KEYR1</displayName>
          <description>key register 1</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>AES key register (key
              [63:32])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR2</name>
          <displayName>KEYR2</displayName>
          <description>key register 2</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>AES key register (key
              [95:64])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR3</name>
          <displayName>KEYR3</displayName>
          <description>key register 3</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>AES key register (MSB key
              [127:96])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>IVR0</name>
          <displayName>IVR0</displayName>
          <description>initialization vector register
          0</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IVI</name>
              <description>initialization vector register (LSB IVR
              [31:0])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>IVR1</name>
          <displayName>IVR1</displayName>
          <description>initialization vector register
          1</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IVI</name>
              <description>Initialization Vector Register (IVR
              [63:32])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>IVR2</name>
          <displayName>IVR2</displayName>
          <description>initialization vector register
          2</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IVI</name>
              <description>Initialization Vector Register (IVR
              [95:64])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>IVR3</name>
          <displayName>IVR3</displayName>
          <description>initialization vector register
          3</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IVI</name>
              <description>Initialization Vector Register (MSB IVR
              [127:96])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR4</name>
          <displayName>KEYR4</displayName>
          <description>key register 4</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>AES key register (MSB key
              [159:128])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR5</name>
          <displayName>KEYR5</displayName>
          <description>key register 5</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>AES key register (MSB key
              [191:160])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR6</name>
          <displayName>KEYR6</displayName>
          <description>key register 6</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>AES key register (MSB key
              [223:192])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR7</name>
          <displayName>KEYR7</displayName>
          <description>key register 7</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>AES key register (MSB key
              [255:224])</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP0R</name>
          <displayName>SUSP0R</displayName>
          <description>AES suspend register 0</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SUSP</name>
              <description>AES suspend register 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP1R</name>
          <displayName>SUSP1R</displayName>
          <description>AES suspend register 1</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SUSP</name>
              <description>AES suspend register 1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP2R</name>
          <displayName>SUSP2R</displayName>
          <description>AES suspend register 2</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SUSP</name>
              <description>AES suspend register 2</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP3R</name>
          <displayName>SUSP3R</displayName>
          <description>AES suspend register 3</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SUSP</name>
              <description>AES suspend register 3</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP4R</name>
          <displayName>SUSP4R</displayName>
          <description>AES suspend register 4</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SUSP</name>
              <description>AES suspend register 4</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP5R</name>
          <displayName>SUSP5R</displayName>
          <description>AES suspend register 5</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SUSP</name>
              <description>AES suspend register 5</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP6R</name>
          <displayName>SUSP6R</displayName>
          <description>AES suspend register 6</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SUSP</name>
              <description>AES suspend register 6</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP7R</name>
          <displayName>SUSP7R</displayName>
          <description>AES suspend register 7</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SUSP</name>
              <description>AES suspend register 7</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>RNG</name>
      <description>Random number generator</description>
      <groupName>RNG</groupName>
      <baseAddress>0x40025000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RNGEN</name>
              <description>Random number generator
              enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>IE</name>
              <description>Interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CED</name>
              <description>Clock error detection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BYP</name>
              <description>Bypass mode enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SEIS</name>
              <description>Seed error interrupt
              status</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CEIS</name>
              <description>Clock error interrupt
              status</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SECS</name>
              <description>Seed error current status</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CECS</name>
              <description>Clock error current status</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DRDY</name>
              <description>Data ready</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>data register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RNDATA</name>
              <description>Random data</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>CRC</name>
      <description>Cyclic redundancy check calculation
      unit</description>
      <groupName>CRC</groupName>
      <baseAddress>0x40023000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>CEC</name>
        <description>CEC global interrupt</description>
        <value>30</value>
      </interrupt>
      <registers>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>Data register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xFFFFFFFF</resetValue>
          <fields>
            <field>
              <name>DR</name>
              <description>Data register bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DR8</name>
          <description>Data register - byte sized</description>
          <alternateRegister>DR</alternateRegister>
          <addressOffset>0x0</addressOffset>
          <size>0x8</size>
          <access>read-write</access>
          <resetValue>0x000000FF</resetValue>
          <fields>
            <field>
              <name>DR8</name>
              <description>Data register bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DR16</name>
          <description>Data register - half-word sized</description>
          <alternateRegister>DR</alternateRegister>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>DR16</name>
              <description>Data register bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>IDR</name>
          <displayName>IDR</displayName>
          <description>Independent data register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IDR</name>
              <description>General-purpose 32-bit data register
              bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>Control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>REV_OUT</name>
              <description>Reverse output data</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>REV_OUT</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Bit order not affected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reversed</name>
                  <description>Bit reversed output</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>REV_IN</name>
              <description>Reverse input data</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>REV_IN</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Bit order not affected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Byte</name>
                  <description>Bit reversal done by byte</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HalfWord</name>
                  <description>Bit reversal done by half-word</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Word</name>
                  <description>Bit reversal done by word</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>POLYSIZE</name>
              <description>Polynomial size</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>POLYSIZE</name>
                <enumeratedValue>
                  <name>Polysize32</name>
                  <description>32-bit polynomial</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Polysize16</name>
                  <description>16-bit polynomial</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Polysize8</name>
                  <description>8-bit polynomial</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Polysize7</name>
                  <description>7-bit polynomial</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RESET</name>
              <description>RESET bit</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>RESETW</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Resets the CRC calculation unit and sets the data register to 0xFFFF FFFF</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>INIT</name>
          <displayName>INIT</displayName>
          <description>Initial CRC value</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xFFFFFFFF</resetValue>
          <fields>
            <field>
              <name>INIT</name>
              <description>Programmable initial CRC
              value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>POL</name>
          <displayName>POL</displayName>
          <description>polynomial</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x04C11DB7</resetValue>
          <fields>
            <field>
              <name>POL</name>
              <description>Programmable polynomial</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>EXTI</name>
      <description>External interrupt/event
      controller</description>
      <groupName>EXTI</groupName>
      <baseAddress>0x40021800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>EXTI0_1</name>
        <description>EXTI line 0 &amp; 1 interrupt</description>
        <value>5</value>
      </interrupt>
      <interrupt>
        <name>EXTI2_3</name>
        <description>EXTI line 2 &amp; 3 interrupt</description>
        <value>6</value>
      </interrupt>
      <interrupt>
        <name>EXTI4_15</name>
        <description>EXTI line 4 to 15 interrupt</description>
        <value>7</value>
      </interrupt>
      <registers>
        <register>
          <name>RTSR1</name>
          <displayName>RTSR1</displayName>
          <description>EXTI rising trigger selection
          register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TR0</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RisingTrigger</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Rising edge trigger is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Rising edge trigger is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TR1</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR2</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR3</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR4</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR5</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR6</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR7</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR8</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR9</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR10</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR11</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR12</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR13</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR14</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR15</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR16</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
          </fields>
        </register>
        <register>
          <name>FTSR1</name>
          <displayName>FTSR1</displayName>
          <description>EXTI falling trigger selection
          register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TR0</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FallingTrigger</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Falling edge trigger is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Falling edge trigger is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TR1</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR2</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR3</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR4</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR5</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR6</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR7</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR8</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR9</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR10</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR11</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR12</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR13</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR14</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR15</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR16</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
          </fields>
        </register>
        <register>
          <name>SWIER1</name>
          <displayName>SWIER1</displayName>
          <description>EXTI software interrupt event
          register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SWIER0</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SoftwareInterrupt</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Pend</name>
                  <description>Generates an interrupt request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWIER1</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER2</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER3</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER4</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER5</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER6</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER7</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER8</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER9</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER10</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER11</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER12</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER13</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER14</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER15</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER16</name>
              <description>Rising trigger event configuration bit
              of Configurable Event input</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
          </fields>
        </register>
        <register>
          <name>RPR1</name>
          <displayName>RPR1</displayName>
          <description>EXTI rising edge pending
          register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RPIF0</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>RPIF0R</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotPending</name>
                  <description>No trigger request occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pending</name>
                  <description>Selected trigger request occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>RPIF0W</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears pending bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF1</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF2</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF3</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF4</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF5</name>
              <description>configurable event inputs x rising edge
              Pending bit</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF6</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF7</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF8</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF9</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF10</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF11</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF12</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF13</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF14</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF15</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIF16</name>
              <description>configurable event inputs x rising edge
              Pending bit.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="RPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="RPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>FPR1</name>
          <displayName>FPR1</displayName>
          <description>EXTI falling edge pending
          register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>FPIF0</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>FPIF0R</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotPending</name>
                  <description>No trigger request occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pending</name>
                  <description>Selected trigger request occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>FPIF0W</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears pending bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF1</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF2</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF3</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF4</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF5</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF6</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF7</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF8</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF9</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF10</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF11</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF12</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF13</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF14</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF15</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>FPIF16</name>
              <description>configurable event inputs x falling edge
              pending bit.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="FPIF0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="FPIF0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EXTICR1</name>
          <displayName>EXTICR1</displayName>
          <description>EXTI external interrupt selection
          register</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EXTI0</name>
              <description>GPIO port selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <enumeratedValues>
                <name>EXTI0</name>
                <enumeratedValue>
                  <name>PA</name>
                  <description>Select PAx as the source input for the EXTIx external interrupt</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PB</name>
                  <description>Select PBx as the source input for the EXTIx external interrupt</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PC</name>
                  <description>Select PCx as the source input for the EXTIx external interrupt</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PD</name>
                  <description>Select PDx as the source input for the EXTIx external interrupt</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PF</name>
                  <description>Select PFx as the source input for the EXTIx external interrupt</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field derivedFrom="EXTI0">
              <name>EXTI1</name>
              <description>GPIO port selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI0">
              <name>EXTI2</name>
              <description>GPIO port selection</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI0">
              <name>EXTI3</name>
              <description>GPIO port selection</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>EXTICR2</name>
          <displayName>EXTICR2</displayName>
          <description>EXTI external interrupt selection
          register</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI4</name>
              <description>GPIO port selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI5</name>
              <description>GPIO port selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI6</name>
              <description>GPIO port selection</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI7</name>
              <description>GPIO port selection</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>EXTICR3</name>
          <displayName>EXTICR3</displayName>
          <description>EXTI external interrupt selection
          register</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI8</name>
              <description>GPIO port selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI9</name>
              <description>GPIO port selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI10</name>
              <description>GPIO port selection</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI11</name>
              <description>GPIO port selection</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>EXTICR4</name>
          <displayName>EXTICR4</displayName>
          <description>EXTI external interrupt selection
          register</description>
          <addressOffset>0x6C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI12</name>
              <description>GPIO port selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI13</name>
              <description>GPIO port selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI14</name>
              <description>GPIO port selection</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
            <field derivedFrom="EXTI.EXTICR1.EXTI0">
              <name>EXTI15</name>
              <description>GPIO port selection</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>IMR1</name>
          <displayName>IMR1</displayName>
          <description>EXTI CPU wakeup with interrupt mask
          register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xFFF80000</resetValue>
          <fields>
            <field>
              <name>IM0</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>InterruptMask</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>Interrupt request line is masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Unmasked</name>
                  <description>Interrupt request line is unmasked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IM1</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM2</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM3</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM4</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM5</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM6</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM7</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM8</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM9</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM10</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM11</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM12</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM13</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM14</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM15</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM16</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM19</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM20</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM21</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM22</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM23</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM24</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM25</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM26</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM28</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM29</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM30</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>IM31</name>
              <description>CPU wakeup with interrupt mask on event
              input</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
          </fields>
        </register>
        <register>
          <name>EMR1</name>
          <displayName>EMR1</displayName>
          <description>EXTI CPU wakeup with event mask
          register</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EM0</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EventMask</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>Event request line is masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Unmasked</name>
                  <description>Event request line is unmasked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EM1</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM2</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM3</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM4</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM5</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM6</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM7</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM8</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM9</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM10</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM11</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM12</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM13</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM14</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM15</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM16</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM19</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM21</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM23</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM25</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM26</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM28</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM29</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM30</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>EM31</name>
              <description>CPU wakeup with event mask on event
              input</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>TIM16</name>
      <description>General purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40014400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM16</name>
        <description>TIM16 global interrupt</description>
        <value>21</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OIS%sN</name>
              <description>Output Idle state (OC%sN output)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1N</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCxN=0 after a dead-time when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCxN=1 after a dead-time when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OIS%s</name>
              <description>Output Idle state (OC%s output)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCx=0 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCx=1 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCDS</name>
              <description>Capture/compare DMA
              selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCDS</name>
                <enumeratedValue>
                  <name>OnCompare</name>
                  <description>CCx DMA request sent when CCx event occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OnUpdate</name>
                  <description>CCx DMA request sent when update event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCUS</name>
              <description>Capture/compare control update
              selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCUS</name>
                <enumeratedValue>
                  <name>Sw</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SwOrEdge</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit or when an rising edge occurs on TRGI</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCPC</name>
              <description>Capture/compare preloaded
              control</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCPC</name>
                <enumeratedValue>
                  <name>NotPreloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are not preloaded</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Preloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are preloaded</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>COMDE</name>
              <description>COM DMA request enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1DE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIE</name>
              <description>Break interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIE</name>
              <description>COM interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>COM interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>COM interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIF</name>
              <description>Break interrupt flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>BIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No break event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>An active level has been detected on the break input. An interrupt is generated if BIE=1 in the TIMx_DIER register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>BIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIF</name>
              <description>COM interrupt flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>COMIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoCOM</name>
                  <description>No COM event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>COM</name>
                  <description>COM interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>COMIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BG</name>
              <description>Break generation</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>A break event is generated. MOE bit is cleared and BIF flag is set. Related interrupt or DMA transfer can occur if enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMG</name>
              <description>Capture/Compare control update
              generation</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>When CCPC bit is set, it allows CCxE, CCxNE and OCxM bits to be updated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>capture/compare mode register (output
          mode)</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>capture/compare mode register 1 (input
          mode)</description>
          <alternateRegister>CCMR1_Output</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>capture/compare enable
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NP</name>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>OCxN active high</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>OCxN active low</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sNE</name>
              <description>Capture/Compare %s complementary output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Complementary output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Complementary output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>UIFCPY</name>
              <description>UIF Copy</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT16</name>
          <displayName>CNT16</displayName>
          <description>16-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RCR</name>
          <displayName>RCR</displayName>
          <description>repetition counter register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>REP</name>
              <description>Repetition counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>1</dim>
          <dimIncrement>0x2</dimIncrement>
          <dimIndex>1-1</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>BDTR</name>
          <displayName>BDTR</displayName>
          <description>break and dead-time register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DTG</name>
              <description>Dead-time generator setup</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock configuration</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>LOCK</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>No bit is write protected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level1</name>
                  <description>Any bits except MOE, OSSR, OSSI and LOCK in TIMx_BDTR register, OISx and OISxN bits in TIMx_CR2 register can no longer be written</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level2</name>
                  <description>LOCK Level 1 + CC Polarity bits (CCxP/CCxNP bits in TIMx_CCER register, as long as the related channel is configured in output through the CCxS bits) as well as OSSR and OSSI bits can no longer be written</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level3</name>
                  <description>LOCK Level 2 + CC Control bits (OCxM and OCxPE bits in TIMx_CCMRx registers, as long as the related channel is configured in output through the CCxS bits) can no longer be written</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSI</name>
              <description>Off-state selection for Idle
              mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSI</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are forced to idle level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSR</name>
              <description>Off-state selection for Run
              mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSR</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are enabled with their inactive level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKE</name>
              <description>Break enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break function x disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break function x enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKP</name>
              <description>Break polarity</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKP</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Break input BRKx is active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>Break input BRKx is active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AOE</name>
              <description>Automatic output enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AOE</name>
                <enumeratedValue>
                  <name>Manual</name>
                  <description>MOE can be set only by software</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Automatic</name>
                  <description>MOE can be set by software or automatically at the next update event (if none of the break inputs BRK and BRK2 is active)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MOE</name>
              <description>Main output enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MOE</name>
                <enumeratedValue>
                  <name>DisabledIdle</name>
                  <description>OC/OCN are disabled or forced idle depending on OSSI</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OC/OCN are enabled if CCxE/CCxNE are set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKF</name>
              <description>Break filter</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>BKDSRM</name>
              <description>Break Disarm</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKBID</name>
              <description>Break Bidirectional</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>DMA control register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBL</name>
              <description>DMA burst length</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
            </field>
            <field>
              <name>DBA</name>
              <description>DMA base address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>DMA address for full transfer</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst
              accesses</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>AF1</name>
          <displayName>AF1</displayName>
          <description>TIM17 option register 1</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BKINE</name>
              <description>BRK BKIN input enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKCMP1E</name>
              <description>BRK COMP1 enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKCMP2E</name>
              <description>BRK COMP2 enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKDFBK1E</name>
              <description>BRK DFSDM_BREAK1 enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKINP</name>
              <description>BRK BKIN input polarity</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKCMP1P</name>
              <description>BRK COMP1 input polarity</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKCMP2P</name>
              <description>BRK COMP2 input polarit</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>input selection register</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>selects input</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="TIM16">
      <name>TIM17</name>
      <groupName>TIM</groupName>
      <baseAddress>0x40014800</baseAddress>
      <interrupt>
        <name>TIM17</name>
        <description>TIM17 global interrupt</description>
        <value>22</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>USART1</name>
      <description>Universal synchronous asynchronous receiver
      transmitter</description>
      <groupName>USART</groupName>
      <baseAddress>0x40013800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>USART1</name>
        <description>USART1 global interrupt</description>
        <value>27</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>Control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RXFFIE</name>
              <description>RXFIFO Full interrupt
              enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFFIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated when RXFF = 1 in the USART_ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXFEIE</name>
              <description>TXFIFO empty interrupt
              enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated when TXFE = 1 in the USART_ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FIFOEN</name>
              <description>FIFO mode enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FIFOEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>FIFO mode is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>FIFO mode is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>M1</name>
              <description>Word length</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>M1</name>
                <enumeratedValue>
                  <name>M0</name>
                  <description>Use M0 to set the data bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>1 start bit, 7 data bits, n stop bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOBIE</name>
              <description>End of Block interrupt
              enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOBIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>A USART interrupt is generated when the EOBF flag is set in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTOIE</name>
              <description>Receiver timeout interrupt
              enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTOIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An USART interrupt is generated when the RTOF bit is set in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEAT</name>
              <description>DEAT</description>
              <bitOffset>21</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DEDT</name>
              <description>DEDT</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>OVER8</name>
              <description>Oversampling mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVER8</name>
                <enumeratedValue>
                  <name>Oversampling16</name>
                  <description>Oversampling by 16</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Oversampling8</name>
                  <description>Oversampling by 8</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMIE</name>
              <description>Character match interrupt
              enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated when the CMF bit is set in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MME</name>
              <description>Mute mode enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MME</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receiver in active mode permanently</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receiver can switch between mute mode and active mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>M0</name>
              <description>Word length</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>M0</name>
                <enumeratedValue>
                  <name>Bit8</name>
                  <description>1 start bit, 8 data bits, n stop bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit9</name>
                  <description>1 start bit, 9 data bits, n stop bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAKE</name>
              <description>Receiver wakeup method</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WAKE</name>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>Idle line</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Address</name>
                  <description>Address mask</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PCE</name>
              <description>Parity control enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PCE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Parity control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Parity control enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PS</name>
              <description>Parity selection</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PS</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Even parity</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Odd parity</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PEIE</name>
              <description>PE interrupt enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever PE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXEIE</name>
              <description>interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever TXE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCIE</name>
              <description>Transmission complete interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TCIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever TC=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNEIE</name>
              <description>RXNE interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXNEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever ORE=1 or RXNE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLEIE</name>
              <description>IDLE interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IDLEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever IDLE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TE</name>
              <description>Transmitter enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Transmitter is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Transmitter is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RE</name>
              <description>Receiver enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receiver is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receiver is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UESM</name>
              <description>USART enable in Stop mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UESM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>USART not able to wake up the MCU from Stop mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART able to wake up the MCU from Stop mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UE</name>
              <description>USART enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>UART is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>UART is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>Control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RTOEN</name>
              <description>Receiver timeout enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTOEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receiver timeout feature disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receiver timeout feature enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABRMOD</name>
              <description>Auto baud rate mode</description>
              <bitOffset>21</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ABRMOD</name>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Measurement of the start bit is used to detect the baud rate</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Edge</name>
                  <description>Falling edge to falling edge measurement</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Frame7F</name>
                  <description>0x7F frame detection</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Frame55</name>
                  <description>0x55 frame detection</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABREN</name>
              <description>Auto baud rate enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ABREN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Auto baud rate detection is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Auto baud rate detection is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSBFIRST</name>
              <description>Most significant bit first</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSBFIRST</name>
                <enumeratedValue>
                  <name>LSB</name>
                  <description>data is transmitted/received with data bit 0 first, following the start bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MSB</name>
                  <description>data is transmitted/received with MSB (bit 7/8/9) first, following the start bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DATAINV</name>
              <description>Binary data inversion</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DATAINV</name>
                <enumeratedValue>
                  <name>Positive</name>
                  <description>Logical data from the data register are send/received in positive/direct logic</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Negative</name>
                  <description>Logical data from the data register are send/received in negative/inverse logic</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXINV</name>
              <description>TX pin active level
              inversion</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXINV</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>TX pin signal works using the standard logic levels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>TX pin signal values are inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXINV</name>
              <description>RX pin active level
              inversion</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXINV</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>RX pin signal works using the standard logic levels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>RX pin signal values are inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWAP</name>
              <description>Swap TX/RX pins</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SWAP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>TX/RX pins are used as defined in standard pinout</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Swapped</name>
                  <description>The TX and RX pins functions are swapped</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LINEN</name>
              <description>LIN mode enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LINEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>LIN mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>LIN mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOP</name>
              <description>STOP bits</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>STOP</name>
                <enumeratedValue>
                  <name>Stop1</name>
                  <description>1 stop bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop0p5</name>
                  <description>0.5 stop bit</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop2</name>
                  <description>2 stop bit</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop1p5</name>
                  <description>1.5 stop bit</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CLKEN</name>
              <description>Clock enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CLKEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CK pin disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CK pin enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPOL</name>
              <description>Clock polarity</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CPOL</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Steady low value on CK pin outside transmission window</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Steady high value on CK pin outside transmission window</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPHA</name>
              <description>Clock phase</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CPHA</name>
                <enumeratedValue>
                  <name>First</name>
                  <description>The first clock transition is the first data capture edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Second</name>
                  <description>The second clock transition is the first data capture edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBCL</name>
              <description>Last bit clock pulse</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LBCL</name>
                <enumeratedValue>
                  <name>NotOutput</name>
                  <description>The clock pulse of the last data bit is not output to the CK pin</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Output</name>
                  <description>The clock pulse of the last data bit is output to the CK pin</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBDIE</name>
              <description>LIN break detection interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LBDIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated whenever LBDF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBDL</name>
              <description>LIN break detection length</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LBDL</name>
                <enumeratedValue>
                  <name>Bit10</name>
                  <description>10-bit break detection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit11</name>
                  <description>11-bit break detection</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDM7</name>
              <description>7-bit Address Detection/4-bit Address
              Detection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADDM7</name>
                <enumeratedValue>
                  <name>Bit4</name>
                  <description>4-bit address detection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>7-bit address detection</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DIS_NSS</name>
              <description>When the DSI_NSS bit is set, the NSS pin
              input will be ignored</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DIS_NSS</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>SPI slave selection depends on NSS input pin</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>SPI slave is always selected and NSS input pin is ignored</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SLVEN</name>
              <description>Synchronous Slave mode
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SLVEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Slave mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Slave mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADD</name>
              <description>Address of the USART node</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CR3</name>
          <displayName>CR3</displayName>
          <description>Control register 3</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TXFTCFG</name>
              <description>TXFIFO threshold
              configuration</description>
              <bitOffset>29</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>TXFTCFG</name>
                <enumeratedValue>
                  <name>Depth_1_8</name>
                  <description>TXFIFO reaches 1/8 of its depth</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_1_4</name>
                  <description>TXFIFO reaches 1/4 of its depth</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_1_2</name>
                  <description>TXFIFO reaches 1/2 of its depth</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_3_4</name>
                  <description>TXFIFO reaches 3/4 of its depth</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_7_8</name>
                  <description>TXFIFO reaches 7/8 of its depth</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>TXFIFO becomes empty</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFTIE</name>
              <description>RXFIFO threshold interrupt
              enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFTIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated when Receive FIFO reaches the threshold programmed in RXFTCFG</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFTCFG</name>
              <description>Receive FIFO threshold
              configuration</description>
              <bitOffset>25</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>RXFTCFG</name>
                <enumeratedValue>
                  <name>Depth_1_8</name>
                  <description>RXFIFO reaches 1/8 of its depth</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_1_4</name>
                  <description>RXFIFO reaches 1/4 of its depth</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_1_2</name>
                  <description>RXFIFO reaches 1/2 of its depth</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_3_4</name>
                  <description>RXFIFO reaches 3/4 of its depth</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_7_8</name>
                  <description>RXFIFO reaches 7/8 of its depth</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Full</name>
                  <description>RXFIFO becomes full</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCBGTIE</name>
              <description>Tr Complete before guard time, interrupt
              enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TCBGTIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated whenever TCBGT=1 in the USART_ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXFTIE</name>
              <description>threshold interrupt enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFTIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated when Transmit FIFO reaches the threshold programmed in TXFTCFG</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUFIE</name>
              <description>Wakeup from Stop mode interrupt
              enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUFIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An USART interrupt is generated whenever WUF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUS</name>
              <description>Wakeup from Stop mode interrupt flag
              selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>WUS</name>
                <enumeratedValue>
                  <name>Address</name>
                  <description>WUF active on address match</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>WuF active on Start bit detection</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RXNE</name>
                  <description>WUF active on RXNE</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SCARCNT</name>
              <description>Smartcard auto-retry count</description>
              <bitOffset>17</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DEP</name>
              <description>Driver enable polarity
              selection</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DEP</name>
                <enumeratedValue>
                  <name>High</name>
                  <description>DE signal is active high</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Low</name>
                  <description>DE signal is active low</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEM</name>
              <description>Driver enable mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DEM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DE function is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The DE signal is output on the RTS pin</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DDRE</name>
              <description>DMA Disable on Reception
              Error</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DDRE</name>
                <enumeratedValue>
                  <name>NotDisabled</name>
                  <description>DMA is not disabled in case of reception error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA is disabled following a reception error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRDIS</name>
              <description>Overrun Disable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVRDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Overrun Error Flag, ORE, is set when received data is not read before receiving new data</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Overrun functionality is disabled. If new data is received while the RXNE flag is still set the ORE flag is not set and the new received data overwrites the previous content of the RDR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ONEBIT</name>
              <description>One sample bit method
              enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ONEBIT</name>
                <enumeratedValue>
                  <name>Sample3</name>
                  <description>Three sample bit method</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sample1</name>
                  <description>One sample bit method</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSIE</name>
              <description>CTS interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated whenever CTSIF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSE</name>
              <description>CTS enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CTS hardware flow control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CTS mode enabled, data is only transmitted when the CTS input is asserted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTSE</name>
              <description>RTS enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTS hardware flow control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTS output enabled, data is only requested when there is space in the receive buffer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAT</name>
              <description>DMA enable transmitter</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAT</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode is disabled for transmission</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode is enabled for transmission</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAR</name>
              <description>DMA enable receiver</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAR</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode is disabled for reception</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode is enabled for reception</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SCEN</name>
              <description>Smartcard mode enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Smartcard Mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Smartcard Mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NACK</name>
              <description>Smartcard NACK enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NACK</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>NACK transmission in case of parity error is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>NACK transmission during parity error is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HDSEL</name>
              <description>Half-duplex selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HDSEL</name>
                <enumeratedValue>
                  <name>NotSelected</name>
                  <description>Half duplex mode is not selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Selected</name>
                  <description>Half duplex mode is selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IRLP</name>
              <description>Ir low-power</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IRLP</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LowPower</name>
                  <description>Low-power mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IREN</name>
              <description>Ir mode enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IREN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>IrDA disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>IrDA enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EIE</name>
              <description>Error interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated when FE=1 or ORE=1 or NF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>Baud rate register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BRR</name>
              <description>Baud rate</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>GTPR</name>
          <displayName>GTPR</displayName>
          <description>Guard time and prescaler
          register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>GT</name>
              <description>Guard time value</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RTOR</name>
          <displayName>RTOR</displayName>
          <description>Receiver timeout register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BLEN</name>
              <description>Block Length</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>RTO</name>
              <description>Receiver timeout value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>24</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>16777215</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RQR</name>
          <displayName>RQR</displayName>
          <description>Request register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TXFRQ</name>
              <description>Transmit data flush
              request</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFRQ</name>
                <enumeratedValue>
                  <name>Discard</name>
                  <description>Set the TXE flags. This allows to discard the transmit data</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFRQ</name>
              <description>Receive data flush request</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFRQ</name>
                <enumeratedValue>
                  <name>Discard</name>
                  <description>clears the RXNE flag. This allows to discard the received data without reading it, and avoid an overrun condition</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MMRQ</name>
              <description>Mute mode request</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MMRQ</name>
                <enumeratedValue>
                  <name>Mute</name>
                  <description>Puts the USART in mute mode and sets the RWU flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBKRQ</name>
              <description>Send break request</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SBKRQ</name>
                <enumeratedValue>
                  <name>Break</name>
                  <description>sets the SBKF flag and request to send a BREAK on the line, as soon as the transmit machine is available</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABRRQ</name>
              <description>Auto baud rate request</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ABRRQ</name>
                <enumeratedValue>
                  <name>Request</name>
                  <description>resets the ABRF flag in the USART_ISR and request an automatic baud rate measurement on the next received data frame</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>Interrupt &amp; status
          register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x000000C0</resetValue>
          <fields>
            <field>
              <name>TXFT</name>
              <description>TXFIFO threshold flag</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFT</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>TXFIFO does not reach the programmed threshold.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>TXFIFO reached the programmed threshold.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFT</name>
              <description>RXFIFO threshold flag</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFT</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>Receive FIFO does not reach the programmed threshold.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>Receive FIFO reached the programmed threshold.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCBGT</name>
              <description>Transmission complete before guard time
              flag</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TCBGT</name>
                <enumeratedValue>
                  <name>NotCompleted</name>
                  <description>Transmission is not complete or transmission is complete unsuccessfully (i.e. a NACK is received from the card)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Completed</name>
                  <description>Transmission is complete successfully (before Guard time completion and there is no NACK from the smart card)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFF</name>
              <description>RXFIFO Full</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFF</name>
                <enumeratedValue>
                  <name>NotFull</name>
                  <description>RXFIFO not full.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Full</name>
                  <description>RXFIFO Full.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXFE</name>
              <description>TXFIFO Empty</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFE</name>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>TXFIFO not empty.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>TXFIFO empty.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>REACK</name>
              <description>REACK</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TEACK</name>
              <description>TEACK</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUF</name>
              <description>WUF</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RWU</name>
              <description>RWU</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RWU</name>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Receiver in Active mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mute</name>
                  <description>Receiver in Mute mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBKF</name>
              <description>SBKF</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SBKF</name>
                <enumeratedValue>
                  <name>NoBreak</name>
                  <description>No break character transmitted</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Break</name>
                  <description>Break character transmitted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMF</name>
              <description>CMF</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMF</name>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No Character match detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>Character match detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BUSY</name>
              <description>BUSY</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BUSY</name>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>USART is idle (no reception)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>Reception on going</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABRF</name>
              <description>ABRF</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ABRE</name>
              <description>ABRE</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>UDR</name>
              <description>SPI slave underrun error
              flag</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDR</name>
                <enumeratedValue>
                  <name>NoUnderrun</name>
                  <description>No underrun error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Underrun</name>
                  <description>underrun error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOBF</name>
              <description>EOBF</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOBF</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>End of Block not reached</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>End of Block (number of characters) reached</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTOF</name>
              <description>RTOF</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTOF</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>Timeout value not reached</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>Timeout value reached without any data reception</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTS</name>
              <description>CTS</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTS</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>CTS line set</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>CTS line reset</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSIF</name>
              <description>CTSIF</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSIF</name>
                <enumeratedValue>
                  <name>NotChanged</name>
                  <description>No change occurred on the CTS status line</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Changed</name>
                  <description>A change occurred on the CTS status line</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBDF</name>
              <description>LBDF</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LBDF</name>
                <enumeratedValue>
                  <name>NotDetected</name>
                  <description>LIN break not detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Detected</name>
                  <description>LIN break detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXE</name>
              <description>TXE</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXE</name>
                <enumeratedValue>
                  <name>Full</name>
                  <description>Transmit FIFO is full</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotFull</name>
                  <description>Transmit FIFO is not full</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TC</name>
              <description>TC</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TC</name>
                <enumeratedValue>
                  <name>TxNotComplete</name>
                  <description>Transmission is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TxComplete</name>
                  <description>Transmission is complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNE</name>
              <description>RXNE</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXNE</name>
                <enumeratedValue>
                  <name>NoData</name>
                  <description>Data is not received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DataReady</name>
                  <description>Received data is ready to be read</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLE</name>
              <description>IDLE</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IDLE</name>
                <enumeratedValue>
                  <name>NoIdle</name>
                  <description>No Idle Line is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>Idle Line is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ORE</name>
              <description>ORE</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ORE</name>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No Overrun error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>Overrun error is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NF</name>
              <description>NF</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NF</name>
                <enumeratedValue>
                  <name>NoNoise</name>
                  <description>No noise is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Noise</name>
                  <description>Noise is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FE</name>
              <description>FE</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No Framing error is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Framing error or break character is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PE</name>
              <description>PE</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No parity error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Parity error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>Interrupt flag clear register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WUCF</name>
              <description>Wakeup from Stop mode clear
              flag</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>WUCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the WUF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMCF</name>
              <description>Character match clear flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CMCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the CMF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDRCF</name>
              <description>SPI slave underrun clear
              flag</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UDRCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the UDR flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOBCF</name>
              <description>End of block clear flag</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOBCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the EOBF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTOCF</name>
              <description>Receiver timeout clear
              flag</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>RTOCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the RTOF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSCF</name>
              <description>CTS clear flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CTSCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the CTSIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBDCF</name>
              <description>LIN break detection clear
              flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>LBDCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the LBDF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCBGTCF</name>
              <description>Transmission complete before Guard time
              clear flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TCBGTCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the TCBGT flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCCF</name>
              <description>Transmission complete clear
              flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TCCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TC flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXFECF</name>
              <description>TXFIFO empty clear flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TXFECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the TXFE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLECF</name>
              <description>Idle line detected clear
              flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>IDLECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the IDLE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ORECF</name>
              <description>Overrun error clear flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ORECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ORE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NCF</name>
              <description>Noise detected clear flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>NCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the NF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FECF</name>
              <description>Framing error clear flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>FECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the FE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECF</name>
              <description>Parity error clear flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>PECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the PE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>RDR</name>
          <displayName>RDR</displayName>
          <description>Receive data register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RDR</name>
              <description>Receive data value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TDR</name>
          <displayName>TDR</displayName>
          <description>Transmit data register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDR</name>
              <description>Transmit data value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PRESC</name>
          <displayName>PRESC</displayName>
          <description>Prescaler register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PRESCALER</name>
              <description>Clock prescaler</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>PRESCALER</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Input clock divided by 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Input clock divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Input clock divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div6</name>
                  <description>Input clock divided by 6</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Input clock divided by 8</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div10</name>
                  <description>Input clock divided by 10</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div12</name>
                  <description>Input clock divided by 12</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Input clock divided by 16</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>Input clock divided by 32</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>Input clock divided by 64</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>Input clock divided by 128</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>Input clock divided by 256</description>
                  <value>11</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="USART1">
      <name>USART2</name>
      <baseAddress>0x40004400</baseAddress>
      <interrupt>
        <name>USART2</name>
        <description>USART2 global interrupt</description>
        <value>28</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>SPI1</name>
      <description>Serial peripheral interface/Inter-IC
      sound</description>
      <groupName>SPI</groupName>
      <baseAddress>0x40013000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>SPI1</name>
        <description>SPI1 global interrupt</description>
        <value>25</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BIDIMODE</name>
              <description>Bidirectional data mode
              enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIDIMODE</name>
                <enumeratedValue>
                  <name>Unidirectional</name>
                  <description>2-line unidirectional data mode selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bidirectional</name>
                  <description>1-line bidirectional data mode selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIDIOE</name>
              <description>Output enable in bidirectional
              mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIDIOE</name>
                <enumeratedValue>
                  <name>OutputDisabled</name>
                  <description>Output disabled (receive-only mode)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OutputEnabled</name>
                  <description>Output enabled (transmit-only mode)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRCEN</name>
              <description>Hardware CRC calculation
              enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CRCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CRC calculation disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CRC calculation enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRCNEXT</name>
              <description>CRC transfer next</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CRCNEXT</name>
                <enumeratedValue>
                  <name>TxBuffer</name>
                  <description>Next transmit value is from Tx buffer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CRC</name>
                  <description>Next transmit value is from Tx CRC register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRCL</name>
              <description>CRC length</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CRCL</name>
                <enumeratedValue>
                  <name>EightBit</name>
                  <description>8-bit CRC length</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SixteenBit</name>
                  <description>16-bit CRC length</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXONLY</name>
              <description>Receive only</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXONLY</name>
                <enumeratedValue>
                  <name>FullDuplex</name>
                  <description>Full duplex (Transmit and receive)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OutputDisabled</name>
                  <description>Output disabled (Receive-only mode)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSM</name>
              <description>Software slave management</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SSM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Software slave management disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Software slave management enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSI</name>
              <description>Internal slave select</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SSI</name>
                <enumeratedValue>
                  <name>SlaveSelected</name>
                  <description>0 is forced onto the NSS pin and the I/O value of the NSS pin is ignored</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SlaveNotSelected</name>
                  <description>1 is forced onto the NSS pin and the I/O value of the NSS pin is ignored</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSBFIRST</name>
              <description>Frame format</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSBFIRST</name>
                <enumeratedValue>
                  <name>MSBFirst</name>
                  <description>Data is transmitted/received with the MSB first</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSBFirst</name>
                  <description>Data is transmitted/received with the LSB first</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPE</name>
              <description>SPI enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BR</name>
              <description>Baud rate control</description>
              <bitOffset>3</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>BR</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>f_PCLK / 2</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>f_PCLK / 4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>f_PCLK / 8</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>f_PCLK / 16</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>f_PCLK / 32</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>f_PCLK / 64</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>f_PCLK / 128</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>f_PCLK / 256</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSTR</name>
              <description>Master selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSTR</name>
                <enumeratedValue>
                  <name>Slave</name>
                  <description>Slave configuration</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Master</name>
                  <description>Master configuration</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPOL</name>
              <description>Clock polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CPOL</name>
                <enumeratedValue>
                  <name>IdleLow</name>
                  <description>CK to 0 when idle</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleHigh</name>
                  <description>CK to 1 when idle</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPHA</name>
              <description>Clock phase</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CPHA</name>
                <enumeratedValue>
                  <name>FirstEdge</name>
                  <description>The first clock transition is the first data capture edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SecondEdge</name>
                  <description>The second clock transition is the first data capture edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RXDMAEN</name>
              <description>Rx buffer DMA enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Rx buffer DMA disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Rx buffer DMA enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXDMAEN</name>
              <description>Tx buffer DMA enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Tx buffer DMA disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Tx buffer DMA enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSOE</name>
              <description>SS output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SSOE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>SS output is disabled in master mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>SS output is enabled in master mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NSSP</name>
              <description>NSS pulse management</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NSSP</name>
                <enumeratedValue>
                  <name>NoPulse</name>
                  <description>No NSS pulse</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PulseGenerated</name>
                  <description>NSS pulse generated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRF</name>
              <description>Frame format</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FRF</name>
                <enumeratedValue>
                  <name>Motorola</name>
                  <description>SPI Motorola mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI</name>
                  <description>SPI TI mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Error interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ERRIE</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>Error interrupt masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotMasked</name>
                  <description>Error interrupt not masked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNEIE</name>
              <description>RX buffer not empty interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXNEIE</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>RXE interrupt masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotMasked</name>
                  <description>RXE interrupt not masked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXEIE</name>
              <description>Tx buffer empty interrupt
              enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXEIE</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>TXE interrupt masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotMasked</name>
                  <description>TXE interrupt not masked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DS</name>
              <description>Data size</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>DS</name>
                <enumeratedValue>
                  <name>FourBit</name>
                  <description>4-bit</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FiveBit</name>
                  <description>5-bit</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SixBit</name>
                  <description>6-bit</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SevenBit</name>
                  <description>7-bit</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightBit</name>
                  <description>8-bit</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NineBit</name>
                  <description>9-bit</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TenBit</name>
                  <description>10-bit</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ElevenBit</name>
                  <description>11-bit</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwelveBit</name>
                  <description>12-bit</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThirteenBit</name>
                  <description>13-bit</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourteenBit</name>
                  <description>14-bit</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FifteenBit</name>
                  <description>15-bit</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SixteenBit</name>
                  <description>16-bit</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRXTH</name>
              <description>FIFO reception threshold</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FRXTH</name>
                <enumeratedValue>
                  <name>Half</name>
                  <description>RXNE event is generated if the FIFO level is greater than or equal to 1/2 (16-bit)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Quarter</name>
                  <description>RXNE event is generated if the FIFO level is greater than or equal to 1/4 (8-bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LDMA_RX</name>
              <description>Last DMA transfer for
              reception</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LDMA_RX</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Number of data to transfer for receive is even</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Number of data to transfer for receive is odd</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LDMA_TX</name>
              <description>Last DMA transfer for
              transmission</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LDMA_TX</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Number of data to transfer for transmit is even</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Number of data to transfer for transmit is odd</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000002</resetValue>
          <fields>
            <field>
              <name>RXNE</name>
              <description>Receive buffer not empty</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXNE</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Rx buffer empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>Rx buffer not empty</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXE</name>
              <description>Transmit buffer empty</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXE</name>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>Tx buffer not empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Tx buffer empty</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CHSIDE</name>
              <description>Channel side</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>CHSIDE</name>
                <enumeratedValue>
                  <name>Left</name>
                  <description>Channel left has to be transmitted or has been received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Right</name>
                  <description>Channel right has to be transmitted or has been received</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDR</name>
              <description>Underrun flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>UDRR</name>
                <enumeratedValue>
                  <name>NoUnderrun</name>
                  <description>No underrun occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Underrun</name>
                  <description>Underrun occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRCERR</name>
              <description>CRC error flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CRCERRR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Match</name>
                  <description>CRC value received matches the SPIx_RXCRCR value</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>CRC value received does not match the SPIx_RXCRCR value</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CRCERRW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MODF</name>
              <description>Mode fault</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>MODFR</name>
                <enumeratedValue>
                  <name>NoFault</name>
                  <description>No mode fault occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Fault</name>
                  <description>Mode fault occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVR</name>
              <description>Overrun flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OVRR</name>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No overrun occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>Overrun occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BSY</name>
              <description>Busy flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>BSYR</name>
                <enumeratedValue>
                  <name>NotBusy</name>
                  <description>SPI not busy</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>SPI busy</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRE</name>
              <description>Frame format error</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FRER</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No frame format error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>A frame format error occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRLVL</name>
              <description>FIFO reception level</description>
              <bitOffset>9</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FRLVLR</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Rx FIFO Empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Quarter</name>
                  <description>Rx 1/4 FIFO</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Half</name>
                  <description>Rx 1/2 FIFO</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Full</name>
                  <description>Rx FIFO full</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FTLVL</name>
              <description>FIFO transmission level</description>
              <bitOffset>11</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FTLVLR</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Tx FIFO Empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Quarter</name>
                  <description>Tx 1/4 FIFO</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Half</name>
                  <description>Tx 1/2 FIFO</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Full</name>
                  <description>Tx FIFO full</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>data register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DR</name>
              <description>Data register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DR8</name>
          <description>Direct 8-bit access to data register</description>
          <alternateRegister>DR</alternateRegister>
          <addressOffset>0xC</addressOffset>
          <size>0x8</size>
          <access>read-write</access>
          <fields>
            <field>
              <name>DR</name>
              <description>Data register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CRCPR</name>
          <displayName>CRCPR</displayName>
          <description>CRC polynomial register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000007</resetValue>
          <fields>
            <field>
              <name>CRCPOLY</name>
              <description>CRC polynomial register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RXCRCR</name>
          <displayName>RXCRCR</displayName>
          <description>RX CRC register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RxCRC</name>
              <description>Rx CRC register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TXCRCR</name>
          <displayName>TXCRCR</displayName>
          <description>TX CRC register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x10</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TxCRC</name>
              <description>Tx CRC register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>I2SCFGR</name>
          <displayName>I2SCFGR</displayName>
          <description>configuration register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CHLEN</name>
              <description>Channel length (number of bits per audio
              channel)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CHLEN</name>
                <enumeratedValue>
                  <name>SixteenBit</name>
                  <description>16-bit wide</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThirtyTwoBit</name>
                  <description>32-bit wide</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DATLEN</name>
              <description>Data length to be
              transferred</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>DATLEN</name>
                <enumeratedValue>
                  <name>SixteenBit</name>
                  <description>16-bit data length</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwentyFourBit</name>
                  <description>24-bit data length</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThirtyTwoBit</name>
                  <description>32-bit data length</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKPOL</name>
              <description>Inactive state clock
              polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CKPOL</name>
                <enumeratedValue>
                  <name>IdleLow</name>
                  <description>I2S clock inactive state is low level</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleHigh</name>
                  <description>I2S clock inactive state is high level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SSTD</name>
              <description>standard selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>I2SSTD</name>
                <enumeratedValue>
                  <name>Philips</name>
                  <description>I2S Philips standard</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MSB</name>
                  <description>MSB justified standard</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSB</name>
                  <description>LSB justified standard</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PCM</name>
                  <description>PCM standard</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PCMSYNC</name>
              <description>PCM frame synchronization</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PCMSYNC</name>
                <enumeratedValue>
                  <name>Short</name>
                  <description>Short frame synchronisation</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Long</name>
                  <description>Long frame synchronisation</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SCFG</name>
              <description>I2S configuration mode</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>I2SCFG</name>
                <enumeratedValue>
                  <name>SlaveTx</name>
                  <description>Slave - transmit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SlaveRx</name>
                  <description>Slave - receive</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MasterTx</name>
                  <description>Master - transmit</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MasterRx</name>
                  <description>Master - receive</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SE</name>
              <description>I2S enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2SE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>I2S peripheral is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>I2S peripheral is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SMOD</name>
              <description>I2S mode selection</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2SMOD</name>
                <enumeratedValue>
                  <name>SPIMode</name>
                  <description>SPI mode is selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>I2SMode</name>
                  <description>I2S mode is selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>I2SPR</name>
          <displayName>I2SPR</displayName>
          <description>prescaler register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>I2SDIV</name>
              <description>linear prescaler</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>2</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ODD</name>
              <description>Odd factor for the
              prescaler</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ODD</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Real divider value is I2SDIV * 2</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Real divider value is (I2SDIV * 2) + 1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MCKOE</name>
              <description>Master clock output enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MCKOE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Master clock output is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Master clock output is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="SPI1">
      <name>SPI2</name>
      <baseAddress>0x40003800</baseAddress>
      <interrupt>
        <name>SPI2</name>
        <description>SPI2 global interrupt</description>
        <value>26</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>TIM1</name>
      <description>Advanced-timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40012C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM1_BRK_UP_TRG_COM</name>
        <description>TIM1 break, update, trigger</description>
        <value>13</value>
      </interrupt>
      <interrupt>
        <name>TIM1_CC</name>
        <description>TIM1 Capture Compare interrupt</description>
        <value>14</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DIR</name>
              <description>Direction</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DIR</name>
                <enumeratedValue>
                  <name>Up</name>
                  <description>Counter used as upcounter</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Down</name>
                  <description>Counter used as downcounter</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMS</name>
              <description>Center-aligned mode
              selection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CMS</name>
                <enumeratedValue>
                  <name>EdgeAligned</name>
                  <description>The counter counts up or down depending on the direction bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned1</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting down.</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned2</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting up.</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned3</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set both when the counter is counting up or down.</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MMS2</name>
              <description>Master mode selection 2</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <dim>6</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>1-6</dimIndex>
              <name>OIS%s</name>
              <description>Output Idle state (OC%s output)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCx=0 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCx=1 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>3</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>1-3</dimIndex>
              <name>OIS%sN</name>
              <description>Output Idle state (OC%sN output)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1N</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCxN=0 after a dead-time when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCxN=1 after a dead-time when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TI1S</name>
              <description>TI1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TI1S</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>The TIMx_CH1 pin is connected to TI1 input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>XOR</name>
                  <description>The TIMx_CH1, CH2, CH3 pins are connected to TI1 input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MMS</name>
              <description>Master mode selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>CCDS</name>
              <description>Capture/compare DMA
              selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCDS</name>
                <enumeratedValue>
                  <name>OnCompare</name>
                  <description>CCx DMA request sent when CCx event occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OnUpdate</name>
                  <description>CCx DMA request sent when update event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCUS</name>
              <description>Capture/compare control update
              selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCUS</name>
                <enumeratedValue>
                  <name>Sw</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SwOrEdge</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit or when an rising edge occurs on TRGI</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCPC</name>
              <description>Capture/compare preloaded
              control</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCPC</name>
                <enumeratedValue>
                  <name>NotPreloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are not preloaded</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Preloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are preloaded</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SMCR</name>
          <displayName>SMCR</displayName>
          <description>slave mode control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SMS</name>
              <description>Slave mode selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>OCCS</name>
              <description>OCREF clear selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TS</name>
              <description>Trigger selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/Slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSM</name>
                <enumeratedValue>
                  <name>NoSync</name>
                  <description>No action</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sync</name>
                  <description>The effect of an event on the trigger input (TRGI) is delayed to allow a perfect synchronization between the current timer and its slaves (through TRGO). It is useful if we want to synchronize several timers on a single external event.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETF</name>
              <description>External trigger filter</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ETF</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETPS</name>
              <description>External trigger prescaler</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ETPS</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Prescaler OFF</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>ETRP frequency divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>ETRP frequency divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>ETRP frequency divided by 8</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ECE</name>
              <description>External clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ECE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>External clock mode 2 disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF signal.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETP</name>
              <description>External trigger polarity</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ETP</name>
                <enumeratedValue>
                  <name>NotInverted</name>
                  <description>ETR is noninverted, active at high level or rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>ETR is inverted, active at low level or falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SMS_3</name>
              <description>Slave mode selection - bit
              3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TS2</name>
              <description>Trigger selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIE</name>
              <description>COM interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>COM interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>COM interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIE</name>
              <description>Break interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1DE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMDE</name>
              <description>COM DMA request enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>COM DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>COM DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TDE</name>
              <description>Trigger DMA request enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIF</name>
              <description>COM interrupt flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>COMIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoCOM</name>
                  <description>No COM event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>COM</name>
                  <description>COM interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>COMIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIF</name>
              <description>Trigger interrupt flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No trigger event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>Trigger interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIF</name>
              <description>Break interrupt flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>BIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No break event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>An active level has been detected on the break input. An interrupt is generated if BIE=1 in the TIMx_DIER register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>BIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>B2IF</name>
              <description>Break 2 interrupt flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>B2IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No break event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>An active level has been detected on the break 2 input. An interrupt is generated if BIE=1 in the TIMx_DIER register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>B2IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBIF</name>
              <description>System Break interrupt
              flag</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>SBIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No break event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>An active level has been detected on the system break input. An interrupt is generated if BIE=1 in the TIMx_DIER register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>SBIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC5IF</name>
              <description>Compare 5 interrupt flag</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="CC1IFR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="CC1IFW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>CC6IF</name>
              <description>Compare 6 interrupt flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="CC1IFR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="CC1IFW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMG</name>
              <description>Capture/Compare control update
              generation</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>When CCPC bit is set, it allows CCxE, CCxNE and OCxM bits to be updated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TG</name>
              <description>Trigger generation</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>The TIF flag is set in TIMx_SR register. Related interrupt or DMA transfer can occur if enabled.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BG</name>
              <description>Break generation</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>A break event is generated. MOE bit is cleared and BIF flag is set. Related interrupt or DMA transfer can occur if enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>B2G</name>
              <description>Break 2 generation</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>B2GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>A break 2 event is generated. MOE bit is cleared and B2IF flag is set. Related interrupt can occur if enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>capture/compare mode register 1 (output
          mode)</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs / OpmMode1: Retriggerable OPM mode 1 - In up-counting mode, the channel is active until a trigger event is detected (on TRGI signal). In down-counting mode, the channel is inactive</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register / OpmMode2: Inversely to OpmMode1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register / Reserved</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy / Reserved</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low / CombinedPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC is the logical OR between OC1REF and OC2REF</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high / CombinedPwmMode2: OCyREF has the same behavior as in PWM mode 2. OCyREFC is the logical AND between OC1REF and OC2REF</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active / AsymmetricPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC outputs OC1REF when the counter is counting up, OC2REF when it is counting down</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1 / AsymmetricPwmMode2: Inversely to AsymmetricPwmMode1</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ETRF signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ETRF signal</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1M_3</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal output compare mode (modes 0-7)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Extended</name>
                  <description>Extended output compare mode (modes 7-15)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>capture/compare mode register 1 (output
          mode)</description>
          <alternateRegister>CCMR1_Output</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC2S</name>
              <description>Capture/Compare 2
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC2S</name>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI1</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR2_Output</name>
          <displayName>CCMR2_Output</displayName>
          <description>capture/compare mode register 2 (output
          mode)</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="TIM1.CCMR1_Output.CC%sS">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sFE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sPE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sM">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sCE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sM_3">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR2_Input</name>
          <displayName>CCMR2_Input</displayName>
          <description>capture/compare mode register 2 (output
          mode)</description>
          <alternateRegister>CCMR2_Output</alternateRegister>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CC3S</name>
              <description>Capture/Compare 3
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC3S</name>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI3</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC4S</name>
              <description>Capture/Compare 4
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC4S</name>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI3</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field derivedFrom="TIM1.CCMR1_Input.IC%sPSC">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Input.IC%sF">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>capture/compare enable
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>6</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-6</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>6</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-6</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>3</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-3</dimIndex>
              <name>CC%sNE</name>
              <description>Capture/Compare %s complementary output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Complementary output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Complementary output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NP</name>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>OCxN active high</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>OCxN active low</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>UIFCPY</name>
              <description>UIF copy</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT16</name>
          <displayName>CNT16</displayName>
          <description>16-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RCR</name>
          <displayName>RCR</displayName>
          <description>repetition counter register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>REP</name>
              <description>Repetition counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>BDTR</name>
          <displayName>BDTR</displayName>
          <description>break and dead-time register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DTG</name>
              <description>Dead-time generator setup</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock configuration</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>LOCK</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>No bit is write protected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level1</name>
                  <description>Any bits except MOE, OSSR, OSSI and LOCK in TIMx_BDTR register, OISx and OISxN bits in TIMx_CR2 register can no longer be written</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level2</name>
                  <description>LOCK Level 1 + CC Polarity bits (CCxP/CCxNP bits in TIMx_CCER register, as long as the related channel is configured in output through the CCxS bits) as well as OSSR and OSSI bits can no longer be written</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level3</name>
                  <description>LOCK Level 2 + CC Control bits (OCxM and OCxPE bits in TIMx_CCMRx registers, as long as the related channel is configured in output through the CCxS bits) can no longer be written</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSI</name>
              <description>Off-state selection for Idle
              mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSI</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are forced to idle level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSR</name>
              <description>Off-state selection for Run
              mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSR</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are enabled with their inactive level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKE</name>
              <description>Break enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break function x disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break function x enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKP</name>
              <description>Break polarity</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKP</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Break input BRKx is active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>Break input BRKx is active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AOE</name>
              <description>Automatic output enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AOE</name>
                <enumeratedValue>
                  <name>Manual</name>
                  <description>MOE can be set only by software</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Automatic</name>
                  <description>MOE can be set by software or automatically at the next update event (if none of the break inputs BRK and BRK2 is active)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MOE</name>
              <description>Main output enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MOE</name>
                <enumeratedValue>
                  <name>DisabledIdle</name>
                  <description>OC/OCN are disabled or forced idle depending on OSSI</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OC/OCN are enabled if CCxE/CCxNE are set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKF</name>
              <description>Break filter</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>BK2F</name>
              <description>Break 2 filter</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>BK2E</name>
              <description>Break 2 enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="BKE"/>
            </field>
            <field>
              <name>BK2P</name>
              <description>Break 2 polarity</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="BKP"/>
            </field>
            <field>
              <name>BKDSRM</name>
              <description>Break Disarm</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BK2DSRM</name>
              <description>Break2 Disarm</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKBID</name>
              <description>Break Bidirectional</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BK2ID</name>
              <description>Break2 bidirectional</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>DMA control register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBL</name>
              <description>DMA burst length</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBA</name>
              <description>DMA base address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>DMA address for full transfer</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst
              accesses</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>OR1</name>
          <displayName>OR1</displayName>
          <description>option register 1</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>OCREF_CLR</name>
              <description>Ocref_clr source selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR3_Output</name>
          <displayName>CCMR3_Output</displayName>
          <description>capture/compare mode register 2 (output
          mode)</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sM_3">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sCE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sM">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sPE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sFE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR5</name>
          <displayName>CCR5</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>GC5C1</name>
              <description>Group Channel 5 and Channel
              1</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>GC5C2</name>
              <description>Group Channel 5 and Channel
              2</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>GC5C3</name>
              <description>Group Channel 5 and Channel
              3</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR6</name>
          <displayName>CCR6</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>AF1</name>
          <displayName>AF1</displayName>
          <description>DMA address for full transfer</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000001</resetValue>
          <fields>
            <field>
              <name>BKINE</name>
              <description>BRK BKIN input enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKCMP1E</name>
              <description>BRK COMP1 enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKCMP2E</name>
              <description>BRK COMP2 enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKINP</name>
              <description>BRK BKIN input polarity</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKCMP1P</name>
              <description>BRK COMP1 input polarity</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BKCMP2P</name>
              <description>BRK COMP2 input polarity</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ETRSEL</name>
              <description>ETR source selection</description>
              <bitOffset>14</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>AF2</name>
          <displayName>AF2</displayName>
          <description>DMA address for full transfer</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000001</resetValue>
          <fields>
            <field>
              <name>BK2INE</name>
              <description>BRK2 BKIN input enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BK2CMP1E</name>
              <description>BRK2 COMP1 enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BK2CMP2E</name>
              <description>BRK2 COMP2 enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BK2DFBK0E</name>
              <description>BRK2 DFSDM_BREAK0 enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BK2INP</name>
              <description>BRK2 BKIN input polarity</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BK2CMP1P</name>
              <description>BRK2 COMP1 input polarity</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>BK2CMP2P</name>
              <description>BRK2 COMP2 input polarity</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM1 timer input selection
          register</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TI1SEL3_0</name>
              <description>selects TI1[0] to TI1[15]
              input</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>TI2SEL3_0</name>
              <description>selects TI2[0] to TI2[15]
              input</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>TI3SEL3_0</name>
              <description>selects TI3[0] to TI3[15]
              input</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>TI4SEL3_0</name>
              <description>selects TI4[0] to TI4[15]
              input</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>ADC</name>
      <description>Analog to Digital Converter instance
      1</description>
      <groupName>ADC</groupName>
      <baseAddress>0x40012400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>ADC_COMP</name>
        <description>ADC and COMP interrupts</description>
        <value>12</value>
      </interrupt>
      <registers>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>ADC interrupt and status
          register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCRDY</name>
              <description>Channel Configuration Ready
              flag</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CCRDYR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Channel configuration update not applied</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Channel configuration update is applied</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CCRDYW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the channel configuration flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOCAL</name>
              <description>End Of Calibration flag</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOCALR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Calibration is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Calibration complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EOCALW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the calibration flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>3</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-3</dimIndex>
              <name>AWD%s</name>
              <description>Analog watchdog %s flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>AWD1R</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoEvent</name>
                  <description>No analog watchdog event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Event</name>
                  <description>Analog watchdog event occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>AWD1W</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the analog watchdog event flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVR</name>
              <description>ADC group regular overrun
              flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>OVRR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No overrun occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>Overrun occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>OVRW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the overrun flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOS</name>
              <description>ADC group regular end of sequence
              conversions flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOSR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Conversion sequence is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Conversion sequence complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EOSW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the conversion sequence flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOC</name>
              <description>ADC group regular end of unitary
              conversion flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOCR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Channel conversion is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Channel conversion complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EOCW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the channel conversion flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOSMP</name>
              <description>ADC group regular end of sampling
              flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOSMPR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotAtEnd</name>
                  <description>Not at the end of the samplings phase</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AtEnd</name>
                  <description>End of sampling phase reached</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EOSMPW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the sampling phase flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADRDY</name>
              <description>ADC ready flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ADRDYR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>ADC not yet ready to start conversion</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>ADC ready to start conversion</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADRDYW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear the ADC ready flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>ADC interrupt enable register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCRDYIE</name>
              <description>Channel Configuration Ready Interrupt
              enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCRDYIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Channel configuration ready interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Channel configuration ready interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOCALIE</name>
              <description>End of calibration interrupt
              enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOCALIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>End of calibration interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>End of calibration interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>3</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-3</dimIndex>
              <name>AWD%sIE</name>
              <description>Analog watchdog %s interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Analog watchdog interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Analog watchdog interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRIE</name>
              <description>ADC group regular overrun
              interrupt</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Overrun interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Overrun interrupt enabled. An interrupt is generated when the OVR bit is set.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOSIE</name>
              <description>ADC group regular end of sequence
              conversions interrupt</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOSIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>EOS interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>EOS interrupt enabled. An interrupt is generated when the EOS bit is set.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOCIE</name>
              <description>ADC group regular end of unitary
              conversion interrupt</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOCIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>EOC interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>EOC interrupt enabled. An interrupt is generated when the EOC bit is set.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOSMPIE</name>
              <description>ADC group regular end of sampling
              interrupt</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOSMPIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>EOSMP interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>EOSMP interrupt enabled. An interrupt is generated when the EOSMP bit is set.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADRDYIE</name>
              <description>ADC ready interrupt</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADRDYIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ADRDY interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ADRDY interrupt enabled. An interrupt is generated when the ADRDY bit is set.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>ADC control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ADCAL</name>
              <description>ADC calibration</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADCALR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotCalibrating</name>
                  <description>ADC calibration either not yet performed or completed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Calibrating</name>
                  <description>ADC calibration in progress</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADCALW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>StartCalibration</name>
                  <description>Start the ADC calibration sequence</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADVREGEN</name>
              <description>ADC voltage regulator
              enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADVREGEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ADC voltage regulator disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ADC voltage regulator enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADSTP</name>
              <description>ADC group regular conversion
              stop</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADSTPR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotStopping</name>
                  <description>No stop command active</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stopping</name>
                  <description>ADC stopping conversion</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADSTPW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>StopConversion</name>
                  <description>Stop the active conversion</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADSTART</name>
              <description>ADC group regular conversion
              start</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADSTARTR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotActive</name>
                  <description>No conversion ongoing</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>ADC operating and may be converting</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADSTARTW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>StartConversion</name>
                  <description>Start the ADC conversion (may be delayed for hardware triggers)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDIS</name>
              <description>ADC disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADDISR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotDisabling</name>
                  <description>No disable command active</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabling</name>
                  <description>ADC disabling</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADDISW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Disable</name>
                  <description>Disable the ADC</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADEN</name>
              <description>ADC enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADENR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ADC disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ADC enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADENW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enable the ADC</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR1</name>
          <displayName>CFGR1</displayName>
          <description>ADC configuration register 1</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>AWD1CH</name>
              <description>ADC analog watchdog 1 monitored channel
              selection</description>
              <bitOffset>26</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>17</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>AWD1EN</name>
              <description>ADC analog watchdog 1 enable on scope
              ADC group regular</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Analog watchdog 1 disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Analog watchdog 1 enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AWD1SGL</name>
              <description>ADC analog watchdog 1 monitoring a
              single channel or all channels</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD1SGL</name>
                <enumeratedValue>
                  <name>AllChannels</name>
                  <description>Analog watchdog 1 enabled on all channels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SingleChannel</name>
                  <description>Analog watchdog 1 enabled on a single channel</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CHSELRMOD</name>
              <description>Mode selection of the ADC_CHSELR
              register</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CHSELRMOD</name>
                <enumeratedValue>
                  <name>BitPerInput</name>
                  <description>Each bit of the ADC_CHSELR register enables an input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sequence</name>
                  <description>ADC_CHSELR register is able to sequence up to 8 channels</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DISCEN</name>
              <description>ADC group regular sequencer
              discontinuous mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DISCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Discontinuous mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Discontinuous mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AUTOFF</name>
              <description>Auto-off mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AUTOFF</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Auto-off mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Auto-off mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAIT</name>
              <description>Wait conversion mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WAIT</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wait conversion mode off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wait conversion mode on</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CONT</name>
              <description>ADC group regular continuous conversion
              mode</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CONT</name>
                <enumeratedValue>
                  <name>Single</name>
                  <description>Single conversion mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Continuous</name>
                  <description>Continuous conversion mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRMOD</name>
              <description>ADC group regular overrun
              configuration</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVRMOD</name>
                <enumeratedValue>
                  <name>Preserve</name>
                  <description>ADC_DR register is preserved with the old data when an overrun is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overwrite</name>
                  <description>ADC_DR register is overwritten with the last conversion result when an overrun is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTEN</name>
              <description>ADC group regular external trigger
              polarity</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>EXTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Hardware trigger detection disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Hardware trigger detection on the rising edge</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Hardware trigger detection on the falling edge</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BothEdges</name>
                  <description>Hardware trigger detection on both the rising and falling edges</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTSEL</name>
              <description>ADC group regular external trigger
              source</description>
              <bitOffset>6</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>EXTSEL</name>
                <enumeratedValue>
                  <name>TIM1_TRGO2</name>
                  <description>Timer 1 TRGO 2 event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM1_CC4</name>
                  <description>Timer 1 CC4 event</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM2_TRGO</name>
                  <description>Timer 2 TRGO event</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3_TRGO</name>
                  <description>Timer 3 TRGO event</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM15_TRGO</name>
                  <description>Timer 15 TRGO event</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM6_TRGO</name>
                  <description>Timer 6 TRGO event</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM4_TRGO</name>
                  <description>Timer 4 TRGO event</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EXTI11</name>
                  <description>EXTI line 11 event</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ALIGN</name>
              <description>ADC data alignement</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALIGN</name>
                <enumeratedValue>
                  <name>Right</name>
                  <description>Right alignment</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Left</name>
                  <description>Left alignment</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RES</name>
              <description>ADC data resolution</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>RES</name>
                <enumeratedValue>
                  <name>Bits12</name>
                  <description>12 bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits10</name>
                  <description>10 bits</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits8</name>
                  <description>8 bits</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits6</name>
                  <description>6 bits</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SCANDIR</name>
              <description>Scan sequence direction</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SCANDIR</name>
                <enumeratedValue>
                  <name>Upward</name>
                  <description>Upward scan (from CHSEL0 to CHSEL17)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Backward</name>
                  <description>Backward scan (from CHSEL17 to CHSEL0)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMACFG</name>
              <description>ADC DMA transfer
              configuration</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMACFG</name>
                <enumeratedValue>
                  <name>OneShot</name>
                  <description>DMA one shot mode selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Circular</name>
                  <description>DMA circular mode selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAEN</name>
              <description>ADC DMA transfer enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR2</name>
          <displayName>CFGR2</displayName>
          <description>ADC configuration register 2</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CKMODE</name>
              <description>ADC clock mode</description>
              <bitOffset>30</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKMODE</name>
                <enumeratedValue>
                  <name>ADCLK</name>
                  <description>ADCCLK (Asynchronous clock mode)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PCLK_Div2</name>
                  <description>PCLK/2 (Synchronous clock mode)</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PCLK_Div4</name>
                  <description>PCLK/4 (Synchronous clock mode)</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PCLK</name>
                  <description>PCLK (Synchronous clock mode)</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LFTRIG</name>
              <description>Low frequency trigger mode
              enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LFTRIG</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Low Frequency Trigger Mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Low Frequency Trigger Mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TOVS</name>
              <description>ADC oversampling discontinuous mode
              (triggered mode) for ADC group regular</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TOVS</name>
                <enumeratedValue>
                  <name>TriggerAll</name>
                  <description>All oversampled conversions for a channel are done consecutively after a trigger</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TriggerEach</name>
                  <description>Each oversampled conversion for a channel needs a trigger</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVSS</name>
              <description>ADC oversampling shift</description>
              <bitOffset>5</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>OVSS</name>
                <enumeratedValue>
                  <name>NoShift</name>
                  <description>No shift</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Shift1</name>
                  <description>Shift 1-bit</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Shift2</name>
                  <description>Shift 2-bits</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Shift3</name>
                  <description>Shift 3-bits</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Shift4</name>
                  <description>Shift 4-bits</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Shift5</name>
                  <description>Shift 5-bits</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Shift6</name>
                  <description>Shift 6-bits</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Shift7</name>
                  <description>Shift 7-bits</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Shift8</name>
                  <description>Shift 8-bits</description>
                  <value>8</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVSR</name>
              <description>ADC oversampling ratio</description>
              <bitOffset>2</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OVSR</name>
                <enumeratedValue>
                  <name>Mul2</name>
                  <description>2x</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul4</name>
                  <description>4x</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul8</name>
                  <description>8x</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul16</name>
                  <description>16x</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul32</name>
                  <description>32x</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul64</name>
                  <description>64x</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul128</name>
                  <description>128x</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul256</name>
                  <description>256x</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVSE</name>
              <description>ADC oversampler enable on scope ADC
              group regular</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Oversampler disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Oversampler enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SMPR</name>
          <displayName>SMPR</displayName>
          <description>ADC sampling time register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>SMP%s</name>
              <description>Sampling time selection %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>SMP1</name>
                <enumeratedValue>
                  <name>Cycles1_5</name>
                  <description>1.5 ADC clock cycles</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles3_5</name>
                  <description>3.5 ADC clock cycles</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles7_5</name>
                  <description>7.5 ADC clock cycles</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles12_5</name>
                  <description>12.5 ADC clock cycles</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles19_5</name>
                  <description>19.5 ADC clock cycles</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles39_5</name>
                  <description>39.5 ADC clock cycles</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles79_5</name>
                  <description>79.5 ADC clock cycles</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles160_5</name>
                  <description>160.5 ADC clock cycles</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>19</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-18</dimIndex>
              <name>SMPSEL%s</name>
              <description>Channel-%s sampling time selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SMPSEL0</name>
                <enumeratedValue>
                  <name>Smp1</name>
                  <description>Sampling time of CHANNELx use the setting of SMP1 register</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Smp2</name>
                  <description>Sampling time of CHANNELx use the setting of SMP2 register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>AWD1TR</name>
          <displayName>AWD1TR</displayName>
          <description>watchdog threshold register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0FFF0000</resetValue>
          <fields>
            <field>
              <name>HT1</name>
              <description>ADC analog watchdog 1 threshold
              high</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LT1</name>
              <description>ADC analog watchdog 1 threshold
              low</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>AWD2TR</name>
          <displayName>AWD2TR</displayName>
          <description>watchdog threshold register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0FFF0000</resetValue>
          <fields>
            <field>
              <name>HT2</name>
              <description>ADC analog watchdog 2 threshold
              high</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LT2</name>
              <description>ADC analog watchdog 2 threshold
              low</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CHSELR0</name>
          <displayName>CHSELR</displayName>
          <description>channel selection register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0FFF0000</resetValue>
          <fields>
            <field>
              <dim>19</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-18</dimIndex>
              <name>CHSEL%s</name>
              <description>Channel-%s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CHSEL0</name>
                <enumeratedValue>
                  <name>NotSelected</name>
                  <description>Input Channel is not selected for conversion</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Selected</name>
                  <description>Input Channel is selected for conversion</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CHSELR1</name>
          <displayName>CHSELR_1</displayName>
          <description>channel selection register CHSELRMOD = 1 in
          ADC_CFGR1</description>
          <alternateRegister>CHSELR0</alternateRegister>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>SQ%s</name>
              <description>%s conversion of the sequence</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>SQ1</name>
                <enumeratedValue>
                  <name>Ch0</name>
                  <description>Channel 0 selected for the Nth conversion</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch1</name>
                  <description>Channel 1 selected for the Nth conversion</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch2</name>
                  <description>Channel 2 selected for the Nth conversion</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch3</name>
                  <description>Channel 3 selected for the Nth conversion</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch4</name>
                  <description>Channel 4 selected for the Nth conversion</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch5</name>
                  <description>Channel 5 selected for the Nth conversion</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch6</name>
                  <description>Channel 6 selected for the Nth conversion</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch7</name>
                  <description>Channel 7 selected for the Nth conversion</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch8</name>
                  <description>Channel 8 selected for the Nth conversion</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch9</name>
                  <description>Channel 9 selected for the Nth conversion</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch10</name>
                  <description>Channel 10 selected for the Nth conversion</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch11</name>
                  <description>Channel 11 selected for the Nth conversion</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch12</name>
                  <description>Channel 12 selected for the Nth conversion</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch13</name>
                  <description>Channel 13 selected for the Nth conversion</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ch14</name>
                  <description>Channel 14 selected for the Nth conversion</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EOS</name>
                  <description>End of sequence</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>AWD3TR</name>
          <displayName>AWD3TR</displayName>
          <description>watchdog threshold register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0FFF0000</resetValue>
          <fields>
            <field>
              <name>HT3</name>
              <description>ADC analog watchdog 3 threshold
              high</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LT3</name>
              <description>ADC analog watchdog 3 threshold
              high</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>ADC group regular conversion data
          register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DATA</name>
              <description>ADC group regular conversion
              data</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>AWD2CR</name>
          <displayName>AWD2CR</displayName>
          <description>ADC analog watchdog 2 configuration
          register</description>
          <addressOffset>0xA0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>19</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-18</dimIndex>
              <name>AWD2CH%s</name>
              <description>ADC analog watchdog 2 monitored channel
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD2CH0</name>
                <enumeratedValue>
                  <name>NotMonitored</name>
                  <description>ADC analog channel-x is not monitored by AWD2</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Monitored</name>
                  <description>ADC analog channel-x is monitored by AWD2</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>AWD3CR</name>
          <displayName>AWD3CR</displayName>
          <description>ADC analog watchdog 3 configuration
          register</description>
          <addressOffset>0xA4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>19</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-18</dimIndex>
              <name>AWD3CH%s</name>
              <description>ADC analog watchdog 3 monitored channel
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD3CH0</name>
                <enumeratedValue>
                  <name>NotMonitored</name>
                  <description>ADC analog channel-x is not monitored by AWD3</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Monitored</name>
                  <description>ADC analog channel-x is monitored by AWD3</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CALFACT</name>
          <displayName>CALFACT</displayName>
          <description>ADC calibration factors
          register</description>
          <addressOffset>0xB4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CALFACT</name>
              <description>ADC calibration factor in single-ended
              mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR</name>
          <displayName>CCR</displayName>
          <description>ADC common control register</description>
          <addressOffset>0x308</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PRESC</name>
              <description>ADC prescaler</description>
              <bitOffset>18</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>PRESC</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Input ADC clock not divided</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Input ADC clock divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Input ADC clock divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div6</name>
                  <description>Input ADC clock divided by 6</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Input ADC clock divided by 8</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div10</name>
                  <description>Input ADC clock divided by 10</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div12</name>
                  <description>Input ADC clock divided by 12</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Input ADC clock divided by 16</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>Input ADC clock divided by 32</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>Input ADC clock divided by 64</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>Input ADC clock divided by 128</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>Input ADC clock divided by 256</description>
                  <value>11</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VREFEN</name>
              <description>VREFINT enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>VREFEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected ADC channel disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected ADC channel enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSEN</name>
              <description>Temperature sensor enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="VREFEN"/>
            </field>
            <field>
              <name>VBATEN</name>
              <description>VBAT enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="VREFEN"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>SYSCFG</name>
      <description>System configuration controller</description>
      <groupName>SYSCFG</groupName>
      <baseAddress>0x40010000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x100</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CFGR1</name>
          <displayName>CFGR1</displayName>
          <description>SYSCFG configuration register
          1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>I2C_PBx_FMP</name>
              <description>Fast Mode Plus (FM+) driving capability
              activation bits</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C_PBx_FMP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Uses normal GPIO drive</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Uses I2C FastMode+ drive</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C3_FMP</name>
              <description>I2C3_FMP</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C_PBx_FMP"/>
            </field>
            <field>
              <name>I2C_PA10_FMP</name>
              <description>Fast Mode Plus (FM+) driving capability
              activation bits</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C_PBx_FMP"/>
            </field>
            <field>
              <name>I2C_PA9_FMP</name>
              <description>Fast Mode Plus (FM+) driving capability
              activation bits</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C_PBx_FMP"/>
            </field>
            <field>
              <name>I2C2_FMP</name>
              <description>FM+ driving capability activation for
              I2C2</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C_PBx_FMP"/>
            </field>
            <field>
              <name>I2C1_FMP</name>
              <description>FM+ driving capability activation for
              I2C1</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C_PBx_FMP"/>
            </field>
            <field>
              <name>I2C_PB9_FMP</name>
              <description>I2C_PB9_FMP</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C_PBx_FMP"/>
            </field>
            <field>
              <name>I2C_PB8_FMP</name>
              <description>I2C_PB8_FMP</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C_PBx_FMP"/>
            </field>
            <field>
              <name>I2C_PB7_FMP</name>
              <description>I2C_PB7_FMP</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C_PBx_FMP"/>
            </field>
            <field>
              <name>UCPD1_STROBE</name>
              <description>Strobe signal bit for
              UCPD1</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UCPD1_STROBE</name>
                <enumeratedValue>
                  <name>Disconnect</name>
                  <description>Disconnect the UCPD pull-down resistors</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UCPD2_STROBE</name>
              <description>Strobe signal bit for
              UCPD2</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="UCPD1_STROBE"/>
            </field>
            <field>
              <name>BOOSTEN</name>
              <description>I/O analog switch voltage booster
              enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BOOSTEN</name>
                <enumeratedValue>
                  <name>VDD</name>
                  <description>supply analog switches from VDD</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BOOST</name>
                  <description>supply analog switches from dedicated voltage booster</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IR_MOD</name>
              <description>IR Modulation Envelope signal
              selection.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>IR_MOD</name>
                <enumeratedValue>
                  <name>TIM16</name>
                  <description>IR modulation envelope from TIM16</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>USART1</name>
                  <description>IR modulation envelope from USART1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>USART2</name>
                  <description>IR modulation envelope from USART2</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IR_POL</name>
              <description>IR output polarity
              selection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IR_POL</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Output of IRTIM is not inverted</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>Output of IRTIM is inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PA12_RMP</name>
              <description>PA11 and PA12 remapping
              bit.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PA12_RMP</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>PA12 pin connected to PA12 GPIO</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Remap</name>
                  <description>PA12 pin connected to PA10 GPIO</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PA11_RMP</name>
              <description>PA11_RMP</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PA11_RMP</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>PA11 pin connected to PA11 GPIO</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Remap</name>
                  <description>PA11 pin connected to PA9 GPIO</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MEM_MODE</name>
              <description>Memory mapping selection
              bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>MEM_MODE</name>
                <enumeratedValue>
                  <name>MainFlash</name>
                  <description>Main flash memory mapped at zero address</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SystemFlash</name>
                  <description>System flash memory mapped at zero address</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SRAM</name>
                  <description>Embedded SRAM mapped at zero address</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR2</name>
          <displayName>CFGR2</displayName>
          <description>SYSCFG configuration register
          1</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LOCKUP_LOCK</name>
              <description>Cortex-M0+ LOCKUP bit enable
              bit</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LOCKUP_LOCK</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>error not connected to timers</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>error triggers TIM1/15/16/17 break input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SRAM_PARITY_LOCK</name>
              <description>SRAM parity lock bit</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LOCKUP_LOCK"/>
            </field>
            <field>
              <name>ECC_LOCK</name>
              <description>ECC error lock bit</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="LOCKUP_LOCK"/>
            </field>
            <field>
              <name>SRAM_PEF</name>
              <description>SRAM parity error flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SRAM_PEF</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>No SRAM parity error detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>SRAM parity error detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE0</name>
          <displayName>ITLINE0</displayName>
          <description>interrupt line 0 status
          register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WWDG</name>
              <description>Window watchdog interrupt pending
              flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WWDG</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE2</name>
          <displayName>ITLINE2</displayName>
          <description>interrupt line 2 status
          register</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TAMP</name>
              <description>TAMP</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMP</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTC</name>
              <description>RTC</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TAMP"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE3</name>
          <displayName>ITLINE3</displayName>
          <description>interrupt line 3 status
          register</description>
          <addressOffset>0x8C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>FLASH_ITF</name>
              <description>FLASH_ITF</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FLASH_ITF</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FLASH_ECC</name>
              <description>FLASH_ECC</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FLASH_ITF"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE4</name>
          <displayName>ITLINE4</displayName>
          <description>interrupt line 4 status
          register</description>
          <addressOffset>0x90</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RCC</name>
              <description>RCC</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RCC</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRS</name>
              <description>CRS</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RCC"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE5</name>
          <displayName>ITLINE5</displayName>
          <description>interrupt line 5 status
          register</description>
          <addressOffset>0x94</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EXTI0</name>
              <description>EXTI0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EXTI0</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTI1</name>
              <description>EXTI1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI0"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE6</name>
          <displayName>ITLINE6</displayName>
          <description>interrupt line 6 status
          register</description>
          <addressOffset>0x98</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EXTI2</name>
              <description>EXTI2</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EXTI2</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTI3</name>
              <description>EXTI3</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI2"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE7</name>
          <displayName>ITLINE7</displayName>
          <description>interrupt line 7 status
          register</description>
          <addressOffset>0x9C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EXTI4</name>
              <description>EXTI4</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EXTI4</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTI5</name>
              <description>EXTI5</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI6</name>
              <description>EXTI6</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI7</name>
              <description>EXTI7</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI8</name>
              <description>EXTI8</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI9</name>
              <description>EXTI9</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI10</name>
              <description>EXTI10</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI11</name>
              <description>EXTI11</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI12</name>
              <description>EXTI12</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI13</name>
              <description>EXTI13</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI14</name>
              <description>EXTI14</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
            <field>
              <name>EXTI15</name>
              <description>EXTI15</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EXTI4"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE8</name>
          <displayName>ITLINE8</displayName>
          <description>interrupt line 8 status
          register</description>
          <addressOffset>0xA0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UCPD1</name>
              <description>UCPD1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UCPD1</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UCPD2</name>
              <description>UCPD2</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="UCPD1"/>
            </field>
            <field>
              <name>USB</name>
              <description>USB</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="UCPD1"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE9</name>
          <displayName>ITLINE9</displayName>
          <description>interrupt line 9 status
          register</description>
          <addressOffset>0xA4</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMA1_CH1</name>
              <description>DMA1_CH1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMA1_CH1</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE10</name>
          <displayName>ITLINE10</displayName>
          <description>interrupt line 10 status
          register</description>
          <addressOffset>0xA8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMA1_CH2</name>
              <description>DMA1_CH1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMA1_CH2</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMA1_CH3</name>
              <description>DMA1_CH3</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1_CH2"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE11</name>
          <displayName>ITLINE11</displayName>
          <description>interrupt line 11 status
          register</description>
          <addressOffset>0xAC</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAMUX</name>
              <description>DMAMUX</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAMUX</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMA1_CH4</name>
              <description>DMA1_CH4</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMAMUX"/>
            </field>
            <field>
              <name>DMA1_CH5</name>
              <description>DMA1_CH5</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMAMUX"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE12</name>
          <displayName>ITLINE12</displayName>
          <description>interrupt line 12 status
          register</description>
          <addressOffset>0xB0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ADC</name>
              <description>ADC</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADC</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP1</name>
              <description>COMP1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="ADC"/>
            </field>
            <field>
              <name>COMP2</name>
              <description>COMP2</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="ADC"/>
            </field>
            <field>
              <name>COMP3</name>
              <description>COMP3</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="ADC"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE13</name>
          <displayName>ITLINE13</displayName>
          <description>interrupt line 13 status
          register</description>
          <addressOffset>0xB4</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM1_CCU</name>
              <description>TIM1_CCU</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM1_CCU</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM1_TRG</name>
              <description>TIM1_TRG</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM1_CCU"/>
            </field>
            <field>
              <name>TIM1_UPD</name>
              <description>TIM1_UPD</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM1_CCU"/>
            </field>
            <field>
              <name>TIM1_BRK</name>
              <description>TIM1_BRK</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM1_CCU"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE14</name>
          <displayName>ITLINE14</displayName>
          <description>interrupt line 14 status
          register</description>
          <addressOffset>0xB8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM1_CC</name>
              <description>TIM1_CC</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM1_CC</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE15</name>
          <displayName>ITLINE15</displayName>
          <description>interrupt line 15 status
          register</description>
          <addressOffset>0xBC</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM2</name>
              <description>TIM2</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM2</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE16</name>
          <displayName>ITLINE16</displayName>
          <description>interrupt line 16 status
          register</description>
          <addressOffset>0xC0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM3</name>
              <description>TIM3</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM3</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM4</name>
              <description>TIM4</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM3"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE17</name>
          <displayName>ITLINE17</displayName>
          <description>interrupt line 17 status
          register</description>
          <addressOffset>0xC4</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM6</name>
              <description>TIM6</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM6</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DAC</name>
              <description>DAC</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM6"/>
            </field>
            <field>
              <name>LPTIM1</name>
              <description>LPTIM1</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM6"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE18</name>
          <displayName>ITLINE18</displayName>
          <description>interrupt line 18 status
          register</description>
          <addressOffset>0xC8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM7</name>
              <description>TIM7</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM7</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPTIM2</name>
              <description>LPTIM2</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM7"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE19</name>
          <displayName>ITLINE19</displayName>
          <description>interrupt line 19 status
          register</description>
          <addressOffset>0xCC</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM14</name>
              <description>TIM14</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM14</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE20</name>
          <displayName>ITLINE20</displayName>
          <description>interrupt line 20 status
          register</description>
          <addressOffset>0xD0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM15</name>
              <description>TIM15</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM15</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE21</name>
          <displayName>ITLINE21</displayName>
          <description>interrupt line 21 status
          register</description>
          <addressOffset>0xD4</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM16</name>
              <description>TIM16</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM16</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FDCAN1_IT0</name>
              <description>FDCAN1_IT0</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM16"/>
            </field>
            <field>
              <name>FDCAN2_IT0</name>
              <description>FDCAN2_IT0</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM16"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE22</name>
          <displayName>ITLINE22</displayName>
          <description>interrupt line 22 status
          register</description>
          <addressOffset>0xD8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM17</name>
              <description>TIM17</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM17</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FDCAN1_IT1</name>
              <description>FDCAN1_IT1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM17"/>
            </field>
            <field>
              <name>FDCAN2_IT1</name>
              <description>FDCAN2_IT1</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM17"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE23</name>
          <displayName>ITLINE23</displayName>
          <description>interrupt line 23 status
          register</description>
          <addressOffset>0xDC</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>I2C1</name>
              <description>I2C1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C1</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE24</name>
          <displayName>ITLINE24</displayName>
          <description>interrupt line 24 status
          register</description>
          <addressOffset>0xE0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>I2C2</name>
              <description>I2C2</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C2</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C3</name>
              <description>I2C3</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C2"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE25</name>
          <displayName>ITLINE25</displayName>
          <description>interrupt line 25 status
          register</description>
          <addressOffset>0xE4</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SPI1</name>
              <description>SPI1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SPI1</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE26</name>
          <displayName>ITLINE26</displayName>
          <description>interrupt line 26 status
          register</description>
          <addressOffset>0xE8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SPI2</name>
              <description>SPI2</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SPI2</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPI3</name>
              <description>SPI3</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SPI2"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE27</name>
          <displayName>ITLINE27</displayName>
          <description>interrupt line 27 status
          register</description>
          <addressOffset>0xEC</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>USART1</name>
              <description>USART1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>USART1</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE28</name>
          <displayName>ITLINE28</displayName>
          <description>interrupt line 28 status
          register</description>
          <addressOffset>0xF0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>USART2</name>
              <description>USART2</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>USART2</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPUART2</name>
              <description>LPUART2</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="USART2"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE29</name>
          <displayName>ITLINE29</displayName>
          <description>interrupt line 29 status
          register</description>
          <addressOffset>0xF4</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>USART3</name>
              <description>USART3</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>USART3</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>USART4</name>
              <description>USART4</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="USART3"/>
            </field>
            <field>
              <name>LPUART1</name>
              <description>LPUART1</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="USART3"/>
            </field>
            <field>
              <name>USART5</name>
              <description>USART5</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="USART3"/>
            </field>
            <field>
              <name>USART6</name>
              <description>USART6</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="USART3"/>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE30</name>
          <displayName>SYSCFG_ITLINE30</displayName>
          <description>interrupt line 25 status
          register</description>
          <addressOffset>0xF8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CEC</name>
              <description>CEC</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEC</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ITLINE31</name>
          <displayName>SYSCFG_ITLINE31</displayName>
          <description>interrupt line 25 status
          register</description>
          <addressOffset>0xFC</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RNG</name>
              <description>RNG</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RNG</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>Interrupt not triggered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Interrup triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AES</name>
              <description>AES</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RNG"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>TAMP</name>
      <description>Tamper and backup registers</description>
      <groupName>TAMP</groupName>
      <baseAddress>0x4000B000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xFFFF0000</resetValue>
          <fields>
            <field>
              <name>TAMP1E</name>
              <description>TAMP1E</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP2E</name>
              <description>TAMP2E</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP1E</name>
              <description>ITAMP1E</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP3E</name>
              <description>ITAMP3E</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP4E</name>
              <description>ITAMP4E</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP5E</name>
              <description>ITAMP5E</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP6E</name>
              <description>ITAMP6E</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TAMP1NOER</name>
              <description>TAMP1NOER</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP2NOER</name>
              <description>TAMP2NOER</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP1MSK</name>
              <description>TAMP1MSK</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP2MSK</name>
              <description>TAMP2MSK</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP1TRG</name>
              <description>TAMP1TRG</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP2TRG</name>
              <description>TAMP2TRG</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>FLTCR</name>
          <displayName>FLTCR</displayName>
          <description>TAMP filter control register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TAMPFREQ</name>
              <description>TAMPFREQ</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>TAMPFLT</name>
              <description>TAMPFLT</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>TAMPPRCH</name>
              <description>TAMPPRCH</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>TAMPPUDIS</name>
              <description>TAMPPUDIS</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>TAMP interrupt enable register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TAMP1IE</name>
              <description>TAMP1IE</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP2IE</name>
              <description>TAMP2IE</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP1IE</name>
              <description>ITAMP1IE</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP3IE</name>
              <description>ITAMP3IE</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP4IE</name>
              <description>ITAMP4IE</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP5IE</name>
              <description>ITAMP5IE</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP6IE</name>
              <description>ITAMP6IE</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>TAMP status register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TAMP1F</name>
              <description>TAMP1F</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP2F</name>
              <description>TAMP2F</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP1F</name>
              <description>ITAMP1F</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP3F</name>
              <description>ITAMP3F</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP4F</name>
              <description>ITAMP4F</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP5F</name>
              <description>ITAMP5F</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP6F</name>
              <description>ITAMP6F</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP7F</name>
              <description>ITAMP7F</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>MISR</name>
          <displayName>MISR</displayName>
          <description>TAMP masked interrupt status
          register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TAMP1MF</name>
              <description>TAMP1MF:</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TAMP2MF</name>
              <description>TAMP2MF</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP1MF</name>
              <description>ITAMP1MF</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP3MF</name>
              <description>ITAMP3MF</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP4MF</name>
              <description>ITAMP4MF</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP5MF</name>
              <description>ITAMP5MF</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ITAMP6MF</name>
              <description>ITAMP6MF</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SCR</name>
          <displayName>SCR</displayName>
          <description>TAMP status clear register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CTAMP1F</name>
              <description>CTAMP1F</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CTAMP2F</name>
              <description>CTAMP2F</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CITAMP1F</name>
              <description>CITAMP1F</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CITAMP3F</name>
              <description>CITAMP3F</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CITAMP4F</name>
              <description>CITAMP4F</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CITAMP5F</name>
              <description>CITAMP5F</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CITAMP6F</name>
              <description>CITAMP6F</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CITAMP7F</name>
              <description>CITAMP7F</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <dim>5</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-4</dimIndex>
          <name>BKP%sR</name>
          <displayName>BKP%sR</displayName>
          <description>TAMP backup register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BKP</name>
              <description>BKP</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>LPTIM1</name>
      <description>Low power timer</description>
      <groupName>LPTIM</groupName>
      <baseAddress>0x40007C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>Interrupt and Status Register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DOWN</name>
              <description>Counter direction change up to
              down</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DOWNR</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Counter direction change up to down</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UP</name>
              <description>Counter direction change down to
              up</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UPR</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Counter direction change down to up</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARROK</name>
              <description>Autoreload register update
              OK</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARROKR</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Autoreload register update OK</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMPOK</name>
              <description>Compare register update OK</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMPOKR</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Compare register update OK</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTTRIG</name>
              <description>External trigger edge
              event</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EXTTRIGR</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>External trigger edge event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARRM</name>
              <description>Autoreload match</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARRMR</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Autoreload match</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMPM</name>
              <description>Compare match</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMPMR</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Compare match</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>Interrupt Clear Register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DOWNCF</name>
              <description>Direction change to down Clear
              Flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DOWNCFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Direction change to down Clear Flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UPCF</name>
              <description>Direction change to UP Clear
              Flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UPCFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Direction change to up Clear Flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARROKCF</name>
              <description>Autoreload register update OK Clear
              Flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARROKCFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Autoreload register update OK Clear Flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMPOKCF</name>
              <description>Compare register update OK Clear
              Flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMPOKCFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Compare register update OK Clear Flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTTRIGCF</name>
              <description>External trigger valid edge Clear
              Flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EXTTRIGCFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>External trigger valid edge Clear Flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARRMCF</name>
              <description>Autoreload match Clear
              Flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARRMCFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Autoreload match Clear Flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMPMCF</name>
              <description>compare match Clear Flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMPMCFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Compare match Clear Flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>Interrupt Enable Register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DOWNIE</name>
              <description>Direction change to down Interrupt
              Enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DOWNIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DOWN interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DOWN interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UPIE</name>
              <description>Direction change to UP Interrupt
              Enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UPIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>UP interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>UP interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARROKIE</name>
              <description>Autoreload register update OK Interrupt
              Enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARROKIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ARROK interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ARROK interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMPOKIE</name>
              <description>Compare register update OK Interrupt
              Enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMPOKIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CMPOK interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CMPOK interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTTRIGIE</name>
              <description>External trigger valid edge Interrupt
              Enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EXTTRIGIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>EXTTRIG interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>EXTTRIG interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARRMIE</name>
              <description>Autoreload match Interrupt
              Enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARRMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ARRM interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ARRM interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMPMIE</name>
              <description>Compare match Interrupt
              Enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMPMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CMPM interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CMPM interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>Configuration Register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ENC</name>
              <description>Encoder mode enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ENC</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Encoder mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Encoder mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COUNTMODE</name>
              <description>counter mode enabled</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COUNTMODE</name>
                <enumeratedValue>
                  <name>Internal</name>
                  <description>The counter is incremented following each internal clock pulse</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>External</name>
                  <description>The counter is incremented following each valid clock pulse on the LPTIM external Input1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PRELOAD</name>
              <description>Registers update mode</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PRELOAD</name>
                <enumeratedValue>
                  <name>Immediate</name>
                  <description>Registers are updated after each APB bus write access</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EndOfPeriod</name>
                  <description>Registers are updated at the end of the current LPTIM period</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAVPOL</name>
              <description>Waveform shape polarity</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WAVPOL</name>
                <enumeratedValue>
                  <name>Positive</name>
                  <description>The LPTIM output reflects the compare results between LPTIM_ARR and LPTIM_CMP registers</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Negative</name>
                  <description>The LPTIM output reflects the inverse of the compare results between LPTIM_ARR and LPTIM_CMP registers</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAVE</name>
              <description>Waveform shape</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WAVE</name>
                <enumeratedValue>
                  <name>Inactive</name>
                  <description>Deactivate Set-once mode, PWM / One Pulse waveform (depending on OPMODE bit)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Activate the Set-once mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMOUT</name>
              <description>Timeout enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIMOUT</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>A trigger event arriving when the timer is already started will be ignored</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>A trigger event arriving when the timer is already started will reset and restart the counter</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TRIGEN</name>
              <description>Trigger enable and
              polarity</description>
              <bitOffset>17</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>TRIGEN</name>
                <enumeratedValue>
                  <name>SW</name>
                  <description>Software trigger (counting start is initiated by software)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Rising edge is the active edge</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Falling edge is the active edge</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BothEdges</name>
                  <description>Both edges are active edges</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TRIGSEL</name>
              <description>Trigger selector</description>
              <bitOffset>13</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>TRIGSEL</name>
                <enumeratedValue>
                  <name>Trig0</name>
                  <description>lptim_ext_trig0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trig1</name>
                  <description>lptim_ext_trig1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trig2</name>
                  <description>lptim_ext_trig2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trig3</name>
                  <description>lptim_ext_trig3</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trig4</name>
                  <description>lptim_ext_trig4</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trig5</name>
                  <description>lptim_ext_trig5</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trig6</name>
                  <description>lptim_ext_trig6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trig7</name>
                  <description>lptim_ext_trig7</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PRESC</name>
              <description>Clock prescaler</description>
              <bitOffset>9</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>PRESC</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>/1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>/2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>/4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>/8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>/16</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>/32</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>/64</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>/128</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TRGFLT</name>
              <description>Configurable digital filter for
              trigger</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>TRGFLT</name>
                <enumeratedValue>
                  <name>Immediate</name>
                  <description>Any trigger active level change is considered as a valid trigger</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks2</name>
                  <description>Trigger active level change must be stable for at least 2 clock periods before it is considered as valid trigger</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks4</name>
                  <description>Trigger active level change must be stable for at least 4 clock periods before it is considered as valid trigger</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks8</name>
                  <description>Trigger active level change must be stable for at least 8 clock periods before it is considered as valid trigger</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKFLT</name>
              <description>Configurable digital filter for external
              clock</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKFLT</name>
                <enumeratedValue>
                  <name>Immediate</name>
                  <description>Any external clock signal level change is considered as a valid transition</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks2</name>
                  <description>External clock signal level change must be stable for at least 2 clock periods before it is considered as valid transition</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks4</name>
                  <description>External clock signal level change must be stable for at least 4 clock periods before it is considered as valid transition</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks8</name>
                  <description>External clock signal level change must be stable for at least 8 clock periods before it is considered as valid transition</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKPOL</name>
              <description>Clock Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKPOL</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>The rising edge is the active edge used for counting. If LPTIM is in encoder mode: Encoder sub-mode 1 is active.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>The falling edge is the active edge used for counting. If LPTIM is in encoder mode: Encoder sub-mode 2 is active.</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BothEdges</name>
                  <description>Both edges are active edge. If LPTIM is in encoder mode: Encoder sub-mode 3 is active.</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKSEL</name>
              <description>Clock selector</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CKSEL</name>
                <enumeratedValue>
                  <name>Internal</name>
                  <description>LPTIM is clocked by internal clock source (APB clock or any of the embedded oscillators)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>External</name>
                  <description>LPTIM is clocked by an external clock source through the LPTIM external Input1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>Control Register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RSTARE</name>
              <description>Reset after read enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RSTARE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CNT Register reads do not trigger reset</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CNT Register reads trigger reset of LPTIM</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COUNTRST</name>
              <description>Counter reset</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COUNTRSTR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>Triggering of reset is possible</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>Reset in progress, do not write 1 to this field</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>COUNTRSTW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Trigger synchronous reset of CNT (3 LPTimer core clock cycles)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CNTSTRT</name>
              <description>Timer start in continuous
              mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CNTSTRTW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Timer start in Continuous mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SNGSTRT</name>
              <description>LPTIM start in single mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SNGSTRTW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Start</name>
                  <description>LPTIM start in Single mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ENABLE</name>
              <description>LPTIM Enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ENABLE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>LPTIM is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>LPTIM is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CMP</name>
          <displayName>CMP</displayName>
          <description>Compare Register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CMP</name>
              <description>Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>Autoreload Register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000001</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>Counter Register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR2</name>
          <displayName>CFGR2</displayName>
          <description>LPTIM configuration register 2</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IN2SEL</name>
              <description>LPTIM1 Input 2 selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>IN1SEL</name>
              <description>LPTIMx Input 1 selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="LPTIM1">
      <name>LPTIM2</name>
      <baseAddress>0x40009400</baseAddress>
    </peripheral>
    <peripheral>
      <name>LPUART</name>
      <description>Universal synchronous asynchronous receiver
      transmitter</description>
      <groupName>USART</groupName>
      <baseAddress>0x40008000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>USART3_USART4_LPUART1</name>
        <description>USART3 + USART4 + LPUART1</description>
        <value>29</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>Control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RXFFIE</name>
              <description>RXFIFO Full interrupt
              enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFFIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated when RXFF = 1 in the USART_ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXFEIE</name>
              <description>TXFIFO empty interrupt
              enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated when TXFE = 1 in the USART_ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FIFOEN</name>
              <description>FIFO mode enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FIFOEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>FIFO mode is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>FIFO mode is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>M1</name>
              <description>Word length</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>M1</name>
                <enumeratedValue>
                  <name>M0</name>
                  <description>Use M0 to set the data bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>1 start bit, 7 data bits, n stop bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEAT</name>
              <description>DEAT0</description>
              <bitOffset>21</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DEDT</name>
              <description>DEDT0</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>CMIE</name>
              <description>Character match interrupt
              enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated when the CMF bit is set in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MME</name>
              <description>Mute mode enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MME</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receiver in active mode permanently</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receiver can switch between mute mode and active mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>M0</name>
              <description>Word length</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>M0</name>
                <enumeratedValue>
                  <name>Bit8</name>
                  <description>1 start bit, 8 data bits, n stop bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit9</name>
                  <description>1 start bit, 9 data bits, n stop bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAKE</name>
              <description>Receiver wakeup method</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WAKE</name>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>Idle line</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Address</name>
                  <description>Address mask</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PCE</name>
              <description>Parity control enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PCE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Parity control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Parity control enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PS</name>
              <description>Parity selection</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PS</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Even parity</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Odd parity</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PEIE</name>
              <description>PE interrupt enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever PE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXEIE</name>
              <description>interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever TXE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCIE</name>
              <description>Transmission complete interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TCIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever TC=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNEIE</name>
              <description>RXNE interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXNEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever ORE=1 or RXNE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLEIE</name>
              <description>IDLE interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IDLEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever IDLE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TE</name>
              <description>Transmitter enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Transmitter is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Transmitter is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RE</name>
              <description>Receiver enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receiver is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receiver is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UESM</name>
              <description>USART enable in Stop mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UESM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>USART not able to wake up the MCU from Stop mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART able to wake up the MCU from Stop mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UE</name>
              <description>USART enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>UART is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>UART is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>Control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ADD</name>
              <description>Address of the USART node</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MSBFIRST</name>
              <description>Most significant bit first</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSBFIRST</name>
                <enumeratedValue>
                  <name>LSB</name>
                  <description>data is transmitted/received with data bit 0 first, following the start bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MSB</name>
                  <description>data is transmitted/received with MSB (bit 7/8/9) first, following the start bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DATAINV</name>
              <description>Binary data inversion</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DATAINV</name>
                <enumeratedValue>
                  <name>Positive</name>
                  <description>Logical data from the data register are send/received in positive/direct logic</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Negative</name>
                  <description>Logical data from the data register are send/received in negative/inverse logic</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXINV</name>
              <description>TX pin active level
              inversion</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXINV</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>TX pin signal works using the standard logic levels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>TX pin signal values are inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXINV</name>
              <description>RX pin active level
              inversion</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXINV</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>RX pin signal works using the standard logic levels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>RX pin signal values are inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWAP</name>
              <description>Swap TX/RX pins</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SWAP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>TX/RX pins are used as defined in standard pinout</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Swapped</name>
                  <description>The TX and RX pins functions are swapped</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOP</name>
              <description>STOP bits</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>STOP</name>
                <enumeratedValue>
                  <name>Stop1</name>
                  <description>1 stop bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop2</name>
                  <description>2 stop bit</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDM7</name>
              <description>7-bit Address Detection/4-bit Address
              Detection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADDM7</name>
                <enumeratedValue>
                  <name>Bit4</name>
                  <description>4-bit address detection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>7-bit address detection</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR3</name>
          <displayName>CR3</displayName>
          <description>Control register 3</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TXFTCFG</name>
              <description>TXFIFO threshold
              configuration</description>
              <bitOffset>29</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>TXFTCFG</name>
                <enumeratedValue>
                  <name>Depth_1_8</name>
                  <description>TXFIFO reaches 1/8 of its depth</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_1_4</name>
                  <description>TXFIFO reaches 1/4 of its depth</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_1_2</name>
                  <description>TXFIFO reaches 1/2 of its depth</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_3_4</name>
                  <description>TXFIFO reaches 3/4 of its depth</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_7_8</name>
                  <description>TXFIFO reaches 7/8 of its depth</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>TXFIFO becomes empty</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFTIE</name>
              <description>RXFIFO threshold interrupt
              enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFTIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated when Receive FIFO reaches the threshold programmed in RXFTCFG</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFTCFG</name>
              <description>Receive FIFO threshold
              configuration</description>
              <bitOffset>25</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>RXFTCFG</name>
                <enumeratedValue>
                  <name>Depth_1_8</name>
                  <description>RXFIFO reaches 1/8 of its depth</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_1_4</name>
                  <description>RXFIFO reaches 1/4 of its depth</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_1_2</name>
                  <description>RXFIFO reaches 1/2 of its depth</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_3_4</name>
                  <description>RXFIFO reaches 3/4 of its depth</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Depth_7_8</name>
                  <description>RXFIFO reaches 7/8 of its depth</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Full</name>
                  <description>RXFIFO becomes full</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXFTIE</name>
              <description>threshold interrupt enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFTIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART interrupt generated when Transmit FIFO reaches the threshold programmed in TXFTCFG</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUFIE</name>
              <description>Wakeup from Stop mode interrupt
              enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUFIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An USART interrupt is generated whenever WUF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUS</name>
              <description>Wakeup from Stop mode interrupt flag
              selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>WUS</name>
                <enumeratedValue>
                  <name>Address</name>
                  <description>WUF active on address match</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>WuF active on Start bit detection</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RXNE</name>
                  <description>WUF active on RXNE</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEP</name>
              <description>Driver enable polarity
              selection</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DEP</name>
                <enumeratedValue>
                  <name>High</name>
                  <description>DE signal is active high</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Low</name>
                  <description>DE signal is active low</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEM</name>
              <description>Driver enable mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DEM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DE function is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The DE signal is output on the RTS pin</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DDRE</name>
              <description>DMA Disable on Reception
              Error</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DDRE</name>
                <enumeratedValue>
                  <name>NotDisabled</name>
                  <description>DMA is not disabled in case of reception error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA is disabled following a reception error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRDIS</name>
              <description>Overrun Disable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVRDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Overrun Error Flag, ORE, is set when received data is not read before receiving new data</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Overrun functionality is disabled. If new data is received while the RXNE flag is still set the ORE flag is not set and the new received data overwrites the previous content of the RDR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSIE</name>
              <description>CTS interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated whenever CTSIF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSE</name>
              <description>CTS enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CTS hardware flow control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CTS mode enabled, data is only transmitted when the CTS input is asserted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTSE</name>
              <description>RTS enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTS hardware flow control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTS output enabled, data is only requested when there is space in the receive buffer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAT</name>
              <description>DMA enable transmitter</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAT</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode is disabled for transmission</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode is enabled for transmission</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAR</name>
              <description>DMA enable receiver</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAR</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode is disabled for reception</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode is enabled for reception</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HDSEL</name>
              <description>Half-duplex selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HDSEL</name>
                <enumeratedValue>
                  <name>NotSelected</name>
                  <description>Half duplex mode is not selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Selected</name>
                  <description>Half duplex mode is selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EIE</name>
              <description>Error interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated when FE=1 or ORE=1 or NF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>Baud rate register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BRR</name>
              <description>BRR</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RQR</name>
          <displayName>RQR</displayName>
          <description>Request register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TXFRQ</name>
              <description>Transmit data flush
              request</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFRQ</name>
                <enumeratedValue>
                  <name>Discard</name>
                  <description>Set the TXE flags. This allows to discard the transmit data</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFRQ</name>
              <description>Receive data flush request</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFRQ</name>
                <enumeratedValue>
                  <name>Discard</name>
                  <description>clears the RXNE flag. This allows to discard the received data without reading it, and avoid an overrun condition</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MMRQ</name>
              <description>Mute mode request</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MMRQ</name>
                <enumeratedValue>
                  <name>Mute</name>
                  <description>Puts the USART in mute mode and sets the RWU flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBKRQ</name>
              <description>Send break request</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SBKRQ</name>
                <enumeratedValue>
                  <name>Break</name>
                  <description>sets the SBKF flag and request to send a BREAK on the line, as soon as the transmit machine is available</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABRRQ</name>
              <description>Auto baud rate request</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>Interrupt &amp; status
          register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x000000C0</resetValue>
          <fields>
            <field>
              <name>TXFT</name>
              <description>TXFIFO threshold flag</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFT</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>TXFIFO does not reach the programmed threshold.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>TXFIFO reached the programmed threshold.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFT</name>
              <description>RXFIFO threshold flag</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFT</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>Receive FIFO does not reach the programmed threshold.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>Receive FIFO reached the programmed threshold.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFF</name>
              <description>RXFIFO Full</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFF</name>
                <enumeratedValue>
                  <name>NotFull</name>
                  <description>RXFIFO not full.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Full</name>
                  <description>RXFIFO Full.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXFE</name>
              <description>TXFIFO Empty</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFE</name>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>TXFIFO not empty.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>TXFIFO empty.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>REACK</name>
              <description>REACK</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TEACK</name>
              <description>TEACK</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUF</name>
              <description>WUF</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RWU</name>
              <description>RWU</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RWU</name>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Receiver in Active mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mute</name>
                  <description>Receiver in Mute mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBKF</name>
              <description>SBKF</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SBKF</name>
                <enumeratedValue>
                  <name>NoBreak</name>
                  <description>No break character transmitted</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Break</name>
                  <description>Break character transmitted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMF</name>
              <description>CMF</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMF</name>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No Character match detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>Character match detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BUSY</name>
              <description>BUSY</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BUSY</name>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>USART is idle (no reception)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>Reception on going</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTS</name>
              <description>CTS</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTS</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>CTS line set</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>CTS line reset</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSIF</name>
              <description>CTSIF</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSIF</name>
                <enumeratedValue>
                  <name>NotChanged</name>
                  <description>No change occurred on the CTS status line</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Changed</name>
                  <description>A change occurred on the CTS status line</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXE</name>
              <description>TXE</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXE</name>
                <enumeratedValue>
                  <name>Full</name>
                  <description>Transmit FIFO is full</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotFull</name>
                  <description>Transmit FIFO is not full</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TC</name>
              <description>TC</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TC</name>
                <enumeratedValue>
                  <name>TxNotComplete</name>
                  <description>Transmission is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TxComplete</name>
                  <description>Transmission is complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNE</name>
              <description>RXNE</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXNE</name>
                <enumeratedValue>
                  <name>NoData</name>
                  <description>Data is not received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DataReady</name>
                  <description>Received data is ready to be read</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLE</name>
              <description>IDLE</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IDLE</name>
                <enumeratedValue>
                  <name>NoIdle</name>
                  <description>No Idle Line is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>Idle Line is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ORE</name>
              <description>ORE</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ORE</name>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No Overrun error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>Overrun error is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NF</name>
              <description>NF</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NF</name>
                <enumeratedValue>
                  <name>NoNoise</name>
                  <description>No noise is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Noise</name>
                  <description>Noise is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FE</name>
              <description>FE</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No Framing error is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Framing error or break character is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PE</name>
              <description>PE</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No parity error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Parity error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>Interrupt flag clear register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WUCF</name>
              <description>Wakeup from Stop mode clear
              flag</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>WUCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the WUF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMCF</name>
              <description>Character match clear flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CMCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the CMF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSCF</name>
              <description>CTS clear flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CTSCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the CTSIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCCF</name>
              <description>Transmission complete clear
              flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TCCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TC flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLECF</name>
              <description>Idle line detected clear
              flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>IDLECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the IDLE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ORECF</name>
              <description>Overrun error clear flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ORECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ORE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NCF</name>
              <description>Noise detected clear flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>NCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the NF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FECF</name>
              <description>Framing error clear flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>FECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the FE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECF</name>
              <description>Parity error clear flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>PECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the PE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>RDR</name>
          <displayName>RDR</displayName>
          <description>Receive data register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RDR</name>
              <description>Receive data value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TDR</name>
          <displayName>TDR</displayName>
          <description>Transmit data register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDR</name>
              <description>Transmit data value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PRESC</name>
          <displayName>PRESC</displayName>
          <description>Prescaler register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PRESCALER</name>
              <description>Clock prescaler</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>PRESCALER</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>/1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>/2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>/4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div6</name>
                  <description>/6</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>/8</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div10</name>
                  <description>/10</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div12</name>
                  <description>/12</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>/16</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>/32</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>/64</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>/128</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>/256</description>
                  <value>11</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>I2C1</name>
      <description>Inter-integrated circuit</description>
      <groupName>I2C</groupName>
      <baseAddress>0x40005400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>I2C1</name>
        <description>I2C1 global interrupt</description>
        <value>23</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>Control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PE</name>
              <description>Peripheral enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXIE</name>
              <description>TX Interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Transmit (TXIS) interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Transmit (TXIS) interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXIE</name>
              <description>RX Interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receive (RXNE) interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receive (RXNE) interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDRIE</name>
              <description>Address match interrupt enable (slave
              only)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADDRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Address match (ADDR) interrupts disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Address match (ADDR) interrupts enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NACKIE</name>
              <description>Not acknowledge received interrupt
              enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NACKIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Not acknowledge (NACKF) received interrupts disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Not acknowledge (NACKF) received interrupts enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOPIE</name>
              <description>STOP detection Interrupt
              enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>STOPIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Stop detection (STOPF) interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Stop detection (STOPF) interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCIE</name>
              <description>Transfer Complete interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TCIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Transfer Complete interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Transfer Complete interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Error interrupts enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ERRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Error detection interrupts disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Error detection interrupts enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DNF</name>
              <description>Digital noise filter</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>DNF</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>Digital filter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter1</name>
                  <description>Digital filter enabled and filtering capability up to 1 tI2CCLK</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter2</name>
                  <description>Digital filter enabled and filtering capability up to 2 tI2CCLK</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter3</name>
                  <description>Digital filter enabled and filtering capability up to 3 tI2CCLK</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter4</name>
                  <description>Digital filter enabled and filtering capability up to 4 tI2CCLK</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter5</name>
                  <description>Digital filter enabled and filtering capability up to 5 tI2CCLK</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter6</name>
                  <description>Digital filter enabled and filtering capability up to 6 tI2CCLK</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter7</name>
                  <description>Digital filter enabled and filtering capability up to 7 tI2CCLK</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter8</name>
                  <description>Digital filter enabled and filtering capability up to 8 tI2CCLK</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter9</name>
                  <description>Digital filter enabled and filtering capability up to 9 tI2CCLK</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter10</name>
                  <description>Digital filter enabled and filtering capability up to 10 tI2CCLK</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter11</name>
                  <description>Digital filter enabled and filtering capability up to 11 tI2CCLK</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter12</name>
                  <description>Digital filter enabled and filtering capability up to 12 tI2CCLK</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter13</name>
                  <description>Digital filter enabled and filtering capability up to 13 tI2CCLK</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter14</name>
                  <description>Digital filter enabled and filtering capability up to 14 tI2CCLK</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter15</name>
                  <description>Digital filter enabled and filtering capability up to 15 tI2CCLK</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ANFOFF</name>
              <description>Analog noise filter OFF</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ANFOFF</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Analog noise filter enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Analog noise filter disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXDMAEN</name>
              <description>DMA transmission requests
              enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode disabled for transmission</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode enabled for transmission</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXDMAEN</name>
              <description>DMA reception requests
              enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode disabled for reception</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode enabled for reception</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBC</name>
              <description>Slave byte control</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SBC</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Slave byte control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Slave byte control enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NOSTRETCH</name>
              <description>Clock stretching disable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NOSTRETCH</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Clock stretching enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Clock stretching disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUPEN</name>
              <description>Wakeup from STOP enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wakeup from Stop mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wakeup from Stop mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GCEN</name>
              <description>General call enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>GCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>General call disabled. Address 0b00000000 is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>General call enabled. Address 0b00000000 is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SMBHEN</name>
              <description>SMBus Host address enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SMBHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Host address disabled. Address 0b0001000x is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Host address enabled. Address 0b0001000x is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SMBDEN</name>
              <description>SMBus Device Default address
              enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SMBDEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Device default address disabled. Address 0b1100001x is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Device default address enabled. Address 0b1100001x is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ALERTEN</name>
              <description>SMBUS alert enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALERTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>In device mode (SMBHEN=Disabled) Releases SMBA pin high and Alert Response Address Header disabled (0001100x) followed by NACK. In host mode (SMBHEN=Enabled) SMBus Alert pin (SMBA) not supported</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>In device mode (SMBHEN=Disabled) Drives SMBA pin low and Alert Response Address Header enabled (0001100x) followed by ACK.In host mode (SMBHEN=Enabled) SMBus Alert pin (SMBA) supported</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECEN</name>
              <description>PEC enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PECEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>PEC calculation disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>PEC calculation enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>Control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PECBYTE</name>
              <description>Packet error checking byte</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>PECBYTER</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoPec</name>
                  <description>No PEC transfer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pec</name>
                  <description>PEC transmission/reception is requested</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>PECBYTEW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Pec</name>
                  <description>PEC transmission/reception is requested</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AUTOEND</name>
              <description>Automatic end mode (master
              mode)</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AUTOEND</name>
                <enumeratedValue>
                  <name>Software</name>
                  <description>Software end mode: TC flag is set when NBYTES data are transferred, stretching SCL low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Automatic</name>
                  <description>Automatic end mode: a STOP condition is automatically sent when NBYTES data are transferred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RELOAD</name>
              <description>NBYTES reload mode</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RELOAD</name>
                <enumeratedValue>
                  <name>Completed</name>
                  <description>The transfer is completed after the NBYTES data transfer (STOP or RESTART will follow)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotCompleted</name>
                  <description>The transfer is not completed after the NBYTES data transfer (NBYTES will be reloaded)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NBYTES</name>
              <description>Number of bytes</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>NACK</name>
              <description>NACK generation (slave
              mode)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>NACKR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Ack</name>
                  <description>an ACK is sent after current received byte</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Nack</name>
                  <description>a NACK is sent after current received byte</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>NACKW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Nack</name>
                  <description>a NACK is sent after current received byte</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOP</name>
              <description>Stop generation (master
              mode)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>STOPR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoStop</name>
                  <description>No Stop generation</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop</name>
                  <description>Stop generation after current byte transfer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>STOPW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Stop</name>
                  <description>Stop generation after current byte transfer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>START</name>
              <description>Start generation</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>STARTR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoStart</name>
                  <description>No Start generation</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Restart/Start generation</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>STARTW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Restart/Start generation</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HEAD10R</name>
              <description>10-bit address header only read
              direction (master receiver mode)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HEAD10R</name>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>The master sends the complete 10 bit slave address read sequence</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Partial</name>
                  <description>The master only sends the 1st 7 bits of the 10 bit address, followed by Read direction</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADD10</name>
              <description>10-bit addressing mode (master
              mode)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADD10</name>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>The master operates in 7-bit addressing mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit10</name>
                  <description>The master operates in 10-bit addressing mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RD_WRN</name>
              <description>Transfer direction (master
              mode)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RD_WRN</name>
                <enumeratedValue>
                  <name>Write</name>
                  <description>Master requests a write transfer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Read</name>
                  <description>Master requests a read transfer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SADD</name>
              <description>Slave address bit (master
              mode)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1023</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>OAR1</name>
          <displayName>OAR1</displayName>
          <description>Own address register 1</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>OA1MODE</name>
              <description>Own Address 1 10-bit mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OA1MODE</name>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>Own address 1 is a 7-bit address</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit10</name>
                  <description>Own address 1 is a 10-bit address</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OA1EN</name>
              <description>Own Address 1 enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OA1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Own address 1 disabled. The received slave address OA1 is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Own address 1 enabled. The received slave address OA1 is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OA1</name>
              <description>Interface address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1023</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>OAR2</name>
          <displayName>OAR2</displayName>
          <description>Own address register 2</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>OA2</name>
              <description>Interface address</description>
              <bitOffset>1</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>OA2MSK</name>
              <description>Own Address 2 masks</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OA2MSK</name>
                <enumeratedValue>
                  <name>NoMask</name>
                  <description>No mask</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask1</name>
                  <description>OA2[1] is masked and don’t care. Only OA2[7:2] are compared</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask2</name>
                  <description>OA2[2:1] are masked and don’t care. Only OA2[7:3] are compared</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask3</name>
                  <description>OA2[3:1] are masked and don’t care. Only OA2[7:4] are compared</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask4</name>
                  <description>OA2[4:1] are masked and don’t care. Only OA2[7:5] are compared</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask5</name>
                  <description>OA2[5:1] are masked and don’t care. Only OA2[7:6] are compared</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask6</name>
                  <description>OA2[6:1] are masked and don’t care. Only OA2[7] is compared.</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask7</name>
                  <description>OA2[7:1] are masked and don’t care. No comparison is done, and all (except reserved) 7-bit received addresses are acknowledged</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OA2EN</name>
              <description>Own Address 2 enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OA2EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Own address 2 disabled. The received slave address OA2 is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Own address 2 enabled. The received slave address OA2 is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>TIMINGR</name>
          <displayName>TIMINGR</displayName>
          <description>Timing register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SCLL</name>
              <description>SCL low period (master
              mode)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SCLH</name>
              <description>SCL high period (master
              mode)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SDADEL</name>
              <description>Data hold time</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SCLDEL</name>
              <description>Data setup time</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PRESC</name>
              <description>Timing prescaler</description>
              <bitOffset>28</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TIMEOUTR</name>
          <displayName>TIMEOUTR</displayName>
          <description>Status register 1</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIMEOUTA</name>
              <description>Bus timeout A</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TIDLE</name>
              <description>Idle clock timeout
              detection</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIDLE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMEOUTA is used to detect SCL low timeout</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMEOUTA is used to detect both SCL and SDA high timeout (bus idle condition)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMOUTEN</name>
              <description>Clock timeout enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIMOUTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>SCL timeout detection is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>SCL timeout detection is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMEOUTB</name>
              <description>Bus timeout B</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TEXTEN</name>
              <description>Extended clock timeout
              enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TEXTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Extended clock timeout detection is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Extended clock timeout detection is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>Interrupt and Status register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <fields>
            <field>
              <name>ADDCODE</name>
              <description>Address match code (Slave
              mode)</description>
              <bitOffset>17</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DIR</name>
              <description>Transfer direction (Slave
              mode)</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>DIR</name>
                <enumeratedValue>
                  <name>Write</name>
                  <description>Write transfer, slave enters receiver mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Read</name>
                  <description>Read transfer, slave enters transmitter mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BUSY</name>
              <description>Bus busy</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>BUSY</name>
                <enumeratedValue>
                  <name>NotBusy</name>
                  <description>No communication is in progress on the bus</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>A communication is in progress on the bus</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ALERT</name>
              <description>SMBus alert</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>ALERT</name>
                <enumeratedValue>
                  <name>NoAlert</name>
                  <description>SMBA alert is not detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Alert</name>
                  <description>SMBA alert event is detected on SMBA pin</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMEOUT</name>
              <description>Timeout or t_low detection
              flag</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TIMEOUT</name>
                <enumeratedValue>
                  <name>NoTimeout</name>
                  <description>No timeout occured</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timeout</name>
                  <description>Timeout occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECERR</name>
              <description>PEC Error in reception</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>PECERR</name>
                <enumeratedValue>
                  <name>Match</name>
                  <description>Received PEC does match with PEC register</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>Received PEC does not match with PEC register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVR</name>
              <description>Overrun/Underrun (slave
              mode)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OVR</name>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No overrun/underrun error occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>slave mode with NOSTRETCH=1, when an overrun/underrun error occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARLO</name>
              <description>Arbitration lost</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>ARLO</name>
                <enumeratedValue>
                  <name>NotLost</name>
                  <description>No arbitration lost</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Lost</name>
                  <description>Arbitration lost</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BERR</name>
              <description>Bus error</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>BERR</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No bus error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Misplaced Start and Stop condition is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCR</name>
              <description>Transfer Complete Reload</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TCR</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Transfer is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>NBYTES has been transfered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TC</name>
              <description>Transfer Complete (master
              mode)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TC</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Transfer is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>NBYTES has been transfered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOPF</name>
              <description>Stop detection flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>STOPF</name>
                <enumeratedValue>
                  <name>NoStop</name>
                  <description>No Stop condition detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop</name>
                  <description>Stop condition detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NACKF</name>
              <description>Not acknowledge received
              flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>NACKF</name>
                <enumeratedValue>
                  <name>NoNack</name>
                  <description>No NACK has been received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Nack</name>
                  <description>NACK has been received</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDR</name>
              <description>Address matched (slave
              mode)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>ADDR</name>
                <enumeratedValue>
                  <name>NotMatch</name>
                  <description>Adress mismatched or not received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>Received slave address matched with one of the enabled slave addresses</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNE</name>
              <description>Receive data register not empty
              (receivers)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXNE</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>The RXDR register is empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>Received data is copied into the RXDR register, and is ready to be read</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXIS</name>
              <description>Transmit interrupt status
              (transmitters)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>TXISR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>The TXDR register is not empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>The TXDR register is empty and the data to be transmitted must be written in the TXDR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TXISW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>Generate a TXIS event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXE</name>
              <description>Transmit data register empty
              (transmitters)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>TXER</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>TXDR register not empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>TXDR register empty</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TXEW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Flush</name>
                  <description>Flush the transmit data register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>Interrupt clear register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ALERTCF</name>
              <description>Alert flag clear</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ALERTCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ALERT flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMOUTCF</name>
              <description>Timeout detection flag
              clear</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TIMOUTCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TIMOUT flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECCF</name>
              <description>PEC Error flag clear</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>PECCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the PEC flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRCF</name>
              <description>Overrun/Underrun flag
              clear</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>OVRCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the OVR flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARLOCF</name>
              <description>Arbitration lost flag
              clear</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ARLOCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ARLO flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BERRCF</name>
              <description>Bus error flag clear</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>BERRCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the BERR flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOPCF</name>
              <description>Stop detection flag clear</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>STOPCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the STOP flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NACKCF</name>
              <description>Not Acknowledge flag clear</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>NACKCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the NACK flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDRCF</name>
              <description>Address Matched flag clear</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ADDRCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ADDR flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>PECR</name>
          <displayName>PECR</displayName>
          <description>PEC register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PEC</name>
              <description>Packet error checking
              register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RXDR</name>
          <displayName>RXDR</displayName>
          <description>Receive data register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RXDATA</name>
              <description>8-bit receive data</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TXDR</name>
          <displayName>TXDR</displayName>
          <description>Transmit data register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TXDATA</name>
              <description>8-bit transmit data</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="I2C1">
      <name>I2C2</name>
      <baseAddress>0x40005800</baseAddress>
      <interrupt>
        <name>I2C2</name>
        <description>I2C2 global interrupt</description>
        <value>24</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>RTC</name>
      <description>Real-time clock</description>
      <groupName>RTC</groupName>
      <baseAddress>0x40002800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>RTC_TAMP</name>
        <description>RTC and TAMP interrupts</description>
        <value>2</value>
      </interrupt>
      <registers>
        <register>
          <name>TR</name>
          <displayName>TR</displayName>
          <description>time register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PM</name>
              <description>AM/PM notation</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PM</name>
                <enumeratedValue>
                  <name>AM</name>
                  <description>AM or 24-hour format</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PM</name>
                  <description>PM</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HT</name>
              <description>Hour tens in BCD format</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HU</name>
              <description>Hour units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MNT</name>
              <description>Minute tens in BCD format</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MNU</name>
              <description>Minute units in BCD format</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ST</name>
              <description>Second tens in BCD format</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SU</name>
              <description>Second units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>date register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00002101</resetValue>
          <fields>
            <field>
              <name>YT</name>
              <description>Year tens in BCD format</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>YU</name>
              <description>Year units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>WDU</name>
              <description>Week day units</description>
              <bitOffset>13</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MT</name>
              <description>Month tens in BCD format</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MU</name>
              <description>Month units in BCD format</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DT</name>
              <description>Date tens in BCD format</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DU</name>
              <description>Date units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SSR</name>
          <displayName>SSR</displayName>
          <description>sub second register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SS</name>
              <description>Sub second value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ICSR</name>
          <displayName>ICSR</displayName>
          <description>initialization and status
          register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000007</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sWF</name>
              <description>Alarm %s write flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WUTWF</name>
              <description>Wakeup timer write flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>WUTWFR</name>
                <enumeratedValue>
                  <name>UpdateNotAllowed</name>
                  <description>Wakeup timer configuration update not allowed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdateAllowed</name>
                  <description>Wakeup timer configuration update allowed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SHPF</name>
              <description>Shift operation pending</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SHPFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoShiftPending</name>
                  <description>No shift operation is pending</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ShiftPending</name>
                  <description>A shift operation is pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>INITS</name>
              <description>Initialization status flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>INITSR</name>
                <enumeratedValue>
                  <name>NotInitalized</name>
                  <description>Calendar has not been initialized</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Initalized</name>
                  <description>Calendar has been initialized</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RSF</name>
              <description>Registers synchronization
              flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>RSFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotSynced</name>
                  <description>Calendar shadow registers not yet synchronized</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Synced</name>
                  <description>Calendar shadow registers synchronized</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>RSFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>This flag is cleared by software by writing 0</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>INITF</name>
              <description>Initialization flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>INITFR</name>
                <enumeratedValue>
                  <name>NotAllowed</name>
                  <description>Calendar registers update is not allowed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Allowed</name>
                  <description>Calendar registers update is allowed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>INIT</name>
              <description>Initialization mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>INIT</name>
                <enumeratedValue>
                  <name>FreeRunningMode</name>
                  <description>Free running mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InitMode</name>
                  <description>Initialization mode used to program time and date register (RTC_TR and RTC_DR), and prescaler register (RTC_PRER). Counters are stopped and start counting from the new value when INIT is reset.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RECALPF</name>
              <description>Recalibration pending Flag</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RECALPFR</name>
                <enumeratedValue>
                  <name>Pending</name>
                  <description>The RECALPF status flag is automatically set to 1 when software writes to the RTC_CALR register, indicating that the RTC_CALR register is blocked. When the new calibration settings are taken into account, this bit returns to 0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>PRER</name>
          <displayName>PRER</displayName>
          <description>prescaler register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x007F00FF</resetValue>
          <fields>
            <field>
              <name>PREDIV_A</name>
              <description>Asynchronous prescaler
              factor</description>
              <bitOffset>16</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PREDIV_S</name>
              <description>Synchronous prescaler
              factor</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>WUTR</name>
          <displayName>WUTR</displayName>
          <description>wakeup timer register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>WUT</name>
              <description>Wakeup auto-reload value
              bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>control register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WUCKSEL</name>
              <description>WUCKSEL</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>WUCKSEL</name>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>RTC/16 clock is selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>RTC/8 clock is selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>RTC/4 clock is selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>RTC/2 clock is selected</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ClockSpare</name>
                  <description>ck_spre (usually 1 Hz) clock is selected</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ClockSpareWithOffset</name>
                  <description>ck_spre (usually 1 Hz) clock is selected and 2^16 is added to the WUT counter value</description>
                  <value>6</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSEDGE</name>
              <description>TSEDGE</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSEDGE</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>RTC_TS input rising edge generates a time-stamp event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>RTC_TS input falling edge generates a time-stamp event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>REFCKON</name>
              <description>REFCKON</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>REFCKON</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTC_REFIN detection disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTC_REFIN detection enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BYPSHAD</name>
              <description>BYPSHAD</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BYPSHAD</name>
                <enumeratedValue>
                  <name>ShadowReg</name>
                  <description>Calendar values (when reading from RTC_SSR, RTC_TR, and RTC_DR) are taken from the shadow registers, which are updated once every two RTCCLK cycles</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BypassShadowReg</name>
                  <description>Calendar values (when reading from RTC_SSR, RTC_TR, and RTC_DR) are taken directly from the calendar counters</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FMT</name>
              <description>FMT</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FMT</name>
                <enumeratedValue>
                  <name>TwentyFourHour</name>
                  <description>24 hour/day format</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AmPm</name>
                  <description>AM/PM hour format</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sE</name>
              <description>Alarm %s enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALRAE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Alarm disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Alarm enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUTE</name>
              <description>WUTE</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUTE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wakeup timer disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wakeup timer enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSE</name>
              <description>TSE</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Timestamp disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Timestamp enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sIE</name>
              <description>Alarm %s interrupt enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALRAIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Alarm Interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Alarm Interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUTIE</name>
              <description>WUTIE</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUTIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wakeup timer interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wakeup timer interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSIE</name>
              <description>TSIE</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Time-stamp Interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Time-stamp Interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADD1H</name>
              <description>ADD1H</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADD1HW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Add1</name>
                  <description>Adds 1 hour to the current time. This can be used for summer time change outside initialization mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SUB1H</name>
              <description>SUB1H</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SUB1HW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Sub1</name>
                  <description>Subtracts 1 hour to the current time. This can be used for winter time change outside initialization mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKP</name>
              <description>BKP</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKP</name>
                <enumeratedValue>
                  <name>DSTNotChanged</name>
                  <description>Daylight Saving Time change has not been performed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DSTChanged</name>
                  <description>Daylight Saving Time change has been performed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COSEL</name>
              <description>COSEL</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COSEL</name>
                <enumeratedValue>
                  <name>CalFreq_512Hz</name>
                  <description>Calibration output is 512 Hz (with default prescaler setting)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CalFreq_1Hz</name>
                  <description>Calibration output is 1 Hz (with default prescaler setting)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>POL</name>
              <description>POL</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>POL</name>
                <enumeratedValue>
                  <name>High</name>
                  <description>The pin is high when ALRAF/ALRBF/WUTF is asserted (depending on OSEL[1:0])</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Low</name>
                  <description>The pin is low when ALRAF/ALRBF/WUTF is asserted (depending on OSEL[1:0])</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSEL</name>
              <description>OSEL</description>
              <bitOffset>21</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>OSEL</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AlarmA</name>
                  <description>Alarm A output enabled</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AlarmB</name>
                  <description>Alarm B output enabled</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Wakeup</name>
                  <description>Wakeup output enabled</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COE</name>
              <description>COE</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Calibration output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Calibration output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ITSE</name>
              <description>ITSE</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ITSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Internal event timestamp disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Internal event timestamp enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPTS</name>
              <description>TAMPTS</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMPTS</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Tamper detection event does not cause a RTC timestamp to be saved</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Save RTC timestamp on tamper detection event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPOE</name>
              <description>TAMPOE</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMPOE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The tamper flag is not routed on TAMPALRM</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The tamper flag is routed on TAMPALRM, combined with the signal provided by OSEL and with the polarity provided by POL</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPALRM_PU</name>
              <description>TAMPALRM_PU</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMPALRM_PU</name>
                <enumeratedValue>
                  <name>NoPullUp</name>
                  <description>No pull-up is applied on TAMPALRM output</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PullUp</name>
                  <description>A pull-up is applied on TAMPALRM output</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPALRM_TYPE</name>
              <description>TAMPALRM_TYPE</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMPALRM_TYPE</name>
                <enumeratedValue>
                  <name>PushPull</name>
                  <description>TAMPALRM is push-pull output</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OpenDrain</name>
                  <description>TAMPALRM is open-drain output</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OUT2EN</name>
              <description>OUT2EN</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OUT2EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTC output 2 disable</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTC output 2 enable</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>WPR</name>
          <displayName>WPR</displayName>
          <description>write protection register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>Write protection key</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <enumeratedValues>
                <name>KEY</name>
                <enumeratedValue>
                  <name>Activate</name>
                  <description>Activate write protection (any value that is not the keys)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Deactivate2</name>
                  <description>Key 2</description>
                  <value>83</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Deactivate1</name>
                  <description>Key 1</description>
                  <value>202</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CALR</name>
          <displayName>CALR</displayName>
          <description>calibration register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CALP</name>
              <description>Increase frequency of RTC by 488.5
              ppm</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CALP</name>
                <enumeratedValue>
                  <name>NoChange</name>
                  <description>No RTCCLK pulses are added</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IncreaseFreq</name>
                  <description>One RTCCLK pulse is effectively inserted every 2^11 pulses (frequency increased by 488.5 ppm)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALW8</name>
              <description>Use an 8-second calibration cycle
              period</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CALW8</name>
                <enumeratedValue>
                  <name>EightSeconds</name>
                  <description>When CALW8 is set to ‘1’, the 8-second calibration cycle period is selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALW16</name>
              <description>Use a 16-second calibration cycle
              period</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CALW16</name>
                <enumeratedValue>
                  <name>SixteenSeconds</name>
                  <description>When CALW16 is set to ‘1’, the 16-second calibration cycle period is selected.This bit must not be set to ‘1’ if CALW8=1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALM</name>
              <description>Calibration minus</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SHIFTR</name>
          <displayName>SHIFTR</displayName>
          <description>shift control register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ADD1S</name>
              <description>Add one second</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADD1SW</name>
                <enumeratedValue>
                  <name>Add1</name>
                  <description>Add one second to the clock/calendar</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SUBFS</name>
              <description>Subtract a fraction of a
              second</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register derivedFrom="TR">
          <name>TSTR</name>
          <displayName>TSTR</displayName>
          <description>time stamp time register</description>
          <addressOffset>0x30</addressOffset>
        </register>
        <register derivedFrom="DR">
          <name>TSDR</name>
          <displayName>TSDR</displayName>
          <description>time stamp date register</description>
          <addressOffset>0x34</addressOffset>
        </register>
        <register derivedFrom="SSR">
          <name>TSSSR</name>
          <displayName>TSSSR</displayName>
          <description>timestamp sub second register</description>
          <addressOffset>0x38</addressOffset>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x8</dimIncrement>
          <dimIndex>A,B</dimIndex>
          <name>ALRM%sR</name>
          <displayName>ALRM%sR</displayName>
          <description>Alarm %s register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MSK1</name>
              <description>Alarm seconds mask</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSK1</name>
                <enumeratedValue>
                  <name>Mask</name>
                  <description>Alarm set if the date/day match</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotMask</name>
                  <description>Date/day don’t care in Alarm comparison</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSK4</name>
              <description>Alarm date mask</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="MSK1"/>
            </field>
            <field>
              <name>WDSEL</name>
              <description>Week day selection</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WDSEL</name>
                <enumeratedValue>
                  <name>DateUnits</name>
                  <description>DU[3:0] represents the date units</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>WeekDay</name>
                  <description>DU[3:0] represents the week day. DT[1:0] is don’t care.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DT</name>
              <description>Date tens in BCD format</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DU</name>
              <description>Date units or day in BCD format</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MSK3</name>
              <description>Alarm hours mask</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="MSK1"/>
            </field>
            <field>
              <name>PM</name>
              <description>AM/PM notation</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PM</name>
                <enumeratedValue>
                  <name>AM</name>
                  <description>AM or 24-hour format</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PM</name>
                  <description>PM</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HT</name>
              <description>Hour tens in BCD format</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HU</name>
              <description>Hour units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MSK2</name>
              <description>Alarm minutes mask</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="MSK1"/>
            </field>
            <field>
              <name>MNT</name>
              <description>Minute tens in BCD format</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MNU</name>
              <description>Minute units in BCD format</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ST</name>
              <description>Second tens in BCD format</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SU</name>
              <description>Second units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x8</dimIncrement>
          <dimIndex>A,B</dimIndex>
          <name>ALRM%sSSR</name>
          <displayName>ALRM%sSSR</displayName>
          <description>Alarm %s sub-second register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MASKSS</name>
              <description>Mask the most-significant bits starting
              at this bit</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>SS</name>
              <description>Sub seconds value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sF</name>
              <description>Alarm %s flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALRAF</name>
                <enumeratedValue>
                  <name>Match</name>
                  <description>This flag is set by hardware when the time/date registers (RTC_TR and RTC_DR) match the Alarm register (RTC_ALRxBR)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUTF</name>
              <description>WUTF</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUTF</name>
                <enumeratedValue>
                  <name>Zero</name>
                  <description>This flag is set by hardware when the wakeup auto-reload counter reaches 0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSF</name>
              <description>TSF</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSF</name>
                <enumeratedValue>
                  <name>TimestampEvent</name>
                  <description>This flag is set by hardware when a time-stamp event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSOVF</name>
              <description>TSOVF</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSOVF</name>
                <enumeratedValue>
                  <name>Overflow</name>
                  <description>This flag is set by hardware when a time-stamp event occurs while TSF is already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ITSF</name>
              <description>ITSF</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ITSF</name>
                <enumeratedValue>
                  <name>TimestampEvent</name>
                  <description>This flag is set by hardware when a timestamp on the internal event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>MISR</name>
          <displayName>MISR</displayName>
          <description>masked interrupt status
          register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sMF</name>
              <description>Alarm %s masked flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALRAMF</name>
                <enumeratedValue>
                  <name>Match</name>
                  <description>This flag is set by hardware when the time/date registers (RTC_TR and RTC_DR) match the Alarm register (RTC_ALRMxR)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUTMF</name>
              <description>WUTMF</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUTMF</name>
                <enumeratedValue>
                  <name>Zero</name>
                  <description>This flag is set by hardware when the wakeup auto-reload counter reaches 0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSMF</name>
              <description>TSMF</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSMF</name>
                <enumeratedValue>
                  <name>TimestampEvent</name>
                  <description>This flag is set by hardware when a time-stamp event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSOVMF</name>
              <description>TSOVMF</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSOVMF</name>
                <enumeratedValue>
                  <name>Overflow</name>
                  <description>This flag is set by hardware when a time-stamp event occurs while TSF is already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ITSMF</name>
              <description>ITSMF</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ITSMF</name>
                <enumeratedValue>
                  <name>TimestampEvent</name>
                  <description>This flag is set by hardware when a timestamp on the internal event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SCR</name>
          <displayName>SCR</displayName>
          <description>status clear register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CALRAF</name>
              <description>CALRAF</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CALRAF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear interrupt flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALRBF</name>
              <description>CALRBF</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CWUTF</name>
              <description>CWUTF</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CTSF</name>
              <description>CTSF</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CTSOVF</name>
              <description>CTSOVF</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CITSF</name>
              <description>CITSF</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>TIM14</name>
      <description>General purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40002000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM14</name>
        <description>TIM14 global interrupt</description>
        <value>19</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>capture/compare mode register 1 (output
          mode)</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>capture/compare mode register 1 (input
          mode)</description>
          <alternateRegister>CCMR1_Output</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>capture/compare enable
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>low counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>UIFCPY</name>
              <description>UIF Copy</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT16</name>
          <displayName>CNT16</displayName>
          <description>16-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Low Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>1</dim>
          <dimIncrement>0x2</dimIncrement>
          <dimIndex>1-1</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM timer input selection
          register</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TISEL</name>
              <description>TI1[0] to TI1[15] input
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>TIM2</name>
      <description>General-purpose-timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40000000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM2</name>
        <description>TIM2 global interrupt</description>
        <value>15</value>
      </interrupt>
      <interrupt>
        <name>TIM3</name>
        <description>TIM3 global interrupt</description>
        <value>16</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMS</name>
              <description>Center-aligned mode
              selection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CMS</name>
                <enumeratedValue>
                  <name>EdgeAligned</name>
                  <description>The counter counts up or down depending on the direction bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned1</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting down.</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned2</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting up.</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned3</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set both when the counter is counting up or down.</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DIR</name>
              <description>Direction</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DIR</name>
                <enumeratedValue>
                  <name>Up</name>
                  <description>Counter used as upcounter</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Down</name>
                  <description>Counter used as downcounter</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TI1S</name>
              <description>TI1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TI1S</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>The TIMx_CH1 pin is connected to TI1 input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>XOR</name>
                  <description>The TIMx_CH1, CH2, CH3 pins are connected to TI1 input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MMS</name>
              <description>Master mode selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>CCDS</name>
              <description>Capture/compare DMA
              selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCDS</name>
                <enumeratedValue>
                  <name>OnCompare</name>
                  <description>CCx DMA request sent when CCx event occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OnUpdate</name>
                  <description>CCx DMA request sent when update event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SMCR</name>
          <displayName>SMCR</displayName>
          <description>slave mode control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TS2</name>
              <description>Trigger selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>SMS_3</name>
              <description>Slave mode selection - bit
              3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ETP</name>
              <description>External trigger polarity</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ETP</name>
                <enumeratedValue>
                  <name>NotInverted</name>
                  <description>ETR is noninverted, active at high level or rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>ETR is inverted, active at low level or falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ECE</name>
              <description>External clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ECE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>External clock mode 2 disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF signal.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETPS</name>
              <description>External trigger prescaler</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ETPS</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Prescaler OFF</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>ETRP frequency divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>ETRP frequency divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>ETRP frequency divided by 8</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETF</name>
              <description>External trigger filter</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ETF</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/Slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSM</name>
                <enumeratedValue>
                  <name>NoSync</name>
                  <description>No action</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sync</name>
                  <description>The effect of an event on the trigger input (TRGI) is delayed to allow a perfect synchronization between the current timer and its slaves (through TRGO). It is useful if we want to synchronize several timers on a single external event.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TS</name>
              <description>Trigger selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>OCCS</name>
              <description>OCREF clear selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>SMS</name>
              <description>Slave mode selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDE</name>
              <description>Trigger DMA request enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1DE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIF</name>
              <description>Trigger interrupt flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No trigger event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>Trigger interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TG</name>
              <description>Trigger generation</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>The TIF flag is set in TIMx_SR register. Related interrupt or DMA transfer can occur if enabled.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>capture/compare mode register 1 (output
          mode)</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1M_3</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal output compare mode (modes 0-7)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Extended</name>
                  <description>Extended output compare mode (modes 7-15)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ETRF signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ETRF signal</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs / OpmMode1: Retriggerable OPM mode 1 - In up-counting mode, the channel is active until a trigger event is detected (on TRGI signal). In down-counting mode, the channel is inactive</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register / OpmMode2: Inversely to OpmMode1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register / Reserved</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy / Reserved</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low / CombinedPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC is the logical OR between OC1REF and OC2REF</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high / CombinedPwmMode2: OCyREF has the same behavior as in PWM mode 2. OCyREFC is the logical AND between OC1REF and OC2REF</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active / AsymmetricPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC outputs OC1REF when the counter is counting up, OC2REF when it is counting down</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1 / AsymmetricPwmMode2: Inversely to AsymmetricPwmMode1</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>capture/compare mode register 1 (input
          mode)</description>
          <alternateRegister>CCMR1_Output</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC2S</name>
              <description>Capture/compare 2
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC2S</name>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI1</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR2_Output</name>
          <displayName>CCMR2_Output</displayName>
          <description>capture/compare mode register 2 (output
          mode)</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sM_3">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sCE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sM">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sPE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sFE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.CC%sS">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR2_Input</name>
          <displayName>CCMR2_Input</displayName>
          <description>capture/compare mode register 2 (input
          mode)</description>
          <alternateRegister>CCMR2_Output</alternateRegister>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="TIM2.CCMR1_Input.IC%sF">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Input.IC%sPSC">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>CC4S</name>
              <description>Capture/Compare 4
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC4S</name>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI3</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC3S</name>
              <description>Capture/Compare 3
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC3S</name>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI3</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>capture/compare enable
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT32</name>
          <displayName>CNT32</displayName>
          <description>32-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>DMA control register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBL</name>
              <description>DMA burst length</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBA</name>
              <description>DMA base address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>DMA address for full transfer</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst
              accesses</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>OR1</name>
          <displayName>OR1</displayName>
          <description>TIM option register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IOCREF_CLR</name>
              <description>IOCREF_CLR</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>AF1</name>
          <displayName>AF1</displayName>
          <description>TIM alternate function option register
          1</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ETRSEL</name>
              <description>External trigger source
              selection</description>
              <bitOffset>14</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM alternate function option register
          1</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>TI1SEL</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>TI2SEL</name>
              <description>TI2SEL</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>TIM3</name>
      <description>General-purpose-timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40000400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMS</name>
              <description>Center-aligned mode
              selection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CMS</name>
                <enumeratedValue>
                  <name>EdgeAligned</name>
                  <description>The counter counts up or down depending on the direction bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned1</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting down.</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned2</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting up.</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned3</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set both when the counter is counting up or down.</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DIR</name>
              <description>Direction</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DIR</name>
                <enumeratedValue>
                  <name>Up</name>
                  <description>Counter used as upcounter</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Down</name>
                  <description>Counter used as downcounter</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TI1S</name>
              <description>TI1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TI1S</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>The TIMx_CH1 pin is connected to TI1 input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>XOR</name>
                  <description>The TIMx_CH1, CH2, CH3 pins are connected to TI1 input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MMS</name>
              <description>Master mode selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>CCDS</name>
              <description>Capture/compare DMA
              selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCDS</name>
                <enumeratedValue>
                  <name>OnCompare</name>
                  <description>CCx DMA request sent when CCx event occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OnUpdate</name>
                  <description>CCx DMA request sent when update event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SMCR</name>
          <displayName>SMCR</displayName>
          <description>slave mode control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TS2</name>
              <description>Trigger selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>SMS_3</name>
              <description>Slave mode selection - bit
              3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ETP</name>
              <description>External trigger polarity</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ETP</name>
                <enumeratedValue>
                  <name>NotInverted</name>
                  <description>ETR is noninverted, active at high level or rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>ETR is inverted, active at low level or falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ECE</name>
              <description>External clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ECE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>External clock mode 2 disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF signal.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETPS</name>
              <description>External trigger prescaler</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ETPS</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Prescaler OFF</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>ETRP frequency divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>ETRP frequency divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>ETRP frequency divided by 8</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETF</name>
              <description>External trigger filter</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ETF</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/Slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSM</name>
                <enumeratedValue>
                  <name>NoSync</name>
                  <description>No action</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sync</name>
                  <description>The effect of an event on the trigger input (TRGI) is delayed to allow a perfect synchronization between the current timer and its slaves (through TRGO). It is useful if we want to synchronize several timers on a single external event.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TS</name>
              <description>Trigger selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>OCCS</name>
              <description>OCREF clear selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>SMS</name>
              <description>Slave mode selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDE</name>
              <description>Trigger DMA request enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1DE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIF</name>
              <description>Trigger interrupt flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No trigger event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>Trigger interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TG</name>
              <description>Trigger generation</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>The TIF flag is set in TIMx_SR register. Related interrupt or DMA transfer can occur if enabled.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>capture/compare mode register 1 (output
          mode)</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1M_3</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal output compare mode (modes 0-7)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Extended</name>
                  <description>Extended output compare mode (modes 7-15)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ETRF signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ETRF signal</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs / OpmMode1: Retriggerable OPM mode 1 - In up-counting mode, the channel is active until a trigger event is detected (on TRGI signal). In down-counting mode, the channel is inactive</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register / OpmMode2: Inversely to OpmMode1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register / Reserved</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy / Reserved</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low / CombinedPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC is the logical OR between OC1REF and OC2REF</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high / CombinedPwmMode2: OCyREF has the same behavior as in PWM mode 2. OCyREFC is the logical AND between OC1REF and OC2REF</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active / AsymmetricPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC outputs OC1REF when the counter is counting up, OC2REF when it is counting down</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1 / AsymmetricPwmMode2: Inversely to AsymmetricPwmMode1</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>capture/compare mode register 1 (input
          mode)</description>
          <alternateRegister>CCMR1_Output</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC2S</name>
              <description>Capture/compare 2
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC2S</name>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI1</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR2_Output</name>
          <displayName>CCMR2_Output</displayName>
          <description>capture/compare mode register 2 (output
          mode)</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="TIM3.CCMR1_Output.OC%sM_3">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM3.CCMR1_Output.OC%sCE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM3.CCMR1_Output.OC%sM">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field derivedFrom="TIM3.CCMR1_Output.OC%sPE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM3.CCMR1_Output.OC%sFE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM3.CCMR1_Output.CC%sS">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR2_Input</name>
          <displayName>CCMR2_Input</displayName>
          <description>capture/compare mode register 2 (input
          mode)</description>
          <alternateRegister>CCMR2_Output</alternateRegister>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="TIM3.CCMR1_Input.IC%sF">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="TIM3.CCMR1_Input.IC%sPSC">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>CC4S</name>
              <description>Capture/Compare 4
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC4S</name>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI3</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC3S</name>
              <description>Capture/Compare 3
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC3S</name>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI3</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>capture/compare enable
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT16</name>
          <displayName>CNT16</displayName>
          <description>16-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>DMA control register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBL</name>
              <description>DMA burst length</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBA</name>
              <description>DMA base address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>DMA address for full transfer</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst
              accesses</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>OR1</name>
          <displayName>OR1</displayName>
          <description>TIM option register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IOCREF_CLR</name>
              <description>IOCREF_CLR</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>AF1</name>
          <displayName>AF1</displayName>
          <description>TIM alternate function option register
          1</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>ETRSEL</name>
              <description>External trigger source
              selection</description>
              <bitOffset>14</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM alternate function option register
          1</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>TI1SEL</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>TI2SEL</name>
              <description>TI2SEL</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>VREFBUF</name>
      <description>System configuration controller</description>
      <groupName>VREFBUF</groupName>
      <baseAddress>0x40010030</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x50</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>VREFBUF control and status
          register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000002</resetValue>
          <fields>
            <field>
              <name>ENVR</name>
              <description>Voltage reference buffer mode enable
              This bit is used to enable the voltage reference
              buffer mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HIZ</name>
              <description>High impedance mode This bit controls
              the analog switch to connect or not the VREF+ pin.
              Refer to Table196: VREF buffer modes for the mode
              descriptions depending on ENVR bit
              configuration.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VRR</name>
              <description>Voltage reference buffer
              ready</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VRS</name>
              <description>Voltage reference scale These bits
              select the value generated by the voltage reference
              buffer. Other: Reserved</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR</name>
          <displayName>CCR</displayName>
          <description>VREFBUF calibration control
          register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TRIM</name>
              <description>Trimming code These bits are
              automatically initialized after reset with the
              trimming value stored in the Flash memory during the
              production test. Writing into these bits allows to
              tune the internal reference buffer
              voltage.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DBG</name>
      <description>MCU debug component</description>
      <groupName>DBG</groupName>
      <baseAddress>0x40015800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>IDCODE</name>
          <displayName>IDCODE</displayName>
          <description>DBGMCU_IDCODE</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DEV_ID</name>
              <description>Device identifier</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
            </field>
            <field>
              <name>REV_ID</name>
              <description>Revision identifie</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>Debug MCU configuration
          register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBG_STOP</name>
              <description>Debug Stop mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_STANDBY</name>
              <description>Debug Standby mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>APB_FZ1</name>
          <displayName>APB_FZ1</displayName>
          <description>Debug MCU APB1 freeze
          register1</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBG_TIM2_STOP</name>
              <description>TIM2 counter stopped when core is
              halted</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM3_STOP</name>
              <description>TIM3 counter stopped when core is
              halted</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_RTC_STOP</name>
              <description>RTC counter stopped when core is
              halted</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_WWDG_STOP</name>
              <description>Window watchdog counter stopped when
              core is halted</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_IWDG_STOP</name>
              <description>Independent watchdog counter stopped
              when core is halted</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_I2C1_STOP</name>
              <description>I2C1 SMBUS timeout counter stopped when
              core is halted</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_LPTIM2_STOP</name>
              <description>LPTIM2 counter stopped when core is
              halted</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_LPTIM1_STOP</name>
              <description>LPTIM1 counter stopped when core is
              halted</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>APB_FZ2</name>
          <displayName>APB_FZ2</displayName>
          <description>Debug MCU APB1 freeze register
          2</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBG_TIM1_STOP</name>
              <description>TIM1 counter stopped when core is
              halted</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM14_STOP</name>
              <description>DBG_TIM14_STOP</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM16_STOP</name>
              <description>DBG_TIM16_STOP</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM17_STOP</name>
              <description>DBG_TIM17_STOP</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
  </peripherals>
</device>